Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарабатывай на сервисах MQL5. Это просто!
Forex Trader
114252
Forex Trader 2006.04.30 20:05 
Мне нужно, чтобы скомпилированные ИНДИКАТОРЫ (EX4) переставали работать после истечения срока, ну типа как Демо версия. Или может можно сделать привязку к конфигурации компа или привязку к Логину/ Номеру счета ???!! Как можно это сделать?? Фрагмент кода может кто-нибудь показать??! Пожалуйста!
Forex Trader
114252
Forex Trader 2006.04.30 20:42  
Примерно так, третью защиту по номеру счета ищи на форуме.
/*Первая защита
   if (!IsTesting()) 
      {
      Comment("Версия только для бэктеста!!!");
      return;
      }
*/
//   Первая защита


/*Вторая защита
   if ( (TimeMonth(CurTime())>4)  &&  (TimeYear(CurTime())>=2006)   ) 
      {
      Print("Время советника истекло");
      return(0);
      }
*/
//Вотрая защита
Forex Trader
114252
Forex Trader 2006.04.30 21:22  
Для бектеста защита не подходит, а по времени - то, что нужно! Спасибо! Кстати так и знал, что ответите именно Вы, Rosh! Проблема только в том, что я с Mql совсем не дружу. Можете на примере индикатора показать, что где прописывать? Пожалуста, очень нужно!
//+------------------------------------------------------------------+
//|                                                   Aroon Horn.mq4         |
//|                                                                                   |
//|                                                                                   |
//+------------------------------------------------------------------+
#property copyright 
#property link      

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red

extern int Aroon_Period=10;

double Buffer1[];
double Buffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(0,Buffer1);
   SetIndexLabel(0,"Aroon Up");
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(1,Buffer2);
   SetIndexLabel(1,"Aroon Down");

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- TODO: add your code here
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//---- TODO: add your code here
   double HighestBar,LowestBar,aroonUp,aroonDn;
   for(int shift=Bars-Aroon_Period;shift>=0;shift--){
      HighestBar = Highest(NULL,0,MODE_HIGH,Aroon_Period-1,shift);
      LowestBar = Lowest(NULL,0,MODE_LOW,Aroon_Period-1,shift);
      
      aroonUp = 100 - ((HighestBar - shift) / Aroon_Period) * 100;
      aroonDn = 100 - ((LowestBar - shift) / Aroon_Period) * 100;  
      
      if(aroonUp == 0) { aroonUp = 0.0000001; }
      if(aroonDn == 0) { aroonDn = 0.0000001; }

      Buffer1[shift]=aroonUp;
      Buffer2[shift]=aroonDn;
      
      }
      
//----
   return(0);
  }
//+------------------------------------------------------------------+

Forex Trader
114252
Forex Trader 2006.04.30 21:53  
//+------------------------------------------------------------------+
//|                                                   Aroon Horn.mq4         |
//|                                                                                   |
//|                                                                                   |
//+------------------------------------------------------------------+
#property copyright 
#property link      

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red

extern int Aroon_Period=10;

double Buffer1[];
double Buffer2[];
int CorrectNumber=*****;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(0,Buffer1);
   SetIndexLabel(0,"Aroon Up");
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
   SetIndexBuffer(1,Buffer2);
   SetIndexLabel(1,"Aroon Down");

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- TODO: add your code here
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
/*Первая защита
   if (IsTesting()) 
      {
      Comment("Бэктест не работает!!!");
      return;
      }
*/
//   Первая защита


/*Вторая защита
   if ( (TimeMonth(CurTime())>4)  &&  (TimeYear(CurTime())>=2006)   ) 
      {
      Print("Время советника истекло");
      return(0);
      }
*/
//Вторая защита
//Третья защита
   if(AccountNumber()!=CorrectNumber)  return(0);
//Третья защита
//---- TODO: add your code here
   double HighestBar,LowestBar,aroonUp,aroonDn;
   for(int shift=Bars-Aroon_Period;shift>=0;shift--){
      HighestBar = Highest(NULL,0,MODE_HIGH,Aroon_Period-1,shift);
      LowestBar = Lowest(NULL,0,MODE_LOW,Aroon_Period-1,shift);
      
      aroonUp = 100 - ((HighestBar - shift) / Aroon_Period) * 100;
      aroonDn = 100 - ((LowestBar - shift) / Aroon_Period) * 100;  
      
      if(aroonUp == 0) { aroonUp = 0.0000001; }
      if(aroonDn == 0) { aroonDn = 0.0000001; }

      Buffer1[shift]=aroonUp;
      Buffer2[shift]=aroonDn;
      
      }
      
//----
   return(0);
  }
//+------------------------------------------------------------------+

Forex Trader
114252
Forex Trader 2006.04.30 21:59  
Огромное Спасибо!!! Все работает!! :) Еще вопрос! а можно залочить индикатор/ эксперт под конкретную валютную пару или тикер??
Denis Chaplinskiy
145
Denis Chaplinskiy 2015.11.25 06:20  
Forex Trader:
Примерно так, третью защиту по номеру счета ищи на форуме.
/*Вторая защита
   if ( (TimeMonth(CurTime())>4)  &&  (TimeYear(CurTime())>=2006)   ) 
      {
      Print("Время советника истекло");
      return(0);
      }
*/
//Вотрая защита
Добрый день!
Как совместить этот код 
 if(AccountNumber()!=000000 )
     {
       Alert ("Приобретите лицензию!!!");
       Sleep(500);
       Comment(" Индикатор активен! ");
       return(0);
     }
и ваш код. задача нужно одновременно привязка к счету и чтобы индикатор перестал работать в определенную дату и время. как это сделать правильно? нужно четкое время дата..и чтобы индикатор перестал работать.спасибо
Sergei Vladimirov
8388
Sergei Vladimirov 2015.11.25 17:45  
if(AccountNumber() != ... || TimeCurrent() >= D'01.01.2016')
{
   static bool bAlerted = false;

   if(bAlerted == false)
   {
      Alert("Уведомление об окончании триала");
      bAlerted = true;
   }

   return(0)
}
Вставить в самое начало OnCalculate().
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий