for ( i=0; i<OrdersTotal(); i++ ) if ( OrderSelect(0, SELECT_BY_POS, MODE_TRADES) && OrderCloseTime() == 0 && Op == OrderType() ) OrderClose(OrderTicket(),
With MODE_TRADES you only get open orders so OrderCloseTime will always be zero (unnecessary test)
When you close an order higher numbered orders are renumbered, so the above code will close every other open order, not all orders. Always count DOWN when closing and modifying lot sizes (partial close.)
MargemLivre/100000
tam_lote >= 0.01
Preco + Pips*Point
Hard coded numbers means the EA fails on a mini account (get values from MarketInfo)
Pips*Point fails on 5 digit brokers Pips*pips2dbl won't:
//++++ These are adjusted for 5 digit brokers. double pips2points, // slippage 3 pips 3=points 30=points pips2dbl; // Stoploss 15 pips 0.0015 0.00150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) int init() { if (Digits == 5 || Digits == 3) { // Adjust for five (5) digit brokers. pips2dbl = Point*10; pips2points = 10; Digits.pips = 1; } else { pips2dbl = Point; pips2points = 1; Digits.pips = 0; }
for ( i=0; i<OrdersTotal(); i++ ) if ( OrderSelect(0, SELECT_BY_POS, MODE_TRADES) && OrderCloseTime() == 0 && Op == OrderType() ) OrderClose(OrderTicket(),
With MODE_TRADES you only get open orders so OrderCloseTime will always be zero (unnecessary test)
When you close an order higher numbered orders are renumbered, so the above code will close every other open order, not all orders. Always count DOWN when closing and modifying lot sizes (partial close.)
MargemLivre/100000 tam_lote >= 0.01 Preco + Pips*Point
Hard coded numbers means the EA fails on a mini account (get values from MarketInfo)
Pips*Point fails on 5 digit brokers Pips*pips2dbl won't:
//++++ These are adjusted for 5 digit brokers. double pips2points, // slippage 3 pips 3=points 30=points pips2dbl; // Stoploss 15 pips 0.0015 0.00150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) int init() { if (Digits == 5 || Digits == 3) { // Adjust for five (5) digit brokers. pips2dbl = Point*10; pips2points = 10; Digits.pips = 1; } else { pips2dbl = Point; pips2points = 1; Digits.pips = 0; }
Dear sir
No orders are executed in my platform, but only shows the pending orders, don't know the reason why .
In which place the above correction to be replaced in the EA ? thank you
Also, lot size module is not good, some reasons:
1) extreme lot sizes are not well calculated, no minimum margin level relevance;
2) lot size is intended to work only on ABCXYZ pairs, where ABC is account currency and XYZ is another currency;
3) only 1:100 leverage accounts;
4) no metals for trading while lot sizes calculated are very wrong;
I'm working hard on risk management modules, soon I'll send you a enhanced version of the robot.
Have a nice week,
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
EnvelopeMA version 0.0.1.beta:
Author: Cassio Jandir Pagnoncelli