初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1047

 
Roman Sharanov:

而且没有调试?很简单,将测试仪中的日期设置为精确的分钟,然后迅速上紧发条?

测试与调试有什么不同?只有它是直接从代码中运行的。参数的设置和速度的调整都是以同样的方式进行的。

 
Alexey Viktorov:

测试和调试之间有什么区别?只有它是直接从代码中运行的。参数的设置和速度的调整也是如此。

明白了,谢谢你。

 
我在MT5中继续我徒劳的搜索,谷歌在MT5中优化后写设定文件的规则,就像我在MT4中做的那样(保存下载),我也没有找到从EA设定文件中更新的规则,以前安装在MT5图表面板交易。请建议如何处理这个MT5的困惑?
 

通过CTrade工作
交易不设止损
需要修改采取

trade.PositionModify(PositionGetTicket(i), PositionGetDouble(POSITION_SL), tpLvl);

无效停机错误,该怎么办?

可以用其他方式 代替PositionGetDouble(POSITION_SL) 吗?

 
Roman Sharanov:

我通过CTrade工作
交易不设止损
需要修改采取

无效停机错误,该怎么办?

也许可以用PositionGetDouble(POSITION_SL) 来代替写别的东西?

这个 "tpLvl "奇迹是什么? 它的值是否正常化,是否可以把它放在你的位置?

 
Vladimir Karputov:

弄清楚奇迹 "tpLvl "是什么:它的值是否正常化,能否放在你放的地方?

ahhh,无效的停止也可能意味着拿错了?

但尽管如此,在图表上,取材通常被放在正确的位置上

 
Roman Sharanov:

啊啊,无效的停止也可能意味着错误的拍摄?

但尽管如此,在图表上,取值通常是在正确的位置上。

我需要更多的细节来重现:符号,日期,mql5代码,日志,准确描述图表上的位置和错误发生的时刻。
 
Vladimir Karputov:
我们需要更多的细节来重现:符号、日期、mql5代码、日志、图表上的确切描述以及错误发生的时刻。
void transposeTakeProfit(double tpLvl){
        for(int i = PositionsTotal() - 1; i >= 0; i--){
        PositionSelectByTicket(PositionGetTicket(i));
        if(PositionGetString(POSITION_SYMBOL) == _Symbol && PositionGetInteger(POSITION_MAGIC) == _magic){
                trade.PositionModify(PositionGetTicket(i), PositionGetDouble(POSITION_SL), tpLvl);
        }
   }
}

这就是事情发生的原因,一个交易被打开,一个水平被传递,所有的接管都应该被转移到这个水平,如果有其他的交易

但这是第一笔交易,立即进入这个函数,并立即出现错误

 
Roman Sharanov:

这就是事情发生的原因,一个交易被打开,一个水平被传递,所有的接管都应该被转移到这个水平,如果有其他的交易

但这是第一笔交易,直接进入这个函数并立即出现错误

请看我上面的评论。如果至少有一点没有达到,我个人不会做心灵感应 :)
 
Vladimir Karputov:
请看我上面的评论。如果不满足任何一点,我个人不会从事心灵感应 :)

抛出所有900行代码的意义,反正你也不会明白。这个错误特别发生在PositionModify中,我用调试器检查了它

嗯,符号是欧元兑美元,日期是5月2日。