交易中的机器学习:理论、模型、实践和算法交易 - 页 1851

 
Mihail Marchukajtes:

阿列克谢,非常感谢你。我一定会检查一切并让你知道结果。至于展望未来,这绝对是不重要的,如果EA按照指标的方式来写,就不会发生。如果它们之间没有区别,那就无所谓了。或者,当一个新的条形图 出现时,我们等待OI的第一次变化,并记录之前第一个条形图的新值。 我们甚至可以不记录新值,而是记录第一个条形图最后的旧值。也就是说,事实上,我们将在前一个小节的末尾开始写。

重要的不是我们分配给分钟栏的OI,而是指标将如何从文件中读取。

此外,不仅要考虑训练,还要考虑在从市场上获取数据时使用该模型--那里会有最可靠的数据。目前,数据将在蜡烛开盘时保存,也就是说,在零条上,开盘后不会有任何变化(如果我没弄错的话:) )。如果你需要收盘条上的数据,你可以在任何情况下修改它。 唯一的区别是最后一个或倒数第二个条的价值。

 

neocognitron - 一种卷积网络,但没有老师。

https://habr.com/ru/post/214317/

谁明白它是如何工作的,请向我解释。

 
Aleksey Vyazmikin:

另外,不仅要考虑训练,还要考虑在数据将从市场上获取时应用该模型--这样才会有最可靠的数据。目前,数据将保存在蜡烛的开盘处,即在零条上,开盘后不会有任何变化(如果我没弄错的话:) )。唯一不同的是,从EA获得数据的最后一个或倒数第二个条。

虽然专家顾问在条形图开盘时开始工作,但它仍然从第一个条形图中获取数据。在我的例子中,它甚至取自第二根柱子;嗯,这是我的错误,因为我们不应该等待30秒来更新第一根柱子上的值;第二根柱子已经计算了相当长的时间。这就是为什么在公开栏中写下第一个OI值并不那么可怕。事实证明,我在历史上写的是当前值。没有回头路可走。而这并不重要,我们并不从副本中提取。最重要的是指标能正确读取。你的指标中有一个额外的函数,用于读取一个包含 "真实日期 "条件的文件。为了从文件中正确加载历史记录,我不得不添加以下一行

 if(New_Data==true)
            {
               ArrayResize(oi,x+2,1000);
               if(cnt==0)
               {
               Arh_Time=StringToTime(str);///////////// Если честно в обще не понял зачем ты так это всё разделил
                  oi[x].time=Arh_Time;                 //если запись первая, т.е. дата, то конвертируем из стринга в дататайм
               }

               else if(cnt==1)
               {
                  oi[x].oi=Arh_oi;   //если запсиь вторая, т.е. ОИ, то конвертируем в инт и
                  New_Data=false;
                  x++;
               }
            }

该指标开始工作,每分钟和每个刻度记录的数据,都在一个文件中。我甚至检查了不同的时间框架是如何建立的,一切都很适合,但我也不得不改变主体中的这一行

for(int s=f; s<count_size; s++)
            {
               //Print("Test_02");
               if(oi[s].time>time[i])
               {
                  //Print("Test_03");
                  if (s>1)BufOI[i-1]=oi[s-1].oi; /// иначе всё бралось с минутой позже
                  //Print("s=",s);
                  f=s;
                  break;
               }
               if(s+1==count_size)
               {
                  BufOI[i]=SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);
                  //Print("OI=",SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST));
                  if(BufOI[i]<1)BufOI[i]=BufOI[i-1];
                  if(BufOI[i]<1 && BufOI[i-1]<1)BufOI[i]=100;
                  f=s;
               }
            }

我已经在主体中修改了这句话。 否则我已经把EA放在图表上,一直在等待开盘。

这里有一个指标,请不要感谢:-)!!!!只是在开玩笑,非常感谢。37英镑怎么样?想挣钱吗?

附加的文件:
OI_Test.mq5  16 kb
 
Aleksey Vyazmikin:

如果专家顾问是通过开盘来工作的,即使它是延迟的,那么通过蜡烛收盘来给它提供数据,也就是展望未来,这是否正确?这就是为什么使用这个蜡烛之前最新鲜的数据,也就是一个小的延迟,而不是预期。


