交易机器人在市场发布前必须经过的检验 - 页 4

 

very good!

 

Expert Advisor 的自动测试 过程中,发生了紧急终止,并收到订单发送错误 #131: ERR_INVALID_TRADE_VOLUME(订单发送错误 #131:ERR_INVALID_TRADE_VOLUME)消息。在 "如何快速捕捉和修复交易机器人中的错误 "一节中,用 mql5 给出了问题的解决方案。但我的智能交易系统是用 mql4 编写的。我怎样才能为他做到这一点?Expert Advisor 应如何通过交易量正确性检查

 
Sergey Vrady:

Expert Advisor 的自动测试 过程中,发生了紧急终止,并收到订单发送错误 #131: ERR_INVALID_TRADE_VOLUME(订单发送错误 #131:ERR_INVALID_TRADE_VOLUME)消息。在 "如何快速捕捉和修复交易机器人中的错误 "一节中,用 mql5 给出了问题的解决方案。但我的智能交易系统是用 mql4 编写的。我怎样才能为他做到这一点?Expert Advisor 应如何通过交易量正确性检查


mql5 和 mql4语言 几乎完全相同,唯一不同的是函数名称、

请附上您的交易量计算代码,他们会帮助您将其翻译为 mql4。

 

也许不这样做

//--- 检查 Takeprofit 水平是否有变化
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-sl)>tp);

"这样做才对

//--- 检查 Takeprofit 水平是否有变化
bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-tp)>point);

我觉得这样更好。

 
Almaz Allaberenov:

也许不这样做

"这样做才对

我觉得这样更好。

复制粘贴,我们会改正的,谢谢。

 

您好。

非常感谢你的文章!

也许我误解了什么,但我认为在检查 freeze_level 和 stops_level 时存在误差。

根据测试,距离应该是 "不小于 "水平,在表格中也应该是 >= ,一切都符合要求。但在代码中,它只是 >。

例如

TakeProfit - Bid >= SYMBOL_TRADE_STOPS_LEVEL
TP_check=(TP-Bid>stops_level*_Point);

那么正确的方法是 >= 还是 >?

 
Oleksii Chepurnyi:

根据测试结果,距离应为 "不小于 "水平,在表格中也是 >= ,一切都符合要求。但在代码中只是 >

例如

那么是 >= 还是 > 呢?

为了可靠起见,最好要求更严格的条件。
 
Rashid Umarov:
为了保证可靠性,最好要求更严格的条件。

那么,可以在交易操作前 在 Expert Advisor 中进行组织。

在检查函数中使用 >= 是否更正确?还是会有一些问题?

 
Oleksii Chepurnyi:

可以在交易操作前 在智能交易系统 中进行组织。

但在检查功能本身 >= 是否更正确?还是会有一些问题?

有时会出现止损错误的问题。我通常检查 "大于 stoplevel+1 点",这样就不会出现错误止损。
 
Artyom Trishkin:
有时会出现止损错误的问题。我通常会检查 "more stoplevel+1 point",这样就不会出现错误止损。
但这样就有可能错过交易....。