Защита кода советника

  • Автор темы Автор темы Zeliboba
  • Дата начала Дата начала

Zeliboba

Интересующийся
Дорогие друзья поделитесь скриптом или частью котом который можно вживить в советник для его защиты
То есть привязка советника к определенному номеру счета или брокеру
Если есть какие варианты при помощи сервера пишите
Не судите строго я новичок в этом деле ))
 
если AccountInfoInteger(ACCOUNT_LOGIN) не равен какому-то заданному, то делаешь выход из OnInit с ошибкой
 
Если нужна именно защита кода от декомпиляции, то сервис "Cloud Protector" в МетаЭдиторе. Но для использования этой функции у Вас должен иметься эккаунт на сайте mql5.
 
Код:
void OnTick()
{
   int Number = AccountNumber(); // получить номер счета
   if (Number  != 1234567)       // сравнить его с заданным, и если не равен,
   {
      Comment("Работа на счете ",Number," запрещена!");   // вывести комментарий о запрете работы
      return;     // принудительно завершить работу
   }
   // ... дальнейший код советника
}
Дорогие друзья поделитесь скриптом или частью котом который можно вживить в советник для его защиты
То есть привязка советника к определенному номеру счета или брокеру
Если есть какие варианты при помощи сервера пишите
Не судите строго я новичок в этом деле ))
 
вопрос по данной защите:
Код:
extern int Parol = 12345;     // поле для ввода ключа
//
bool Check()  {                                
   int Key=AccountNumber()*2+1000001;  // Вычисляем ключ
   if (Parol==Key) return(true); // Если пароль верный, то..    
   Alert("Неправильный пароль. Эксперт не работает.");
   return(false);
}
//
int OnTick() {
   //
   if(Check()==false) return;                      
   //------------------------------------------ 3 -- основной код ниже
При не правильном вводе пароля срабатывает алерт, но сигналит просто без остановки. Как ограничить кол-во активаций алерта? Например, один раз сработал и всё.
Или, как вариант, как заменить алерт на Comment, чтобы вместо алерта на экране выводилось сообщение об ошибке?
Если можно, именно сам КОД нарисуйте)
 
Последнее редактирование:
вопрос по данной защите:
Код:
extern int Parol = 12345;     // поле для ввода ключа
//
bool Check()  {                               
   int Key=AccountNumber()*2+1000001;  // Вычисляем ключ
   if (Parol==Key) return(true); // Если пароль верный, то..   
   Alert("Неправильный пароль. Эксперт не работает.");
   return(false);
}
//
int OnTick() {
   //
   if(Check()==false) return;                     
   //------------------------------------------ 3 -- основной код ниже
При не правильном вводе пароля срабатывает алерт, но сигналит просто без остановки. Как ограничить кол-во активаций алерта? Например, один раз сработал и всё.
Или, как вариант, как заменить алерт на Comment, чтобы вместо алерта на экране выводилось сообщение об ошибке?
Если можно, именно сам КОД нарисуйте)
Никто не подскажет вариант решения моего вопроса?
 
Никто не подскажет вариант решения моего вопроса?
Потому что у Вас обращение к функции проверки ключа идёт на каждом тике, а, поскольку внешняя переменная Parol не меняется, а проверка производится на каждом тике, и она заканчивается неудачно, то и выдаётся алёрт.
Вместо

if(Check()==false) return;

вбейте

if(!Check())
{
ExpertRemove();
return;
}

Тогда после однократного неудачного прохождения проверки советник выгрузится с графика, и алёрт будет выдан также однократно.
 
Последнее редактирование:

Отслеживают (4) Посмотреть

Назад
Верх