- Открытые ордера
- Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
- Напишу советник бесплатно
Можно подсчитать количество открытых ордеров функцией:
//+--------------------------------------------------------------------+
int OrdersAll(int mag){ int kolvo;
for (int i=OrdersTotal()-1; i>=0; i--){
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if((OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber() == mag )
kolvo++;}} return(kolvo);}
//+--------------------------------------------------------------------+
Пример:
if (OrdersAll(12546)==8) ...
Функция OrdersTotal( ) при получении общего количества открытых и отложенных ордеров в индикаторе возвращает 4, хотя нет ни одного открытого ордера. Эту функцию можно использовать только при написании советника? Есть ли альтернативный вариант получения открытых ордеров именно в индикаторе? Спасибо.
Альтернативных вариантов нет. Функция OrdersTotal возвращает общее количество открытых и отложенных ордеров. Если это не так, представляйте доказательства.
Альтернативных вариантов нет. Функция OrdersTotal возвращает общее количество открытых и отложенных ордеров. Если это не так, представляйте доказательства.
Каким образом предоставить доказательства? Пока только скриншот, запускаю тестер, кидаю индикатор на график и сразу четыре ордера. (См. Коммент)
Код прост
int total=OrdersTotal();
Comment ("total = " + total);
void start() { if (OrdersTotal()<1) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0); OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0); OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, 0, 0); OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, 0, 0); } int total=OrdersTotal(); Comment("total = "+total); }
void start() { int total=OrdersTotal(); Comment("total = "+total); }
Тем не менее, очень бы хотелось иметь штатную функцию возвращающую
количество открытых позиций, например типа OrdersOpenTotal();
Тоже самое делаю и я!!!
только
int start() { int total=OrdersTotal(); Comment("total = "+total); }
Хотя тут принципиальной разницы нет, у меня в любом случае total = 4. Индикатор позы не открывает.
На демо открыты четыре позы, но каким образом это связано с тестером. Билд 217.
Каким образом предоставить доказательства? Пока только скриншот, запускаю тестер, кидаю индикатор на график и сразу четыре ордера. (См. Коммент)
Вы накидываете на график визуализации свой индикатор, но забываете, что этот накинутый индикатор не живет в рыночном окружении тестера (не вызывается из эксперта, запущенного в тестере). Индикатор на графике живет в рыночном окружении текущего активного счета торгового терминала. Именно поэтому индикатор и показывает количество открытых позиций с активного счета, а не из окружения тестера.
Если Вы используете этот индикатор из эксперта, то все работает правильно, так как индикатор живет в собственном моделируемом окружении тестера.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования