bool isOrderOnPrice(double calcPrice){ boor res = false; //--- int t = OrdersTotal(); for(int i = t; i >= 0; i--){ //====== if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; //если вдруг такой позиции не существует //--- if(OrderSymbol() != Symbol()) continue; //если не наш инструмент //--- if(OrderMagicNumber() != MagicNumber) continue; //если не наш магик //--- if(OrderType() <= 1) continue; //отсеиваем рыночные ордера (OP_BUY & OP_SELL) //--- if(NormalizeDouble(OrderOpenPrice(), Digits) != NormalizeDouble(calcPrice, Digits)) continue; // если цена открытия не равна расчетной цене открытия //====== return(true); } //--- return(res); }
Вызывай эту функцию перед выставлением ордера.
она возвращает false если ордера на ценовом уровне нет.
artamir:
Вызывай эту функцию перед выставлением ордера.
она возвращает false если ордера на ценовом уровне нет.
Спасибо за код, artamir. А еще вместь calcPrice можно вставить диапазон, в пределах которого дополнительные ордера открываться не будут.
Также встречал системы, где для этих целей использовались серии magic-номеров (101, 102, etc.). Но не для всех случаев это подходит (например при трейлинге портфеля ордеров).
Может кто-то еще подскажет идеи (можно без кода).
bool isOrderOnPrice(double calcPrice, int diap){ boor res = false; //--- int t = OrdersTotal(); for(int i = t; i >= 0; i--){ //====== if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; //если вдруг такой позиции не существует //--- if(OrderSymbol() != Symbol()) continue; //если не наш инструмент //--- if(OrderMagicNumber() != MagicNumber) continue; //если не наш магик //--- if(OrderType() <= 1) continue; //отсеиваем рыночные ордера (OP_BUY & OP_SELL) //--- if(NormalizeDouble(OrderOpenPrice(), Digits) >= NormalizeDouble(calcPrice-diap*Point, Digits) && NormalizeDouble(OrderOpenPrice(), Digits) <= NormalizeDouble(calcPrice+diap*Point, Digits)) continue; // если цена открытия не попадает в диапазон расчетной цены +- diap pip открытия //====== return(true); } //--- return(res); } Вызывай эту функцию п
artamir:
С утра, а какая производительность. Сразу видно, что человек занимается любимым занятием.
Спасибо большое.
всегда рад помочь. :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Прошу прощения, поймал клина.
Нужно чтобы на конкретном ценовом уровне стоял только один отложенник (stop или limit).
А у меня программа постояннонасыпает их целую кучу.
Фильтрация по времени открытия нового бара не годится.