SYS писал (а):
Как этого достичь?
Как этого достичь?
Нужно проверять наличие ордера на ценовом уровне. Вот Вам функция в качестве заготовки:
//+----------------------------------------------------------------------------+ //| Возвращает флаг существования позиций по цене открытия | //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| pp - цена (-1 - любая цена) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ bool ExistPosByPrice(string sy="", int op=-1, double pp=-1, int mn=-1) { int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (pp<0 || pp==OrderOpenPrice()) { if (mn<0 || OrderMagicNumber()==mn) return(True); } } } } } return(False); }
Спасибо, это то что надо !
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Допустим: 100.00, 99.50, 99.00, 98.50, 98.00... и далее вниз до определенной цифры.
В процессе торговли некоторые ордера закрываются и в сетке образуются дыры.
100.00, 99.50, закрылся, 98.50, 98.00...
Необходимо, чтобы советник сам "латал" эту сетку, выставляя новые ордера на место закрывшихся.
Как этого достичь?