Учимся писать советник. Демо версия. Часть 8

Сегодня будет небольшой урок. Вообще-то накодировал я достаточно, но просто выходной, пора отдыхать, а много времени ушло на поиск, установку и подгонку плагина для Вордпресс — менеджера загрузок. Как всегда не обошлось без танцев с бубнами, потому как бесплатные плагины имеют множество ограничений, и из-за пары недостающих функций покупать ПРО-версию не хочется. Приходится погружаться в недра PHP-кода и кое-что изменять.

Итак, самые последние изменения произошли во внедрении функции проверки лицензии и демо-режима. Ничего тут сложного нет, в учебнике все ясно описано. Правда, такая защита не остановит любителей копаться в двоичном коде — можно поменять в редакторе значения ограничительных строк и номеров. Но у нас учебный пример и усилением защиты займемся как-нибудь позднее.

...
 //--данные о лицензии
 string AccountCompany="E-Global Trade & Finance Group, Inc."; //название брокера
 int AccountNumber = 3136912;
 string LicenceExpiredDate="2016.12.31 23:59"; //Время окончания лицензии
 ...
bool LicenceCheck()                  
  {   
      
   if(TimeCurrent() > StrToTime(LicenceExpiredDate))  // ограничение роботы советника по времени
   {
    Alert("Срок лицензии истек, обратитесь к разработчику http://hometrade.ru");
    return(false);
   }
                     
   if (IsDemo()==true)                 // На демо счете работаем
      return(true);                    
   if (AccountCompany()==AccountCompany && AccountNumber()==AccountNumber)  // Жестко зашиты брокер и номер счета
      return(true);                   
   Alert("Лицензия не действительна, обратитесь к разработчику http://hometrade.ru");
   return(false);                    
  }
...

Эта функция отвечает за проверку даты истечения лицензии (или окончания поддержки данной версии), демо-счета — тогда работаем без ограничений, и привязки к конкретному брокеру и номеру счета.

Саму функцию вызываем из начала Start() (OnTick()) и/или OnInit() — в последнем случае можно вообще не допустить загрузку эксперта

int OnInit()
 {
 if(LicenceCheck()==false)
 return (INIT_FAILED);
 ...

Еще в новой версии 1.9 добавлен новый метод определения тренда по MACD и Stochastic, вынесены в настройки их параметры для оптимизации. Теперь можно выбрать 1 из 4 доступных методов: 0 — метод по мувингам, 1 — по цвету свечи, 2 — случайных вход, 3 — MACD и Стохастик.

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

Может еще какие нововведения, сделанные за эту неделю, забыл, но это не важно. Главное, теперь можно скачать демо версию эксперта, а иначе зачем я столько мучался с плагином Downloads Manager? Вот кстати стейт работы этого советника со случайно выставленными настройками — торговать можно?

forex-grail-1.9

Скачать текущую и все последующие версии советника можно в новом разделе «Файлы».

Предыдущая часть 7: Выстраивание колен.
Предыдущая часть 9: Работа по расписанию экономических новостей.

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Вы должны быть авторизованы, чтобы разместить комментарий.