Индикаторы: Индикатор утреннего флета + советник + оптимизатор

 

Индикатор утреннего флета + советник + оптимизатор:

Во время утреннего флета индикатор строит канал по принципу линейной регрессии.

Советник имеет функцию реверсного входа в рынок в течение дня после завершения первой сделки.

Оптимизатор позволяет выбрать лучший вариант параметров после прогона на тестере.

Картинки на основание оптимизированных параметров с 01.07.2009 по 1.07.2010:

Author: Ivan Katsko

 

Волатильность попробуйте по этому индикатору ATR Darma сделать, вместо Silence может картинка по лучше будет......

//+------------------------------------------------------------------+
//|                                                    ATR Darma.mq4 |
//+------------------------------------------------------------------+
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Purple
#property indicator_color2 LightSeaGreen
#property indicator_level1 1
//---- indicator parameters
extern int ATR_Period      = 20;
extern int SignalLine_Period   =  10;
extern int SignalLineShift     =  0;
extern int SignalLineMa_Method =  0; // 0 SMA , 1 EMA , 2 SMMA , 3 LWMA
extern int ShowBars            = 500;
//---- indicator buffers
double ATR_Buffer[];
double MA_ATR_Buffer[];
int    draw_begin0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
 {
//---- indicator buffers mapping
  
//---- drawing settings
  
  draw_begin0 = ATR_Period;
  
  SetIndexEmptyValue(1,0.0000);
  SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
  SetIndexBuffer(1,ATR_Buffer);
  SetIndexLabel(1,"ATR");
  SetIndexDrawBegin(1,draw_begin0);
  
  SetIndexEmptyValue(0,0.0000);
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
  SetIndexBuffer(0,MA_ATR_Buffer);
  SetIndexLabel(0," ("+SignalLine_Period+") Period MA of ATR");
  SetIndexDrawBegin(0,draw_begin0);
  
  
//---- name for DataWindow and indicator subwindow label
  
  IndicatorShortName("ATR Darma");
  
  
//---- initialization done
  return(0);
 }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start() {
   int limit,i,shift;
   int counted_bars=IndicatorCounted();
//---- check for possible errors
  if(counted_bars<1)
      for(i=1;i<=draw_begin0;i++) 
         MA_ATR_Buffer[Bars-i]=0; ATR_Buffer[Bars-i]=0;
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
//limit=Bars-counted_bars;
   limit = ShowBars;
   if (ShowBars >= Bars) limit = Bars - 1;
//-----------------------------------------------------------------------------------------------------------------
//---- ATR_Buffer
  
   for(i=0; i<limit; i++)
      ATR_Buffer[i] = iATR(Symbol(),0,ATR_Period,i);
//---- MA_ATR_Buffer
  
   for(i=0; i<limit; i++)
      MA_ATR_Buffer[i]=iMAOnArray(ATR_Buffer,0,SignalLine_Period,SignalLineShift,SignalLineMa_Method,i);
//-----------------------------------------------------------------------------------------------------------------
//---- done
   return(0);
}
 
+10 отличный комплект!!!
 
+10.Отличная работа - и с точки зрения трейдерства, и с точки зрения программинга.
 
Да, кстати, а что, если использовать такой индикатор волатильности?
//+X================================================================X+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_width1 2
//---- input parameters
extern int AtrPeriod=20;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 1 additional buffer used for counting.
   IndicatorBuffers(2);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,AtrBuffer);
   SetIndexBuffer(1,TempBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="N_turtles("+AtrPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   SetIndexDrawBegin(0,AtrPeriod);
//----
   return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   if(Bars<=AtrPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=AtrPeriod;i++) AtrBuffer[Bars-i]=0.0;
//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      if(i==Bars-1)
      {
       TempBuffer[i]=high-low;
       AtrBuffer[i]=high-low;
      } 
      else
        {
         double prevclose=Close[i+1];
         TempBuffer[i]=MathMax(MathMax((high-prevclose),(prevclose-low)),(high-low));
        }
      i--;
     }
//----
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(i=limit-1; i>=0; i--)
      AtrBuffer[i]=((AtrPeriod-1)*AtrBuffer[i+1]+TempBuffer[i])/AtrPeriod;
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
ЯЯ начинающий пользователь. Не могу установить. Подскажите, что, куда и как устанавлиается, если не тяжело. Заранее спасибо.
 
А почему ошибку выдает??? 2009.08.20 11:20 iK_ex_LinReg_v1 EURUSD,M15: invalid lots amount for OrderSend function

 
Savl:
А почему ошибку выдает??? 2009.08.20 11:20 iK_ex_LinReg_v1 EURUSD,M15: invalid lots amount for OrderSend function


так отож ...
 
прикрепил советник, прикрепил индикатор к инструменту, а он что-то не рисуется.
 
прикрепил советник, прикрепил индикатор к инструменту, а он что-то не рисуется.

Я так понимаю, прикрепил на демо счете или на реале, но не тестере? Если да, то рисовать будет тогда, когда будет найден флет. А это зависит от заданного параметра ширины канала (MaxSL). Он задается в пунктах. Поэтому внимательней: для 4-х знаков это может быть, например, 50, а для 5-ти - 500

 
ikatsko:
прикрепил советник, прикрепил индикатор к инструменту, а он что-то не рисуется.

Я так понимаю, прикрепил на демо счете или на реале, но не тестере? Если да, то рисовать будет тогда, когда будет найден флет. А это зависит от заданного параметра ширины канала (MaxSL). Он задается в пунктах. Поэтому внимательней: для 4-х знаков это может быть, например, 50, а для 5-ти - 500

благодарю... а ействительно... ошибка 4051 - достала... как бороться, уважаемый