Прошу помощи у профов нужен участок кода
В моём роботе при определённых условиях после открытия ордера он переводится в безубыток, нужен участок кода который будет перебирать все открытые ордера установленные этим роботом проверяя переведены ли они в безубыток и если хотябы один не переведен то запрет на открытие следующего ордера если все в безубытке то добро на открытие следующего ордера.
- Напишу советник бесплатно
- Советники: News Trading
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Что вам самими мешает написать эту функцию?
B=0;
S=0;
if (OrdersTotal()>=1)
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY && OrderStopLoss()>=OrderOpenPrice()) B=B+1 ;
if (OrderType() == OP_SELL && OrderStopLoss()<=OrderOpenPrice()) S=S+1 ;
}
}
if ((S+B)==OrdersTotal()) то разрешаем открыть сделку ;
не спец, но по бейсику немного пишу )) Любил в детстве бейсик.
Может и ошибки там есть. Проверь.
Alexander Ivanov:
не спец, но по бейсику немного пишу )) Любил в детстве бейсик.
не спец, но по бейсику немного пишу )) Любил в детстве бейсик.
А магик , символ?
A=0;
if (OrdersTotal()>=1)
for (int k=0; k<OrdersTotal(); k++) {
if (OrderSelect(k, SELECT_BY_POS, MODE_TRADES)) {
if ( OrderSymbol()==Symbol()) {
A=A+1;
}
}
}
B=0;
S=0;
if (OrdersTotal()>=1)
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSymbol()==Symbol()) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType() == OP_BUY && OrderStopLoss()>=OrderOpenPrice() && OrderMagicNumber()==Magic) B=B+1 ;
if (OrderType() == OP_SELL && OrderStopLoss()<=OrderOpenPrice() && OrderMagicNumber()==Magic) S=S+1 ;
}
}
}
if ((S+B)==A) то разрешаем открыть сделку ;
может там ошибка. Проверь.