5点的计算方法在哪里?有时会发生交易在一分钟内没有结束,那么你就会错过一个柱状图,所以我删除了对OI量变化的比较,所以数据是在新蜡烛 开盘时立即写入。也许我忘了,我必须用数据来测试它,我昨天没有数据,而且现在是工作日:(

会有一个缺口,我应该从第二个柱状图中重写它的值。但我的问题仍未得到解答:比如说,当球打开,几个点过去后,新的条形条件就会得到满足,只有这样,OI才会改变?
 
遗憾的是,在正常的时间模式下,第一条和第二条都没有被记录。当重新编译指标时,历史记录被加载,但只到第三条,第二条和第一条都没有被更新,尽管它们事实上在文件中。
 
Mihail Marchukajtes:

虽然EA在开盘时就开始工作,但数据仍取自第一根柱子。在我的例子中,它甚至是从第二个条形图开始的,但这是我的错误,因为我不需要等待30秒来更新第一个条形图上的数值,第二个条形图已经被计算过了,而且时间很长。这就是为什么在公开栏中写出第一个OI值并不那么可怕。事实证明,我在历史上写的是当前值。没有回头路可走。而这并不重要,我们并不从副本中提取。最主要的是指标能正确读取。你的指标中有一个额外的函数,用于读取一个包含 "真实日期 "条件的文件。为了从文件中正确加载历史记录,我不得不添加以下一行

该指标开始工作,每分钟和每个刻度记录的数据,都在一个文件中。我甚至检查了不同的时间框架是如何建立的,一切都很适合,但我也不得不改变主体中的这一行

我已经在主体中修改了这句话。 否则我已经把EA放在图表上,一直在等待开盘。

这里有一个指标,请不要感谢:-)!!!!只是在开玩笑,非常感谢。37英镑怎么样?你想赚钱吗?

如果你不使用零条,当然你可以做一个提前看。我在这里做了一个定制的,是我处理数据的方式。

唯一让我困惑的是。

if (s>1)BufOI[i-1]=oi[s-1].oi; /// иначе всё бралось с минутой позже

这种不平等可能不被尊重。由于第一个刻度线的时间可能与蜡烛的开盘时间不一致。保存而不是来自文件的时间。

Arh_Time=StringToTime(str);

从变量NewTime中把时间截断到分钟。

关于奖励--我想我已经赢得了它:)


Mihail Marchukajtes:
是的,会有一个缺口,你必须重写第二个柱子的值。但我的问题仍未得到解答:例如,当一个球打开并通过几个点时,然后改变OI,那么新条形的条件是否会得到满足?

对新条形的检查发生在成交量变化之后,所以我们应该进入代码中的进场部分。


Mihail Marchukajtes:
遗憾的是,在raltime模式下,它不写第一或第二小节。当我重新编译该指标时,历史记录正在加载,但它只加载到第三条,第二条和第一条都没有更新,尽管它们实际上在文件中。

不写在哪里?专家顾问不写?试试旧版本的EA,它每分钟写几次,看看指标是否能正常工作。

 
Aleksey Vyazmikin:

如果你不使用零条,你当然可以做一个提前看。我一直在这里做我自己的事情,我与数据的工作方式。

只是我很困惑。

这种不平等可能不被尊重。由于第一个刻度线的时间可能与蜡烛的开盘时间不一致。保存而不是来自文件的时间。

从变量NewTime中把时间截断到分钟。

关于奖励--我想我已经赢得了它:)


检查成交量变化后的新条形,所以必须到代码中进行写入的部分。


哪里没有写?EA不写?试试旧版本的EA,它每分钟写几次,指标会不会用它正常工作。

我现在正在处理这个EA,它出于某种原因一直在改变文件中第一个条形的值。我觉得新酒吧总是更好。如果我现在没有检查,我就会跌倒。

就这样,每次重新编译都是如此。什么是HZ?我已经试过很多方法,有时可以加载,有时不可以。

 
Mihail Marchukajtes:

现在我正在处理这个EA,它出于某种原因一直在改变文件中第一个条形的值。感觉新的酒吧总是比较黑暗。我现在已经检查过了,重新编译的时候看起来是这样的。

就这样,每次重新编译都是如此。什么是HZ?我试过很多方法--有时能加载,有时不能......

我的EA完全不写你的EA--我得试试。我已经试过了,但它不起作用,我不希望它打开或关闭。

 
Aleksey Vyazmikin:

我的EA根本不写你的EA--我需要搞清楚。或者请寄给我一个工作版本,只是让斯写。

你必须在任何地方指定当前的期货合约。当然,这在Splice中是行不通的。如果我试图使用替代方案,我将显示当前版本的指标,它在编译时只加载第二条,而第一条总是在变化。

附加的文件:
 

阿列克谢,是否有可能使指标在出现新条形 时从文件中读取第一个条形的读数,从而实现最完整的同步。事实上,它不会站在图表上,它将被定期调用,从信号到信号... ...问题是,EA使用市场书,而指标从交易所接收数据,结果在实时性方面存在巨大的差异。我认为我们应该使用市场账面监测,指标将在这些输入下开始工作。利润!!!!!

我认为获得OM的唯一来源应该是EA,重复向交易所提出要求是不能接受的,否则我们就麻烦你去谈判了。你怎么看?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...