//+----------------------------------------------------------------------------+// Убыточно ли закрылся последний ордер, и подсчет количестваint fHistory(){
int loss = 0;
for(int i=OrdersHistoryTotal()-1; i >= 0; i--){ // Выборка в историиif (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true){ // Если есть следующий в историиif(OrderMagicNumber()!=magN) continue; // Ордера не нашего экспертаif(OrderProfit() < 0 ) loss = loss++; // Если убыток по посл.ордеру - считаемif(OrderProfit() > 0 ) return(loss); // Если прибыль, вернем количество убыточных
}
}
return(-1);
}
把要映射到打印或注释的变量翻译成字符串DoubleToStr( double value, int digits),并设置所需的精度。
https://docs.mql4.com/ru/convert/DoubleToStr
https://docs.mql4.com/ru/common/comment
好的,谢谢。我也在考虑这样做,或者通过ObjecCreate()来构建。
请建议一个函数,计算从最后一个亏损订单到最后一个获利订单的数量...
谢谢你!
在使用OrderProfit()、OrderType()等之前,我需要调用OrderSelect 多少次? 在Start里面调用一次就够了,还是在使用OrderProfit、OrderType等之前,每次都需要调用OrderSelect?
OrderSelect是否必须在OrderProfit之前立即调用,还是可以在开始的任何地方调用,只要是OrderProfit即可?
我写了这个问题,但似乎没有人注意到。我不想在这里写这么长的问题,以免让大家感到困惑。请注意...
https://www.mql5.com/ru/forum/142983
这样试试吧。
因为不能保证你们的订单以完全相同的价格和完全相同的时间开盘。
我写了这个问题,但似乎没有人注意到。我不想在这里写这么长的问题,以免让大家感到困惑。请注意...
https://www.mql5.com/ru/forum/142983
我已经在那条线上给了你一个粗略的算法(为了更好地理解一些细微的差别,在这里稍作修正),没有必要开始一个菜园。
该算法就像百吉饼一样简单。
部分关闭并没有改变 "魔术"。门票变了,但 "魔术 "没有变。
有一个开放的姿势和水平,这个姿势应该是部分封闭的。
假设Level1、Level2和Level3。
1.
2)如果在Bid>=Level3的水平上第三次平仓后仍有头寸,则在Level4过后用拖网对剩余的头寸进行伴随,或者一次性平仓。
这就是全部。
对于卖出,我们看Ask: Ask<=Level1 && Ask>Level2 ...等......。
在我们所有的头寸上做一个循环,按指数选择每一个头寸,计算它的水平和所选头寸的收盘手数,享受工作算法......:)
同时,不需要在EA的内存中(在变量中)存储这些水平的值,这非常方便--如果EA由于某种原因结束了工作,那么在恢复工作后,它不会丢失水平的数据--它将为每个位置重新计算它们。
还有一件事:在部分收盘后,不要忘记回调保护性止损。在1级收盘后--停在收支平衡点,在2级收盘后--停在1级,在3级收盘后--停在2级,等等。
大家好!有没有人有一个使用自定义指标的EA的例子?
问题是什么?
我读了关于将自定义指标 转移到专家顾问代码的文章,感到很困惑。 我应该这样做还是在代码中指定某些指标参数就可以了?
我读了关于将自定义指标移植到专家顾问代码中的文章,我很困惑,我应该这样做还是只在代码中指定一些特定的指标参数就可以了?
能否请你解开一个谜团:为什么当我插入这个函数|| isCloseLastPosByTake() == True |||测试器中的专家开始变得非常慢,10倍!这是4个互斥条件中的一个,所以我不能像求和条件那样使用if链来使代码运行得更快。你能给我什么建议?提前感谢您的建议!