Индикаторы: ZoneTrade - страница 2

 
Duke3D:
Olimp:

я думаю надо оптимизировать хотя бы за последний месяц-два параметры индикаторов

а там оптимизировать нечего ...
разве что сделать версию с макд\осма (ма мод) , опция ас\ао - будет возможность оптимизиповать под пары и таймреймы
 
Duke3D:
SHOOTER777:
Duke3D:
хоть кто бы коммент оставил ...
Очередной велосипед, но ... с моторчиком. Более красочный чем Zone_Trading.mq4
Можешь дать ссылоку на Zone_Trading.mq4
Где взял уже не помню, давно было но не в Code Base. Код очень простой. Я переделал его немного для себя. Надеюсь автор не обидется.
//+------------------------------------------------------------------+
//|                                                 GreenRedGrey.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 LightGray
#property indicator_color4 LightGray
//---- buffers
double Buffer1[],Buffer2[],Buffer3[],Buffer4[];
#define SkippedBars 39 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//----
   SetIndexStyle(0,DRAW_HISTOGRAM, STYLE_SOLID);
   SetIndexBuffer(0,Buffer1);
   SetIndexLabel(0,NULL);
//----
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID);
   SetIndexBuffer(1,Buffer2);
   SetIndexLabel(1,NULL);
//----
   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID);
   SetIndexBuffer(2,Buffer3);
   SetIndexLabel(2,NULL);
//----
   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID);
   SetIndexBuffer(3,Buffer4);
   SetIndexLabel(3,NULL);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Zone Trading                                                     |
//+------------------------------------------------------------------+
int start()
  {
   int    i;
   int    counted_bars=IndicatorCounted();
//----
   if(Bars<=SkippedBars) return(0);
//---- 
   i=Bars-SkippedBars-1;
   if(counted_bars>SkippedBars-1) i=Bars-counted_bars-1;
   while(i>=0)
     {
      // Green
      if ((iAO(Symbol(), Period(), i)>iAO(Symbol(), Period(), i+1))&&(iAC(Symbol(), Period(), i)>iAC(Symbol(), Period(), i+1)))
        {
         Buffer1[i]=High[i]; Buffer2[i]=Low[i]; Buffer3[i]=Low[i]; Buffer4[i]=Low[i];
         i--;
         continue;
        }
      // Red
      if ((iAO(Symbol(), Period(), i)<iAO(Symbol(), Period(), i+1))&&(iAC(Symbol(), Period(), i)<iAC(Symbol(), Period(), i+1)))
        {
         Buffer1[i]=Low[i]; Buffer2[i]=High[i]; Buffer3[i]=Low[i]; Buffer4[i]=Low[i];
         i--;
         continue;
        }
      // Gray
      Buffer1[i]=Low[i]; Buffer2[i]=Low[i]; Buffer3[i]=High[i]; Buffer4[i]=Low[i];
      i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Olimp:
а если например окрашивать м1-бары не м1_AO-индикацией а m5 или выше))
тогда нужно будет делать целую  МТФ фичу  (ТФ\период) : 1   бар на 60 мин - 12 баров на 5мин (и помнить - нулевой Н1 бар - все еще откыт на 12  5 мин барах )
 

Нашёл ошибку в собственном коде, было некоторое не совпадение в цвете баров и цвете индикаторов. Вот переделанная версия.

