По одному ордеру на каждую пару - страница 2

 
Vinin Спасибо за ответ
 
Dharma писал (а) >>
Что-то не получается первый способ с магиком там при компиляции пишет: 'NumberOfPositions' - function is not defined (функция не определена).

Видно вы забыли код самой функции скопировать в код вашего эксперта.

 

Если вы имеете, введу вот этот код, то я его копировал.

int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), kp=0;
  if (StringLen(sy)==1 && StringGetChar(sy, 0)==48) sy=Symbol();

  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) kp++;
          }
        }
      }
    }
  }
  return(kp);
 

Вот вам образец эксперта-заготовки с аналогичной функцией (сама ф-я - в самом конце кода). Этот эксперт был сделан моим приятелем в свое время специально для моего обучения основам MQL

Эксперт может одновременно "держать " до 2-х позиций - длинную+короткую.

Магики заданы отдельно для длинных и коротких позиций. Их (позиции) можно отключать соотв. "выключателями" (Ну и трал там тож отдельный. С порогом...) Для работы эксперта в онлайне на др. графиках и по др. парам нужно всего лишь задать другие магики в СВОЙСТВАХ.

Лучше всего на тф=н4 тестировать. По ценам открытия можно....

Файлы:
rsi_ma_1.rar  22 kb
 
rid Спасибо за эксперта, но я не смог код, который написан внизу вписать в советник ДиНаполи опять пишет ошибки...
Я не силен в программирование на MQL4 придется читать инфу о том, как работать с ордерами в эксперте.

Второй способ от Nadejnie я сделал без ошибок, но он так же включает один ордер ждет пока он выключится.
 
Dharma писал (а) >>
Второй способ от Nadejnie я сделал без ошибок, но он так же включает один ордер ждет пока он выключится.

так я не совсем понял. Что вы хотите сделать?

Чтобы эксперт мог открывать несколько позиций? По каждому сигналу на вход? Не дожидаясь, пока закроются предыдущие открытые позиции?

Непонятно, чем вас не устраивает один ордер....

 
rid писал (а) >>

так я не совсем понял. Что вы хотите сделать?

Чтобы эксперт мог открывать несколько позиций? По каждому сигналу на вход? Не дожидаясь, пока закроются предыдущие открытые позиции?

Непонятно, чем вас не устраивает один ордер....

Я включаю советник на всех графиках и советник когда сигнал на одном графике включает одну позицию, а когда сигнал на другом графике советник ордер не включает, т.е. мне нужно чтобы советник включал по одному ордеру на каждую пару, а не просто один ордер.

 

Ну так я же вам уже писал. Для этого нужно всего лишь предусмотреть магик в СВОЙСТВАХ и соответственно вставить его в функции открытия позиции ticket = OrderSend(... ...)

Вот вам эксперт ДиНаполи (в закачке). Ставите его на график.

Если вы хотите, чтобы он открывал позиции на другом графике (др. пары) тоже, то в СВОЙСТВАХ этого эксперта, поставленного на др. график измените параметр

magic = 4444;

на ЛЮБОЕ ДРУГОЕ ЧИСЛО.

И так для каждого графика, Где вы будете работать этим экспертом, - свой числовой магик-номер !

И всё будет в порядке.

Файлы:
 
rid Спасибо сейчас попробую.
 

Dharma, перекачайте эксперта. В первоначально выложенной версии-03 была ошибка. Удалите её.

Я обновил закачку.

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