ordersend()编码的帮助... - 页 2

 

你知道我只是在想我之前告诉你的我说的话。

如果是买入。

SL = Bid - StopLoss* Point

TP = Bid + TakeProfit* Point

如果是卖出。

SL = Ask + StopLoss* Point。

TP = Ask - TakeProfit* Point。

我一直是这样做的,因为MQL4书中的例子就是这样做的,但现在我在想这看起来并不正确,如果你在卖出价上开仓,你想在该价格+你的TP金额上获利,你想在该价格-你的SL金额上止损?

换句话说,你的方法看起来是正确的,还是我错过了什么?

 
mugged:

1) 是的,这个方法是有效的!但是有什么办法可以解决这个问题吗?我讨厌想到最坏的情况,即最初的订单进去了,但修改却没有发生(连接死亡,发生错误,等等等等)。

好问题!我从来没有见过有人能解决这个问题。

请向你的经纪人了解这种 "最坏的情况"。

 
mugged:

1) 是的,这个方法是有效的!但是有什么办法可以解决这个问题吗?我讨厌想到最坏的情况,即最初的订单进去了,但修改没有发生(连接死亡,发生错误,等等等等)。

在我的代码中,如果OrderModify失败,就会重试几次,如果重试失败,订单就会被关闭,如果OrderClose失败,就会重试,如果重试失败,还有一个函数 会检查所有的交易,它会检测没有设置SL或TP的订单,并尝试关闭它。 所有这些失败都会产生错误,这些错误会在屏幕上和通过电子邮件报告,电子邮件也会产生一个推送到我手机上的警报。

还有一种故障模式我还没有处理,那就是在下单后和修改前立即失去了与互联网的连接。 我有一个想法来处理这个问题,但我没有必要的PHP编码技能。

 

我联系了我的经纪人,他们非常无用,因为他们不提供任何编程帮助。几乎所有的代表都知道如何在图表上应用EA。

不过,这个问题刚开始发生时有点奇怪,它在过去工作得非常好。我想知道是什么原因造成的...

 
你们遇到这个问题已经很久了,还是说这是一个新问题?
 
这是ECN经纪商的一个事实。
 

谢谢你们的帮助。

我想,我只是绕过它。

 
RaptorUK:

在我的代码中,如果OrderModify失败,就会重试几次,如果重试失败,订单就会被关闭,如果OrderClose失败,就会重试,如果重试失败,还有一个函数会检查所有的交易,它会检测没有设置SL或TP的订单并尝试关闭它。所有这些失败都会产生错误,这些错误会在屏幕上和通过电子邮件报告,电子邮件也会产生一个推送到我手机上的警报。

还有一种故障模式我还没有处理,那就是在下单后和修改前立即失去了与互联网的连接。我有一个想法来处理这个问题,但我没有必要的PHP编码技能。


Raptor,如果你不介意的话......你打算如何通过php来检查 连接?
 
也许你可以让手机以调制解调器模式连接到电脑上,这样如果电脑失去了常规的互联网连接,它就可以暂时使用手机网络重新连接。
 
RaptorUK:
还有一种故障模式我还没有处理,那就是在下单后和修改前立即失去与互联网的连接...。 我有一个想法来处理这个问题,但我没有必要的PHP编码技能。

我的方法是直接报告错误并返回。在下一次勾选时,在重启时,在重新连接时,EA的orderSelect循环将找到未结订单,然后设置止损。

最大的问题是orderSend没有返回结果。该订单可能会或可能不会被打开。一旦你得到下一个tick,你就会知道。

原因: