Включение в советник тестового периода - страница 2

 

Вставил код из статьи, пункт 4.

П‌еременную password_status компилятор не понимает

 
Andrey Sayapin:


Всего две строчки?

Э‌ту функцию в какой части робота размещать?

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

Тут используется TimeCurrent() - время сервера брокера. На локальной машине можете как хотите дату крутить алерта не выскочит пока на сервере не будет время больше 2017.03.15 00:00
 
Vitalii Ananev:

Тут используется TimeCurrent() - время сервера брокера. На локальной машине можете как хотите дату крутить алерта не выскочит пока на сервере не будет время больше 2017.03.15 00:00

Этот вариант тогда не подходит(
 
Andrey Sayapin:

Этот вариант тогда не подходит(


Почему не подходит?

string Dts = "31.03.2017";
......
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{


   datetime Dtm = StringToTime(Dts);
   if (TimeCurrent()>=Dtm)
   {
      Comment("Trial version, the runtime has expired. Please buy the full version ");
      return(INIT_FAILED);
   }else Comment("Trial version, the runtime has expired "+Dts);
.......


Вместо 31.03.2017 ставите нужную вам дату компилируете советник и отдаете его во временное пользование после этой даты советник работать не будет. А если использовать локальное время то такое ограничение легко обойти просто изменив дату на компьютере.

 
Vitalii Ananev:


Почему не подходит?


Вместо 31.03.2017 ставите нужную вам дату компилируете советник и отдаете его во временное пользование после этой даты советник работать не будет. А если использовать локальное время то такое ограничение легко обойти просто изменив дату на компьютере.


Наверно не так вас понял.

О‌тдаю экзешник и уже встроенную дату не изменить никак...верно?

Где обозначены переменные робота, добавляю объект стринг и в начале инициализации всё остальное?

А‌ как мне самому потом проверить что к примеру 11.03.2017 робот перестанет реагировать?

 
Не работает...поставил вчерашнюю дату, а советник ордера открывает и ничего не пишет(
 
Andrey Sayapin:


Наверно не так вас понял.

О‌тдаю экзешник и уже встроенную дату не изменить никак...верно?

Где обозначены переменные робота, добавляю объект стринг и в начале инициализации всё остальное?

А‌ как мне самому потом проверить что к примеру 11.03.2017 робот перестанет реагировать?


Да дата в  переменной string Dts прописывается в исходнике после компиляции эту дату не изменить. Остальной код в функции OnInit() при установке на график и переинициализации эксперта будут проверятся условия окончания тестового периода. Еще добавте этот же код проверки в самое начало функции OnTick()  только вместо return(INIT_FAILED) напишите просто return. Это надо на случай если эксперт на протяжении всего тестового периода не будет переинициализороватся. 
 
Andrey Sayapin:
Не работает...поставил вчерашнюю дату, а советник ордера открывает и ничего не пишет(

Может чего не так написали. У меня все работает.
Причина обращения: