我需要一些帮助来制定一个代码,以便在小节结束时准确关闭订单。
这是不可能的......它要么是在条形图结束前,要么是在条形图结束后......绝不会在条形图结束时。 正如deVries 所说,我们不可能检测到当前条形的结束,但我们可以检测到下一个条形的开始 ......
如果每次都在收盘前,但尽可能接近收盘,那么我也会接受这个方案,但如果只是在收盘后1次,那么它并不比我想到的方案好,因此不能接受。但到底为什么要在当前tick后收盘?
那么另一种解决方案呢,即在收盘前1秒取值?
就像在M1的情况下这样
if( Time[0]>=OrderOpenTime()+59 )
OrderClose( OrderTicket(), OrderLots(), Bid , slippage );
在这种情况下,如果有嘀嗒声的问题,如何解决?
如果每次都在收盘前,但尽可能接近收盘,那么我也会接受这个方案,但如果只是在收盘后1次,那么它并不比我想到的方案好,因此不能接受。但到底为什么要在当前tick后收盘?
那么另一种解决方案呢,即在收盘前1秒取值?
就像在M1的情况下这样
在这种情况下, 如果有的话,如何解决tick的问题?
如果没有,这将使你多等一分钟,而且在这种情况下,如果有任何....
如果每次都在收盘前,但尽可能接近收盘,那么我也会接受这个解决方案,但如果只有一次是在收盘后,那么它并不比我想到的好,因此不能接受。但到底为什么要在当前的刻度线后收盘?
在EA(和指标)中,只有在有刻度的时候才会发生事情,你没有办法知道一个条形图的最后一个刻度是什么时候,直到你有下一个条形图的第一个刻度。
那么另一种解决方案呢,即在收盘前1秒的时间段内,如何处理?
就像M1的情况下这样
在这种情况下,如果有刻度线问题,如何解决?
.......而且你不能等待条形的最后一秒,因为条形的最后5秒可能没有刻度,所以在这种情况下,你永远不会 "看到 "条形的最后一秒。
在EA(和指标)中,只有在有刻度的时候才会发生事情,你没有办法知道一个条形的最后一个刻度是什么时候,直到你有下一个条形的第一个刻度 ......即使是在H1条形的59分59秒的刻度,在这一秒中仍然可能有另一个刻度 ......
.......而且你不能等待条形的最后一秒,因为条形的最后5秒可能没有刻度,所以在这种情况下,你永远不会 "看到 "条形的最后一秒。
所以我应该理解,如果银行间汇率在某段时间内没有变化,经纪人就不会调用新的价格数据?
我认为,MT4中的tick意味着它总是在X秒后刷新价格,无论价格或交易量是多少。
在这种情况下,我是否可以使用。
RefreshRates();
在58秒时叫停最后一笔交易,在59秒时退出?
所以我应该明白,如果银行间汇率在某段时间内没有变化,经纪人就不会调用新的价格数据?
我认为MT4中的tick意味着它总是在X秒后刷新价格,无论价格或交易量是多少。因此,假设刷新率为3秒,那么你就会知道在M1上你必须在57秒或之前关闭交易。
如果经纪人的价格没有变化,买入和卖出,就没有新的刻度线 ......在格林尼治标准时间午夜前后, 一些交易量较小的货币对可能在一分钟或更长时间内没有刻度线......新的刻度线不是在预设时间后产生的,它发生在价格、买入或卖出变化时(也许在其他情况下,其他符号参数 的变化)。
鉴于这种情况,我是否可以使用。
在58秒时调低最后一个刻度,在59秒时退出?
谢谢你对MT4中刻度线工作原理的说明。
如果经纪商的价格没有变化,买入和卖出,就没有新的刻度线 . . . 在格林威治时间午夜前后,在一些交易量较小的货币对上,可能一分钟或更长时间都没有刻度 线 . . . 新的刻度线不是在预设时间后产生的,它发生在价格变化,买入或卖出(也许在一些其他情况下,其他符号参数的变化) .
我以为 RefreshRates()会迫使经纪人从他的流动性提供者那里调用一组新的饲料,但我想它不是。
无论如何,如果有人能找到比这更好的解决方案,那么请与我分享,这非常重要!提前感谢!
/////////////////OrderSelect() and other stuff if( OrderType() == OP_BUY ){ if( /* blablabla condition && */ Time[0]>OrderOpenTime() ){ OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,TAKEPROFITPIPS,CLR_NONE); RefreshRates(); }}
谢谢你对MT4中刻度线工作原理的说明。
如果经纪人的价格没有变化,买入和卖出,就没有新的tick ......在格林威治时间午夜前后, 一些交易量较小的货币对可能在一分钟或更长时间内没有tick......新的tick不是在预设时间后产生的,它发生在价格变化,买入或卖出(也许在其他情况下,其他符号参数的变化) ......
我以为 RefreshRates()会迫使经纪商从他的流动性供应商那里调用一组新的饲料,但我猜不是这样。
总之,如果有人能找到比这更好的解决方案,那么请与我分享,这非常重要!提前感谢!。
我需要一些帮助来制定一个代码,该代码将准确地在柱子结束时关闭订单。这是一个特殊的剥头皮的EA,所以它需要精确的精度。
现在想象一下,如果我有任何指标,让我在标有X 的蜡烛开盘时进行多头交易,那么它就会上升,然后是一根看跌的蜡烛,低点非常低,但这并不重要,重要的是根据我的计算,这里的最佳出口将是标有 1 的条形收盘点。
我现在能想到的最好的解决方案是这样的(就这个假想的买入交易而言)。
这段代码是在开盘价[0]处关闭买入交易,但不是在收盘价[1]处。你看,因为如果你看图片并查看标有2 的条形图,你可以看到条形图2 并没有像前一个条形图那样以该价格打开,而是以稍微不同的价格打开。
所以经验告诉我们。
Close[1] !=Open[0](收盘价)。
在非常罕见的情况下是这样的。所以这就是为什么我需要订单在Close[1]时就被关闭。
一个可行的解决方案是通过计算时间,例如这是M1和M15图表,计算M1的60秒或M15的900秒,在59秒或599秒关闭订单。
因此,让我们回顾一下我的问题,是否可以像我上面描述的那样计算时间,如果可以,那么如何避免滑点和刻度滞后问题?
或者,如果你想出其他的解决方案,如何在Close[1]而不是Open[0]时关闭订单,我愿意接受。请帮助我,这是我的EA的一个非常重要的问题