Как сделать, чтобы функция у советника работала только для валютной паре, на которой он установлен?

 

Всем привет! Специалисты, скажите пожалуйста как сделать, чтобы функция у советника работала только для валютной паре, на которой он установлен?

А проблема такая. Есть некая функция и она устанавливает занчение переменной. Причем если советник запущен на нескольких валютных парах, то он берет значение уже установленное.

Надо как то это отгородить.

А еще лучше отгородить весь советник, чтобы он не лез на чужие валютные пары. 

Вот функция. Беда с переменной last_order_type = order_type; если на другую валютную пару установить, то там начинает использоваться отработанное значение.

int OnInit()
{
   InitTradeTime();

   _request_timeout = request_timeout * 60;
   _request_wait_timeout = request_wait_timeout;
   _lot = AccountBalance() * risk/100;
   EventSetTimer(request_timeout);
   
   min_lot = MarketInfo(Symbol(),MODE_MINLOT);         // Минимальное количество лотов
   max_lot = MarketInfo(Symbol(),MODE_MAXLOT);         // Максимальное количество лотов  
      
   InitValues();
   if(trade_skip_by_start==Yes)
   {
      last_order_type = order_type;
   }
      
   CheckLastOrder(true);
   OnTick();
   OnTimer();
   return(INIT_SUCCEEDED);
}
 
Ivan Ovchinnikov:

Всем привет! Специалисты, скажите пожалуйста как сделать, чтобы функция у советника работала только для валютной паре, на которой он установлен?

А проблема такая. Есть некая функция и она устанавливает занчение переменной. Причем если советник запущен на нескольких валютных парах, то он берет значение уже установленное.

Надо как то это отгородить.

А еще лучше отгородить весь советник, чтобы он не лез на чужие валютные пары. 

Вот функция. Беда с переменной last_order_type = order_type; если на другую валютную пару установить, то там начинает использоваться отработанное значение.

Отгородитесь по символу

 
Evgeniy Zhdan:

Отгородитесь по символу

а что нибудь более универсальное есть? чтобы советник сам осознавал где он торгует?

 
Ivan Ovchinnikov:

а что нибудь более универсальное есть? чтобы советник сам осознавал где он торгует?

Ну в приказах на открытие ордера пишите символ, где ордер открывать надо. Текущий символ - _Symbol

 
Evgeniy Zhdan:

Ну в приказах на открытие ордера пишите символ, где ордер открывать надо. Текущий символ - _Symbol

щас подумал, так сделать не прокатит, потому что переменной все равно будет присвоено значение, которое будет всеми использоваться. Тут открытие ордера не при чем. Тут смысл в том, чтобы пропустить первый полученный сигнал. Когда на вторую валютную пару устанавливаю, сова думает что сигнал уже был пропущен.

Надо по другому как нибудь ее изолировать.

 
Ivan Ovchinnikov:

щас подумал, так сделать не прокатит, потому что переменной все равно будет присвоено значение, которое будет всеми использоваться. Тут открытие ордера не при чем. Тут смысл в том, чтобы пропустить первый полученный сигнал. Когда на вторую валютную пару устанавливаю, сова думает что сигнал уже был пропущен.

Надо по другому как нибудь ее изолировать.

Так сразу не скажешь. Надо больше инфы.

 
Ivan Ovchinnikov:

щас подумал, так сделать не прокатит, потому что переменной все равно будет присвоено значение, которое будет всеми использоваться. Тут открытие ордера не при чем. Тут смысл в том, чтобы пропустить первый полученный сигнал. Когда на вторую валютную пару устанавливаю, сова думает что сигнал уже был пропущен.

Надо по другому как нибудь ее изолировать.

А что за переменная такая, которой все советники пользуются? Глобальная переменная терминала?

 
Dmitry Fedoseev:

А что за переменная такая, которой все советники пользуются? Глобальная переменная терминала?

Либо глобальная, либо он думает, что каждый экземпляр советника работает НЕ инкапсулированно на каждом символе

 
Dmitry Fedoseev:

А что за переменная такая, которой все советники пользуются? Глобальная переменная терминала?

вообще понятия не имею почему так. Все из за нее last_order_type

Незнаю почему сова на разных валютных парах ее использует, но судя по всему так и есть.

 
Evgeniy Zhdan:

Либо глобальная, либо он думает, что каждый экземпляр советника работает НЕ инкапсулированно на каждом символе

вот так и работает как раз, то ордера не со своей валютной пары закрывает, то вот переменные использует. 

 
Ivan Ovchinnikov:

вообще понятия не имею почему так. Все из за нее last_order_type

Незнаю почему сова на разных валютных парах ее использует, но судя по всему так и есть.

Не может такого быть. Откуда в этой переменной появляется значение?