небольше проблемы со скриптом...
- Новая версия платформы MetaTrader 5 build 2715: Общие улучшения
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
- На нашем веб-сайте выложен обновленный билд 198 от 19 октября
На расстоянии 1 спичечный коробок и еще одна треть от начала находтся ошибка)))
А если хотите обсуждать - отформатируйте в SRC прямо в посте
void start() { for (int i=OrdersTotal(); i==0;) { for (int a=OrdersTotal(); a>=-1; a--) { if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,9,Gold); else OrderClose(OrderTicket(),OrderLots(),Ask,9,Gold); } } } return(0); }
void start() { for (int i=OrdersTotal(); i==0;) //Где декремент i? - здесь бесконечный цикл { for (int a=OrdersTotal(); a>=-1; a--) //самый малый номер ордера в списке это ноль, сейчас выходит за граицу { if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==true) //TRUE - лишнее { if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,9,Gold); else OrderClose(OrderTicket(),OrderLots(),Ask,9,Gold); } } } return(0); }
Это называется - программирование на удачу - авось чтонить получиться :-)
Почитайте https://book.mql4.com/ru/trading/orderclose
здесь есть нужные вам ответы
void start() { for (int i=OrdersTotal(); i==0;) {i=OrdersTotal(); for (int a=OrdersTotal(); a>=0; a--) { if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,9,Gold); else OrderClose(OrderTicket(),OrderLots(),Ask,9,Gold); } } } return(0); } // а так почему не работает?
Это называется - программирование на удачу - авось чтонить получиться :-)
Почитайте https://book.mql4.com/ru/trading/orderclose
здесь есть нужные вам ответы
мне просто хотелось разобратся как работают скрипты =)
void start() { for (int a=OrdersTotal()-1; a>=0; a--) {RefreshRates(); if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES)) { if (OrderType()==OP_BUY&&OrderCloseTime()==0) OrderClose(OrderTicket(),OrderLots(),Bid,9,Gold); else OrderClose(OrderTicket(),OrderLots(),Ask,9,Gold); } } return(0); }
P.S. minus 1 OrderTotal