mql5语言的特点、微妙之处以及技巧 - 页 192

 
traveller00:

从统计数据来看:每天大约有200-300笔交易。即使是正常的检查,但在没有任何真正棘手的检查的情况下,平均每周有2-3次我抓到了一个双批的开口。计算概率并评估你是否需要或准备接受这种概率。就我个人而言,我已经把我的支票做到了最大。

谢谢你。你的Ping是多少?
 
Vasiliy_Saharov:
谢谢。你的ping值是多少?

它在55-60ms的范围内跳动。但这并不是说平局。正如我所说,即使是正常的检查也是如此。这时的等待已经很充分了,就像等待1秒钟。但这是它飞出的地方,即使是超过ping数量级的范围也是如此。

P.S. 在主题中对幻象订单进行有趣的测试 https://www.mql5.com/ru/forum/1111/page2220#comment_7834585
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.06.20
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Vasiliy_Saharov:
如果你有一个赚取0.1手的算法,那么有一个赚取0.1两次的概率,由于我认为这个概率趋向于零,而三次,我认为是不可能的。更不用说20次了。毕竟,我们正在谈论应用的东西。作为一个经验法则,服务器的反应可能在10分钟的限度内(是这样吗? 我不确定)。在你看来,抢到第二笔交易的概率有多高?你自己做这个检查吗?是否会发生服务器可能需要很长的时间来响应?

服务器对交易结果 的响应可能会因为非常不同的原因而延迟,在任何情况下你都不能指望10ms(即使ping是1ms)。

当然,我做了这个检查。更准确地说,我使用准备好的MT4Orders,它考虑到了这一点(和许多其他事情)。

 
const int a=2;

void OnStart()
{
  int b[a];  //'[' - invalid index value
}

这种与C++不同的行为是一个特点还是一个错误?

 
Igor Makanu:

在指标中,将不等待CopyXXX的结果

在指标的定时器中作为一个选项来处理CopyXXX并从EA调用该指标

成功了,谢谢你的主意!

 

夏天/冬天的时间变化如何打破MT5-测试仪。

解释这个问题的最简单方法是举一个例子。有一个符号与这些限制的报价会议。

然而,在价格历史中,有22:15至23:15之后的价格。 这些价格是有效的,尽管超出了报价时段。


事实是,在转为冬令时 之前,该时段为:03:00 - 23:15。解释很简单。交易服务器改变了时间,但报价符号没有改变。例如,该指数。由于这个原因,交易服务器改变了相应符号的会话时间。


这种情况在MT5-测试仪中会导致非常不愉快的后果。你不能在22:15和23:15之间的有效价格进行交易,并得到一个[市场关闭] 的拒绝形式。也就是说,交易确实是在那里进行的,但测试者不允许它。


事实上,测试仪通过故意给出错误的结果扭曲了交易。注意到这种特殊性是很有问题的。要解决这个问题,你需要自己纠正会话时间。


忘记这个问题(和其他一些问题),你可以切换到一个自定义符号,它自动计算/写入适当的会话时间。


在符号设置的顶部截图中,有一个底线 "使用时间限制"。也许当它生效时,你仍然可以通过它来解决这个问题。


目前来说,这个规则是有效的--自定义符号可以大大增加MT5测试器结果正确的概率。


记住,当你在终端对价格历史(CopyRates/CopyTicks)提出要求时,不要关注报价时段。

 
fxsaber:

夏天/冬天的时间变化如何破坏MT5-Tester。

谢谢你分享有趣的观察结果--我之前也提出了时间问题,但我注意到当条形图上的价格小于0时,未来的标记不正确。

这个问题出现了,是否有这样的情况,即完全禁止在测试器中进行交易是正确的,或者至少有一个工具的报价,在现实中禁止在某些时间进行交易?我知道有不同的指数,不清楚如何计算它们的利润,但在这种情况下,你可以强行以点数计算,只需在日志中写下该工具没有交易的信息,但你可以检查TS。

 
Aleksey Vyazmikin:

有一个工具的报价,在现实中禁止在某些时间内进行交易?

午夜后的第一分钟是被禁止的。当它可能很重要的时候,我就打上勾。

// true - торговые сессии совпадают с котировочными, false - иначе.
bool IsSessionsQuoteEqualTrade( const string Symb )
{
  bool Res = true;
  
  for (int i = 0; (i < 7) && Res; i++)
  {
    datetime FromQuote;
    datetime ToQuote;

    datetime FromTrade;
    datetime ToTrade;
    
    if (SymbolInfoSessionQuote(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromQuote, ToQuote) && (FromQuote != ToQuote))
      Res = SymbolInfoSessionTrade(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromTrade, ToTrade) &&
            (FromQuote == FromTrade) && (ToQuote == ToTrade);
  }
  
  return(Res);
}

当一天内有几场会议时,我就不检查了。

 
fxsaber:

午夜后的第一分钟是禁区。当它可能很重要时,我就在上面打勾。

当一天内有几场会议时,我不会检查。

这是由经纪公司创造的人为情况。假设在一个封闭的拍卖会上有交易,但它们是有报价的。

 
Aleksey Vyazmikin:

这是由特区创造的人为情况,但是否有真实的例子?比方说,在一个封闭的拍卖中,有交易,但却有报价。

绝对所有的规则都是人为的。