Здравствуйте. Как ограничить количество отложенных ордеров. чтоб советник не выставлял с каждой новой свечой. Все что я нашел https://www.mql5.com/ru/articles/22,
//+------------------------------------------------------------------+ //| Возвращает максимально допустимый объем для ордера по символу | //+------------------------------------------------------------------+ double NewOrderAllowedVolume(string symbol) { double allowed_volume=0; //--- получим ограничение на максимальный объем в ордере double symbol_max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); //--- получим ограничение по символу на объем double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT); //--- получим объем открытой позиции по символу double opened_volume=PositionVolume(symbol); if(opened_volume>=0) { //--- если мы уже исчерпали объем if(max_volume-opened_volume<=0) return(0); //--- объем открытой позиции не превышает max_volume double orders_volume_on_symbol=PendingsVolume(symbol); allowed_volume=max_volume-opened_volume-orders_volume_on_symbol; if(allowed_volume>symbol_max_volume) allowed_volume=symbol_max_volume; } return(allowed_volume); }
Изучаю программирование только 2 недели моих мозгов хватило вставить в ф-ю OnTick. куча ошибок сразу я и заблудился .Подскажите направление.
Здравствуйте. Как ограничить количество отложенных ордеров. чтоб советник не выставлял с каждой новой свечой. Все что я нашел https://www.mql5.com/ru/articles/22,
//+------------------------------------------------------------------+ //| Возвращает максимально допустимый объем для ордера по символу | //+------------------------------------------------------------------+ double NewOrderAllowedVolume(string symbol) { double allowed_volume=0; //--- получим ограничение на максимальный объем в ордере double symbol_max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); //--- получим ограничение по символу на объем double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT); //--- получим объем открытой позиции по символу double opened_volume=PositionVolume(symbol); if(opened_volume>=0) { //--- если мы уже исчерпали объем if(max_volume-opened_volume<=0) return(0); //--- объем открытой позиции не превышает max_volume double orders_volume_on_symbol=PendingsVolume(symbol); allowed_volume=max_volume-opened_volume-orders_volume_on_symbol; if(allowed_volume>symbol_max_volume) allowed_volume=symbol_max_volume; } return(allowed_volume); }
Изучаю программирование только 2 недели моих мозгов хватило вставить в ф-ю OnTick. куча ошибок сразу я и заблудился .Подскажите направление.
Я добавил новый параметр "Максимальное количество отложенных ордеров" - то есть теперь в версии два, если есть сигнал на выставление отложенного ордера проверяется существующее количество отложенных ордеров выставленных этим советником.
Я добавил новый параметр "Максимальное количество отложенных ордеров" - то есть теперь в версии два, если есть сигнал на выставление отложенного ордера проверяется существующее количество отложенных ордеров выставленных этим советником.
Версия два ?А где можно посмотреть
Версия два ?А где можно посмотреть
Как опубликует так и сразу (а публикуют сейчас долго - сильно возросли требования к описанию, к оформлению, к ... )

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Hans123_Trader:
Советник размещает отложенные ордера Buy Stop и Sell Stop. Для этого в заданном интервале баров (в данном коде это количество равно 80) ищется самая высокая и самая низкая цена. По самой высокой цене размещаются Buy Stop, а по самой низкой - Sell Stop.
Отложенные ордера имеют срок жизни до конца текущих суток. При срабатывании любого отложенного ордера все остальные ордера удаляются принудительно.
Пример работы на EURUSD,M5:
Автор: Vladimir Karputov