- Не открываются сделки на Buy
- Закрытие отложенных ордеров
- Нюанс OrderModify()
Чтобы узнать тип ордера его надо сначала выбрать из всего списка ордеров. А работать только с отложками можно так
for(i = 0; i < OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS) && OrderType() > OP_SELL)// также отобрать по символу и магику && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic) { //Делаем с ордером что надо... } }
Чтобы узнать тип ордера его надо сначала выбрать из всего списка ордеров. А работать только с отложками можно так
Надо ещё исключить операции со счётом, их только для статистики считают обычно:
if(OrderSelect(i, SELECT_BY_POS) && (OrderType() > 1 && OrderType() < 6) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
Чтобы узнать тип ордера его надо сначала выбрать из всего списка ордеров. А работать только с отложками можно так
Надо ещё исключить операции со счётом, их только для статистики считают обычно:
if(OrderSelect(i, SELECT_BY_POS) && (OrderType() > 1 && OrderType() < 6) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
Надо ещё исключить операции со счётом, их только для статистики считают обычно:
if(OrderSelect(i, SELECT_BY_POS) && (OrderType() > 1 && OrderType() < 6) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
А разве типы > 5 не только в истории встречаются?
Может в момент операции они тоже на какие-то секунды в реале, а может и нет, но написать пару символов ничего не стоит )))
Никак попасть они в МТ не могут. Эти операции проводятся на сервере и оттуда попадают сразу в историю. Так-что не стоит дуть на воду, тем-более на молоке не обжигаясь.
Значения именованных констант также могут быть изменены. Поэтому условия типа:
OrderType() > OP_SELL
и
OrderType() > 1 && OrderType() < 6
Относятся к плохому стилю кодирования, т. к. дискретитируют саму идею именованных констант. Вот потребуется разработчикам в очередном билде изменить значения OP_BUY и OP_SELL на другие, и к чему приведет такой программный подход? Он в итоге даст сбой на ровном месте. Именованными константами нужно пользоваться так, как это задумано в их сути:
OrderType() == OP_SELLSTOP || OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT
Значения именованных констант также могут быть изменены. Поэтому условия типа:
и
Относятся к плохому стилю кодирования, т. к. дискретитируют саму идею именованных констант. Вот потребуется разработчикам в очередном билде изменить значения OP_BUY и OP_SELL на другие, и к чему приведет такой программный подход? Он в итоге даст сбой на ровном месте. Именованными константами нужно пользоваться так, как это задумано в их сути:
And your code is excessive.
int type=OrderType();
(type==OP_SELLSTOP || type==OP_BUYSTOP || type==OP_BUYLIMIT || type==OP_SELLLIMIT)
And your code is excessive.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования