for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
// работаем с ордерами
}
或像这样。
for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
// работаем с ордерами
}
}
}
如何将这个公式转换成点数?
我想知道如何优化代码,以加快测试仪中的猫头鹰的速度。你能告诉我如何更快地执行循环吗,像这样。
或像这样。
以及任何其他加快EA速度的技巧?
,如何将这个公式转换为点数?
。
在mql4中,有一个全面的条件检查,即所有在括号if()中的表达式都会被检查到最后,所以有时将复杂的条件分解成几个条件是合理的。
if(a>b && c>d)可以替换为if(a>b){ if (c>d).....}
因此,你建议的第一个代码变体将工作得更快一些,尽管从实践来看--订单的枚举并没有加载很多处理器,数学运算加载了很多处理器,寻找提高代码性能是有意义的--不是所有的计算都要在每个tick 上执行。
在mql4中,有一个完整的条件检查,即所有在括号if()中的表达式都会被检查到最后,所以有时将复杂的条件分成几个条件是合理的。
if(a>b && c>d)可以替换为if(a>b){ if (c>d).....}
因此,你建议的第一个代码变体将工作得更快一些,尽管从实践来看--顺序搜索并不加载处理器很多,数学运算加载处理器很多,寻找增加代码性能是有意义的--不是所有的计算都需要在每个tick进行
我明白了,谢谢你。
或条件中的相同归一化。
使得EA的执行速度大大降低?
减慢了EA的执行速度?
我明白了。谢谢你。但请告诉我,例如在关闭一个订单后,打印。
或条件中的相同归一化。
显著减慢了EA的执行速度?
Print()操作是对一个文件(本例中是一个日志文件)的操作。而这些操作是非常慢的(与处理来自内存的数据相比)。结论:创建一个变量,在init()中初始化。
并按这个变量的条件打印(这是一个选项)。
如果我们从既定的目标(代码优化)出发,你给出的规范化例子是没有意义的。根据经纪公司服务器的技术要求,规范化是必须的,以执行一个 只针对价格和停止的交易订单。
亲爱的投机者,救命啊!想找一个在开仓时 自动设置SL和TP的EA。
我事先非常感谢。