//+------------------------------------------------------------------+
//|                                               ZoneTrade_v2.4.mq4 |
//|                                                           Duke3D |
//|                                             duke3datomic@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Duke3D"
#property link      "duke3datomic@mail.ru"
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Gray
#property indicator_color4 Gray
#property indicator_color5 Green
#property indicator_color6 Red
#property indicator_color7 Gray
#property indicator_color8 Gray
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 3
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 1
extern color GreenZone        = Green;          // Цвет зелённой зоны
extern color RedZone          = Red;            // Цвет красной зоны
extern color GreyZone         = Gray;           // Цвет серой зоны
double AC_0;
double AC_1;
double AO_0;
double AO_1;
string name;
extern int BodyWidth          = 3;              // Ширина тела свечи
extern int ShadowWidth        = 1;              // Ширина тени свечи
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//----
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM, 0, BodyWidth, GreenZone);
   SetIndexBuffer(0, ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM, 0, BodyWidth, RedZone);
   SetIndexBuffer(1, ExtMapBuffer2);
   
   SetIndexStyle(2,DRAW_HISTOGRAM, 0, BodyWidth, GreyZone);
   SetIndexBuffer(2, ExtMapBuffer3);
   SetIndexStyle(3,DRAW_HISTOGRAM, 0, BodyWidth, GreyZone);
   SetIndexBuffer(3, ExtMapBuffer4);
   SetIndexStyle(4,DRAW_HISTOGRAM, 0, ShadowWidth, GreenZone);
   SetIndexBuffer(4, ExtMapBuffer5);
   
   SetIndexStyle(5,DRAW_HISTOGRAM, 0, ShadowWidth, RedZone);
   SetIndexBuffer(5, ExtMapBuffer6);
   SetIndexStyle(6,DRAW_HISTOGRAM, 0, ShadowWidth, GreyZone);
   SetIndexBuffer(6, ExtMapBuffer7);
   
   SetIndexStyle(7,DRAW_HISTOGRAM, 0, ShadowWidth, GreyZone);
   SetIndexBuffer(7, ExtMapBuffer8);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   int i, limit;
   double ZTOpen, ZTHigh, ZTLow, ZTClose;
 
   if(counted_bars > 0) counted_bars--;
   i = Bars - counted_bars - 1;
   
   while(i>=0)
      {
      ZTOpen  = Open[i];
      ZTHigh  = High[i];
      ZTLow   = Low[i];
      ZTClose = Close[i];
//===================================================================================================================      
      if(IndAC(i)==1 && IndAO(i)==1)            // Зелёная зона 
        {
        if(Open[i]>Close[i])                    // bear
          {
           ExtMapBuffer1[i] = ZTOpen;
           ExtMapBuffer2[i] = ZTClose;
          }
        if(Open[i]<Close[i])                    // bull
          {
           ExtMapBuffer1[i] = ZTClose;
           ExtMapBuffer2[i] = ZTOpen;
          }
        ExtMapBuffer5[i] = ZTHigh;
        ExtMapBuffer6[i] = ZTLow;
        } 
//===================================================================================================================  
      if(IndAC(i)==2 && IndAO(i)==2)            // Красная зона 
        {
        if(Open[i]>Close[i])                    // bear
          {
           ExtMapBuffer1[i] = ZTClose;
           ExtMapBuffer2[i] = ZTOpen;
          }
        if(Open[i]<Close[i])                    // bull
          {
           ExtMapBuffer1[i] = ZTOpen;
           ExtMapBuffer2[i] = ZTClose;
          }
        ExtMapBuffer5[i] = ZTLow;
        ExtMapBuffer6[i] = ZTHigh;
        } 
//===================================================================================================================
      if(IndAC(i)==1 && IndAO(i)==2)            // Серая зона
        {
        if(Open[i]>Close[i])                    // bear
          {
           ExtMapBuffer3[i] = ZTOpen;
           ExtMapBuffer4[i] = ZTClose;
          }
        if(Open[i]<Close[i])                    // bull
          {
           ExtMapBuffer3[i] = ZTClose;
           ExtMapBuffer4[i] = ZTOpen;
          }
        ExtMapBuffer7[i] = ZTHigh;
        ExtMapBuffer8[i] = ZTLow;
        }
//===================================================================================================================
      if(IndAC(i)==2 && IndAO(i)==1)            // Серая зона
        {
        if(Open[i]>Close[i])                    // bear
          {
           ExtMapBuffer3[i] = ZTClose;
           ExtMapBuffer4[i] = ZTOpen;
          }
        if(Open[i]<Close[i])                    // bull
          {
           ExtMapBuffer3[i] = ZTOpen;
           ExtMapBuffer4[i] = ZTClose;
          }
        ExtMapBuffer7[i] = ZTLow;
        ExtMapBuffer8[i] = ZTHigh;
        }
      i--;
      }
//===================================================================================================================     
  return(0);
  }
//===================================================================================================================     
int IndAC(int Shift)
   {
   int DirectionAC;
   AC_0 = iAC(Symbol(),0,Shift);
   AC_1 = iAC(Symbol(),0,Shift+1);
   if(AC_0>AC_1) {DirectionAC = 1;}               // Зелёный бар
   if(AC_0<AC_1) {DirectionAC = 2;}               // Красный бар
   return(DirectionAC);
   }
