Всем привет.
Написал советника и хочу прогнать по тестеру, но вижу только, что открывается одна сделка и дальше тестер просто "думает" ( никакого прогресса).
Подскажите, пожалуйста, может в коде что-то намудрил?
Спасибо.
Блин, пока писал ответ успел ветку переименовать, молодец.
Вкратце;
Закрой блок открытия, поставь круглую скобку }
А после блока закрытия удали.
Еще условия закрытия, если Direction()==0, а он будет равен 0, подумай что будет?
правильно, открыл и сразу закрыл.
Блин, пока писал ответ успел ветку переименовать, молодец.
Вкратце;
Закрой блок открытия, поставь круглую скобку }
А после блока закрытия удали.
Еще условия закрытия, если Direction()==0, а он будет равен 0, подумай что будет?
правильно, открыл и сразу закрыл.
Сори за ситуацию - просто нашел лаг в коде и, так, как пока ответов небыло, решил удалить ту тему и завести новую с правильным кодом.
Изменения внес, но без результата.
А при Direction()==0 у меня ордера не открываются (мне не нужно открывать при таком значении и в коде это прописано)
Всем привет.
Написал советника и хочу прогнать по тестеру, но вижу только, что открывается одна сделка и дальше тестер просто "думает" ( никакого прогресса).
Подскажите, пожалуйста, может в коде что-то намудрил?
Спасибо.
if(OrdersTotal()>0) // В принципе, при правильно написанном коде - это лишнее условие. { for(int i=OrdersTotal()-1; i<OrdersTotal(); i--) // Как Вы предполагаете - когда этот цикл закончится ? { if(OrderSelect(i,SELECT_BY_POS)) { if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { if(Direction()!=1) OrderClose(OrderTicket(),OrderLots(),Bid,2,Blue); } if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { if(Direction()!=-1) OrderClose(OrderTicket(),OrderLots(),Ask,2,Blue); } } } }
Сори за ситуацию - просто нашел лаг в коде и, так, как пока ответов небыло, решил удалить ту тему и завести новую с правильным кодом.
Изменения внес, но без результата.
А при Direction()==0 у меня ордера не открываются (мне не нужно открывать при таком значении и в коде это прописано)
Нет, при закрытии
У вас
if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { if(Direction()!=1) //вот функция возвращает 0, будет исполнятся OrderClose(OrderTicket(),OrderLots(),Bid,2,Blue); } if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { if(Direction()!=-1)//и тут OrderClose(OrderTicket(),OrderLots(),Ask,2,Blue);
Спасибо, теперь все работает
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет.
Написал советника и хочу прогнать по тестеру, но вижу только, что открывается одна сделка и дальше тестер просто "думает" ( никакого прогресса).
Подскажите, пожалуйста, может в коде что-то намудрил?
Спасибо.