Индикаторы: Индикатор Веер

 

Индикатор Веер:

Индикатор Веерной торговли с цветовой интерпретацией

Author: Vladimir

 
А не легче ли наложить сам веер?
 
чото хз как интепретировать...
 
я так понял когда веер раскрыт и расширяется (цвет  LIME), то это верный признак четкого движения по направлению основного тренда.
 
ellizii:
я так понял когда веер раскрыт и расширяется (цвет  LIME), то это верный признак четкого движения по направлению основного тренда. 

Абсолютно верно !
 
mixo_lexus:
чото хз как интепретировать...

Интерпретировать можно следующем образом:
когда Lime тренд есть и увеличивается
когда Green тренд есть, но уменьшается
когда Yellow неопределенность с большой волатильностью
когда Orange неопределенность, но рынок успокаивается.
 
Valeriy. писал(а):
А не легче ли наложить сам веер? 

Есть и такой http://codebase.mql4.com/ru/code/9624.
Я их в паре и использую !
 
Добавил еще один буфер. (сглаживание красной)
//+------------------------------------------------------------------+
//|                                                    Fan_v1.0.mq4  |
//|                              Copyright © 2010, Sautkin Vladimir  |
//|                                                 sly_fox@list.ru  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Sautkin Vladimir"
#property link      "sly_fox@list.ru"
//--------------------------------------------------------------------
// Ļšč öāåņå Lime    āååš šąńźšūņ č šąńųčš˙åņń˙
// Ļšč öāåņå Green   āååš šąńźšūņ č ńóęąåņń˙
// Ļšč öāåņå Yellow  āååš ļåšåļėåņåķ č šąńųčš˙åņń˙
// Ļšč öāåņå Orange  āååš ļåšåļėåņåķ č ńóęąåņń˙
// Öāåņ Red āēāåųåķķīå čēģåķåķčå öåķū
//--------------------------------------------------------------------
#property indicator_separate_window
#property indicator_level1      0
#property indicator_levelcolor  Silver
#property indicator_levelwidth  0
#property indicator_levelstyle  2
#property indicator_buffers 6
#property indicator_color1  Lime
#property indicator_color2  Green 
#property indicator_color3 Yellow 
#property indicator_color4 Orange 
#property indicator_color5 Red
#property indicator_color6 Yellow
extern int period_1   = 1;
extern int period_2   = 25;
extern int period_3   = 50;
extern int period_4   = 75;
extern int period_5   = 100;
extern int period_6   = 150;
extern int period_7   = 200;
extern int width      = 1;
extern int TF         = 0;
extern int lyginimas=5;
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
//------------------------------------------------------------------
int init()
{
   if ( TF < Period() ) TF=0;
   if (TF!=0) TF = next_period(TF);
   SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2);
   SetIndexBuffer(0,Buffer1);
   SetIndexLabel(0,"Fan"+string_per(TF));   
   SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2);
   SetIndexBuffer(1,Buffer2);
   SetIndexLabel(1,"Fan"+string_per(TF));   
   SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,2);
   SetIndexBuffer(2,Buffer3);
   SetIndexLabel(2,"Fan"+string_per(TF));   
   SetIndexStyle(3,DRAW_HISTOGRAM,EMPTY,2);
   SetIndexBuffer(3,Buffer4);
   SetIndexLabel(3,"Fan"+string_per(TF));   
   SetIndexStyle(4,DRAW_LINE,EMPTY,width);
   SetIndexBuffer(4,Buffer5);
   SetIndexLabel(4,"Fan"+string_per(TF));
   
   SetIndexStyle(5,DRAW_LINE,EMPTY,width);
   SetIndexBuffer(5,Buffer6);
   SetIndexLabel(5,"Fan"+string_per(TF));   
   IndicatorShortName("Fan "+string_per(TF));
   return(0);
}
//--------------------------------------------------------------
int start()
{
   int    i,bar,limit;
   double DeltaMA1,DeltaMA2,DeltaMA3,DeltaMA4,DeltaMA5,DeltaMA6;
   double MA_1,MA_2,MA_3,MA_4,MA_5,MA_6,MA_7;
   double DL,DeltaFan;
   
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(i=limit; i>0; i--)
   {
      bar = iBarShift(NULL,TF,Time[i],false);
      MA_1 = iMA(NULL,TF,period_1,0,MODE_EMA,PRICE_CLOSE,bar);
      MA_2 = iMA(NULL,TF,period_2,0,MODE_EMA,PRICE_CLOSE,bar);
      MA_3 = iMA(NULL,TF,period_3,0,MODE_EMA,PRICE_CLOSE,bar);
      MA_4 = iMA(NULL,TF,period_4,0,MODE_EMA,PRICE_CLOSE,bar);
      MA_5 = iMA(NULL,TF,period_5,0,MODE_EMA,PRICE_CLOSE,bar);
      MA_6 = iMA(NULL,TF,period_6,0,MODE_EMA,PRICE_CLOSE,bar);
      MA_7 = iMA(NULL,TF,period_7,0,MODE_EMA,PRICE_CLOSE,bar);
      DeltaMA1 = MA_1 - MA_2;
      DeltaMA2 = MA_1 - MA_3;
      DeltaMA3 = MA_1 - MA_4;
      DeltaMA4 = MA_1 - MA_5;
      DeltaMA5 = MA_1 - MA_6;
      DeltaMA6 = MA_1 - MA_7;
      
      DL=Buffer1[i+1]+Buffer2[i+1]+Buffer3[i+1]+Buffer4[i+1];
      DeltaFan=DeltaMA6-DeltaMA1;
      Buffer1[i]=0;
      Buffer2[i]=0;
      Buffer3[i]=0;
      Buffer4[i]=0;
      if(DeltaFan==DL)
      {
            Buffer1[i]=Buffer1[i+1];
            Buffer2[i]=Buffer2[i+1];
            Buffer3[i]=Buffer3[i+1];
            Buffer4[i]=Buffer4[i+1];
      }      
      else
         if ( (MA_2>MA_3 && MA_3>MA_4 && MA_4>MA_5  && MA_5>MA_6 && MA_6>MA_7) ||
              (MA_2<MA_3 && MA_3<MA_4 && MA_4<MA_5  && MA_5<MA_6 && MA_6<MA_7 ) )
              if( (DeltaFan > DL  && DeltaFan>0)||(DeltaFan < DL  && DeltaFan<0)  )
                 Buffer1[i]=DeltaFan;
              else
                 Buffer2[i]=DeltaFan;
         else
              if( (DeltaFan > DL  && DeltaFan>0)||(DeltaFan < DL  && DeltaFan<0) )
                 Buffer3[i]=DeltaFan;
              else
                 Buffer4[i]=DeltaFan;
      Buffer5[i]=(DeltaMA1+DeltaMA2+DeltaMA3+DeltaMA4+DeltaMA5+DeltaMA6)/6;
      if(lyginimas==3) Buffer6[i]=(Buffer5[i]+Buffer5[i+1]+Buffer5[i+2])/3;
      if(lyginimas==5) Buffer6[i]=(Buffer5[i]+Buffer5[i+1]+Buffer5[i+2]+Buffer5[i+3]+Buffer5[i+4])/5;
   }
return(0);
}
//------------------------------------------------------------------
string string_per(int per)
{
   if (per == 0) per=Period();
   if (per == 1)     return(" M1 ");
   if (per == 5)     return(" M5 ");
   if (per == 15)    return(" M15 ");
   if (per == 30)    return(" M30 ");
   if (per == 60)    return(" H1 ");
   if (per == 240)   return(" H4 ");
   if (per == 1440)  return(" D1 ");
   if (per == 10080) return(" W1 ");
   if (per == 43200) return(" MN1 ");
return("Īųčįźą ļåščīäą");
}
//------------------------------------------------------------------
int next_period(int per)
{
   if (per > 43200)  return(0); 
   if (per > 10080)  return(43200); 
   if (per > 1440)   return(10080); 
   if (per > 240)    return(1440); 
   if (per > 60)     return(240); 
   if (per > 30)     return(60);
   if (per > 15)     return(30); 
   if (per > 5)      return(15); 
   if (per > 1)      return(5);   
}
//==================================================================
 
Советник непробовал писать ?
 
gince:
Советник непробовал писать ?

Пока с мыслями собираюсь :)
 

что за кракозябры в комментах?