помогите исправить привязку советника к номеру счёта)

 
здравствуйте!подскажите,как правильно написать),чтобы если номер счёта не совпадал при перетаскивании советника на график,то он выдавал ошибку и не ставился на график?)


void OnTick()
{
   int Number = AccountNumber(); // получить номер счета
   if (Number  != 602202)       // сравнить его с заданным, и если не равен,
   {
      Comment("Работа на счете ",Number," запрещена!");   // вывести комментарий о запрете работы
      } 
      return(INIT_FAILED);     
   }
   // ... дальнейший код советника
 
Pavel Malyshko:
здравствуйте!подскажите,как правильно написать),чтобы если номер счёта не совпадал при перетаскивании советника на график,то он выдавал ошибку и не ставился на график?)


Поднимите return(INIT_FAILED); 

на строчку выше (сразу после Comment)

Я бы ещё и владельца счёта добавил (у меня еще проверяется демо или реал) МТ5

//| Expert Check Account owner function                              |
//+------------------------------------------------------------------+
bool ExpCheckUser()
{
  long acc_login = long(AccountInfoInteger(ACCOUNT_LOGIN));
  string acc_user = AccountInfoString(ACCOUNT_NAME);
  long acc_real = AccountInfoInteger(ACCOUNT_TRADE_MODE);
  if(acc_real == ACCOUNT_TRADE_MODE_REAL)
  {
    if ((acc_login == 123456) && ( acc_user == "Xxxx Xxxxx Xxxx")) return(true);
  }
  return(false); 
}
 
prostotrader:


Поднимите return(INIT_FAILED); 

на строчку выше (сразу после Comment)

Я бы ещё и владельца счёта добавил (у меня еще проверяется демо или реал) МТ5

сделал точно так же,советник перетаскивается на график.. и улыбается)
почему?если acc_login у меня не 123456...

 
Pavel Malyshko:

сделал точно так же,советник перетаскивается на график.. и улыбается)
почему?если acc_login у меня не 123456...

Вы про свой код говорите или про мой?

Выложите код как Вы сделали.

 
prostotrader:

Вы про свой код говорите или про мой?

Выложите код как Вы сделали.

вставил в самом начале кода..

//+--------------------------------------------------------------------------------+ EXTERNAL INPUTS +---------------+
//| Expert Check Account owner function                              |
//+------------------------------------------------------------------+
bool ExpCheckUser()
{
  long acc_login = long(AccountInfoInteger(ACCOUNT_LOGIN));
  string acc_user = AccountInfoString(ACCOUNT_NAME);
  long acc_real = AccountInfoInteger(ACCOUNT_TRADE_MODE);
  if(acc_real == ACCOUNT_TRADE_MODE_REAL)
  {
    if ((acc_login == 123456) && ( acc_user == "Xxxx Xxxxx Xxxx")) return(true);
  }
  return(true); 
}
//--- Add "extern " before each parameter to get them in the inputs tab
 
Pavel Malyshko:

вставил в самом начале кода..

//+--------------------------------------------------------------------------------+ EXTERNAL INPUTS +---------------+
//| Expert Check Account owner function                              |
//+------------------------------------------------------------------+
bool ExpCheckUser(void)
{
  if((long)AccountInfoInteger(ACCOUNT_TRADE_MODE) != ACCOUNT_TRADE_MODE_REAL)
     return false;
  if((int)AccountInfoInteger(ACCOUNT_LOGIN) != 123456)
     return false;
  if(AccountInfoString(ACCOUNT_NAME) != "Xxxx Xxxxx Xxxx")
     return false;

  return true; 
}
//--- Add "extern " before each parameter to get them in the inputs tab
void OnInit(void)
{
     if(!ExpCheckUser())
          ExpertRemove();
}
 
Konstantin Nikitin:

выдаёт такую ошибку при компилировании...

 
Pavel Malyshko:

выдаёт такую ошибку при компилировании...

Специальные функции

Функции обработки событий

 

спасибо).буду разбираться)