Скачать MetaTrader 5

Ограничение работы Индикаторов по времени???!?!?!?!?

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


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

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

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