//===================================================================================================================     
int IndAO(int Shift)
   {
   int DirectionAO;
   AO_0 = iAO(Symbol(),0,Shift);
   AO_1 = iAO(Symbol(),0,Shift+1);
   if(AO_0>AO_1) {DirectionAO = 1;}               // Зелёный бар
   if(AO_0<AO_1) {DirectionAO = 2;}               // Красный бар
   return(DirectionAO);
   }
//===================================================================================================================     
   
 
Есть просьба,напишите индикатор окрашивающий бары по другим индикаторам,MFI и Volume,это тоже по Вильямсу,но с другим подходом к торговли.Если есть вопросы - asorti@bk.ru
 
прикольная штучка, кста имхо конечно, но отлично сочетается с фракталом на дневках, по крайней мере на фунте
 
Когда движущая сила (Awesome Oscillator - АО) и ускорение (Acceleration/Deceleration - АС) направлены в одну сторону (оба зеленые или оба красные) - это означает, что движущая сила не только движется в этом направлении, но и еще ускоряется. На этом принципе базируется зональная торговля (четвертое измерение Б.Вильямса).

Если текущие столбцы АС и АО зеленые, это свидетельствует о зеленой зоне. Для наглядности этот бар можно окрасить в зеленый цвет.

Если текущие столбцы АС и АО красные, это свидетельствует о красной зоне. Для наглядности этот бар можно окрасить в красный цвет.

Если столбцы АС и АО разнонаправлены, то бар окрашивается в серый цвет (серая зона).

Для того чтобы открывать новые позиции на покупку в зеленой зоне (на продажу в красной зоне) необходимо не менее двух подряд зеленых (красных) бара, при этом цена закрытия второго бара должна быть выше (ниже) цены закрытия предыдущего бара.

Однако после пяти зеленых или красных баров подряд мы перестаем "добавляться", т.к. больше 6-8 баров, окрашенных в один цвет, встречается редко.

В случае появления пятого зеленого (красного) бара необходимо выставить Stop Loss ордер на 1 пипс ниже минимальной (выше максимальной) цены пятого бара. Если на следующем баре стоп-ордер не будет исполнен, то его нужно изменить на уровень, который на 1 пипс ниже минимальной (выше максимальной) цены шестого бара и т.д.
 
Valy:
Есть просьба,напишите индикатор окрашивающий бары по другим индикаторам,MFI и Volume,это тоже по Вильямсу,но с другим подходом к торговли.Если есть вопросы - asorti@bk.ru
напиши какие тебе нужны сигналы, может помогу.
 
beginerfx:
Когда движущая сила (Awesome Oscillator - АО) и ускорение (Acceleration/Deceleration - АС) направлены в одну сторону (оба зеленые или оба красные) - это означает, что движущая сила не только движется в этом направлении, но и еще ускоряется. На этом принципе базируется зональная торговля (четвертое измерение Б.Вильямса).

Если текущие столбцы АС и АО зеленые, это свидетельствует о зеленой зоне. Для наглядности этот бар можно окрасить в зеленый цвет.

Если текущие столбцы АС и АО красные, это свидетельствует о красной зоне. Для наглядности этот бар можно окрасить в красный цвет.

Если столбцы АС и АО разнонаправлены, то бар окрашивается в серый цвет (серая зона).

Для того чтобы открывать новые позиции на покупку в зеленой зоне (на продажу в красной зоне) необходимо не менее двух подряд зеленых (красных) бара, при этом цена закрытия второго бара должна быть выше (ниже) цены закрытия предыдущего бара.

Однако после пяти зеленых или красных баров подряд мы перестаем "добавляться", т.к. больше 6-8 баров, окрашенных в один цвет, встречается редко.

В случае появления пятого зеленого (красного) бара необходимо выставить Stop Loss ордер на 1 пипс ниже минимальной (выше максимальной) цены пятого бара. Если на следующем баре стоп-ордер не будет исполнен, то его нужно изменить на уровень, который на 1 пипс ниже минимальной (выше максимальной) цены шестого бара и т.д.

Спасибо за информацию.
 

Уважаемый автор, а не могли бы вы сделать этот индикатор в отдельном окне?

Причина обращения: