Советники: Hans123_Trader

 

Hans123_Trader:

Советник размещает отложенные ордера Buy Stop и Sell Stop. Для этого в заданном интервале баров (в данном коде это количество равно 80) ищется самая высокая и самая низкая цена. По самой высокой цене размещаются Buy Stop, а по самой низкой - Sell Stop.

Отложенные ордера имеют срок жизни до конца текущих суток. При срабатывании любого отложенного ордера все остальные ордера удаляются принудительно.

Пример работы на EURUSD,M5:

Hans123_Trader

Автор: Vladimir Karputov

 

Здравствуйте. Как ограничить количество отложенных ордеров. чтоб советник не выставлял с каждой новой свечой. Все что я нашел 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.  куча ошибок сразу я и заблудился .Подскажите направление.

 
Vityha:

Здравствуйте. Как ограничить количество отложенных ордеров. чтоб советник не выставлял с каждой новой свечой. Все что я нашел 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.  куча ошибок сразу я и заблудился .Подскажите направление.

Я добавил новый параметр "Максимальное количество отложенных ордеров" - то есть теперь в версии два, если есть сигнал на выставление отложенного ордера проверяется существующее количество отложенных ордеров выставленных этим советником.

 
Vladimir Karputov:

Я добавил новый параметр "Максимальное количество отложенных ордеров" - то есть теперь в версии два, если есть сигнал на выставление отложенного ордера проверяется существующее количество отложенных ордеров выставленных этим советником.

Версия два ?А где можно посмотреть 

 
Vityha:

Версия два ?А где можно посмотреть 

Как опубликует так и сразу (а публикуют сейчас долго - сильно возросли требования к описанию, к оформлению, к ... )

Причина обращения: