Советник отказывается работать - страница 2

 
Ivan Ovchinnikov:

у советника есть еще одна часть которая на другой терминал устанавливается. На другом терминале сивол EUR/USD к примеру, на клиентсок EUR/USD_e

и вот из за буквы _e он не работает, т.к скорее всего при сравнивании символов он получаюся разные

У Вас в процессе инициализации задается символ:

int init()
  {
   Comment("Initialization ...");
   if(StringLen(ServerPairName)>=1)
      MasterPair=ServerPairName;
   else
      MasterPair=Symbol();

   StartTime=0;
   return(0);
  }

 Я так понял, если убрать условие, и оставить просто

int init()
  {
   Comment("Initialization ...");
 
   MasterPair=Symbol();

   StartTime=0;
   return(0);
  }

 То торговля будет вестись по символу, на график которого установлен эксперт... И не важно что символы у мастер и слэйв будут различаться. Или просто в настройках советника параметр ServerPairName оставить пустым. Но в первом и втором случае советник следует устанавливать именно на тот символ, по которому будет вестись торговля.

 
Maxim Dmitrievsky:

У Вас в процессе инициализации задается символ:

 Я так понял, если убрать условие, и оставить просто

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

не работает, ошибка server n/a


Эта настройка скорее всего для того если на серверном терминале другие символы (например на сервере было бы EUR/USD_e  а у нас EUR/USD). А у нас ситуация наоборот.

 

Вот такие советы всё-же заставляют нарушать принципы.

extern string ServerPairName = "";

//**************************** Здесь другие данные

string   MasterPair="";

//**************************** Здесь другие данные
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   Comment("Initialization ...");
   if(StringLen(ServerPairName)>=1)
      MasterPair=ServerPairName;
   else
      MasterPair=Symbol();

   StartTime=0;
   return(0);
  }

Эти ServerPairName и MastrPair определяют символы. Видимо можно ничего не обрезать, а просто задать значение переменной ServerPairName "EURUSD_e" даже не в коде, а при запуске советника во внешних переменных.

 
Ivan Ovchinnikov:

не работает, ошибка server n/a


Эта настройка скорее всего для того если на серверном терминале другие символы (например на сервере было бы EUR/USD_e  а у нас EUR/USD). А у нас ситуация наоборот.

А это код слэйв советника? тогда просто вводите символ сервера, EUR/USD, а дальше, по коду видно, что советник будет торговать по Symbol(), то есть по символу на котором установлен, без разницы какому, как правильно выше заметили уже...
 
Maxim Dmitrievsky:
А это код слэйв советника? тогда просто вводите символ сервера, EUR/USD, а дальше, по коду видно, что советник будет торговать по Symbol(), то есть по символу на котором установлен, без разницы какому, как правильно выше заметили уже...

Вы гений! Поставил ServerPairName  EUR/USD все разаботало!


Всем спасибо!

 
Ivan Ovchinnikov:

Вы гений! Поставил ServerPairName  EUR/USD все разаботало!


Всем спасибо!

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

Где его можно скачать (включая ответную серверную часть для создания канала), хотел посмотреть как пользоваться функцией: CallNamedPipeW?