Проблема торговли на нескольких идентичных советниках одновременно.

 

Добрый день,

 Помогите пожалуйста советом, если можете.

Я написал советник для торговли - "EURUSD-exp". Прикрепляю его к графику - EUR/USD - все работает ОК.

Мне же надо, чтобы такой же советник работал параллельно еще например на USD/JPY. 

 Что я делаю:

  - Создаю новый советник - называю его - "USDJPY-exp"

  - Копирую в него программный код из "EURUSD-exp"

  - Сохраняю его и прикрепляю к графику USD/JPY

 

  ---- внутри USDJPY-exp никаких сносок к EURUSD-exp нет. 

 

В итоге, когда они работают одновременно, каждый на своем графике:   при открытии ордера например на EUR/USD - плавающий StopLoss принимает значение то по графику EUR/USD, то USD/JPY и каждый тик они сменяют друг друга.

 Общих файлов, переменных и т.п. у этих советников нет, я сознательно их максимально разделил для независимой друг от друга работы.

 Тем не менее, где-то они пересекаются, но я никак не могу понять где.

 Буду благодарен за любой совет.

Спасибо. 

 

У меня несколько советников с одинаковыми именами, но на разных символах работают нет проблем. Абсолютно независят друг от друга

Переустанови MT4

Создай новый профиль и вставляй советник один и тот же но на разные символы

 
dav1977:

У меня несколько советников с одинаковыми именами, но на разных символах работают нет проблем. Абсолютно независят друг от друга

Переустанови MT4

Создай новый профиль и вставляй советник один и тот же но на разные символы


Думаю что советник не различает символы. Он видит что пара его, а то что символ другой не видит.
А может даже не видит и пары свои. Просто все подрят модифицирует.
А то что вы название файла меняет, то это вообще толку нет.
 
Протестил через GetLastError() и получил ошибку 146 - получается, что 2 эксперта не могут поделить торговый поток. Потому и происходит наложение. Видимо придется создавать разные счета.
 
Eugene_Iv:
Протестил через GetLastError() и получил ошибку 146 - получается, что 2 эксперта не могут поделить торговый поток. Потому и происходит наложение. Видимо придется создавать разные счета.

Да ну нет же. У вас есть магик в советнике? Если есть, задайте для каждого советника свой магик. Не нужно менять название - ничего не даст. Вполне может быть, что в коде нет проверки и на символ графика. Нужно смотреть исходник.


У вас каждый советник считает, что все ордера, открытые на счёте - его. Вот они и трогают чужие позиции. Интересно, а позиции, открытые вручную, тоже советник считает своими?

 
dav1977:

У меня несколько советников с одинаковыми именами, но на разных символах работают нет проблем. Абсолютно независят друг от друга

Переустанови MT4

Создай новый профиль и вставляй советник один и тот же но на разные символы

Не нужно ничего переустанавливать. Советник не различает позиции, открытые не им. Нужно код смотреть.
 

Я магик в советинке так высчитываю

на каждом символе свой магик получается автоматом. И в торговом потоке ордера не пересекаются

  int c1=StringGetChar(_Symbol, 0);
  int c2=StringGetChar(_Symbol, 1);
  int c3=StringGetChar(_Symbol, 2); 
  int c4=StringGetChar(_Symbol, 3);
  
  MAGIC=c1+c2+c3+c4;
 
dav1977:

Я магик в советинке так высчитываю

на каждом символе свой магик получается автоматом. И в торговом потоке ордера не пересекаются

А символ графика как проверяете?
 
Eugene_Iv:

плавающий StopLoss принимает значение то по графику EUR/USD, то USD/JPY и каждый тик они сменяют друг друга

Плавающий Stop Loss - не Static ли, часом? 
 
artmedia70:
А символ графика как проверяете?
А смысл? принцип :   один символ == один советник
 
dav1977:
А смысл? принцип :   один символ == один советник
В советнике проверяете принадлежность ордера тому символу, на котором запущен советник?
Причина обращения: