Билл Вильямс и его стратегии... - страница 2

 
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Aqua
extern int Jaw_Period=13,Jaw_Shift=8,Teeth_Period=8,Teeth_Shift=5,Lips_Period=5,Lips_Shift=3;
double Buf1[];
double Buf2[];
int init(){
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(0,Buf1);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,159);
   SetIndexBuffer(1,Buf2);
   return(0);
}
int deinit(){
   return(0);
}
int start(){
   int i,limit;
    int counted_bars=IndicatorCounted(); 
    limit=Bars-counted_bars;
      for(i=limit-1;i>=0;i--){
          if(Buf1[i+1]!=0)Buf1[i]=Buf1[i+1];
          if(Buf2[i+1]!=0)Buf2[i]=Buf2[i+1];
 
         double s=iAlligator(NULL,0,Jaw_Period,Jaw_Shift,Teeth_Period,Teeth_Shift,Lips_Period,Lips_Shift,2,4,MODE_GATORJAW,i);
         double m=iAlligator(NULL,0,Jaw_Period,Jaw_Shift,Teeth_Period,Teeth_Shift,Lips_Period,Lips_Shift,2,4,MODE_GATORTEETH,i);         
         double f=iAlligator(NULL,0,Jaw_Period,Jaw_Shift,Teeth_Period,Teeth_Shift,Lips_Period,Lips_Shift,2,4,MODE_GATORLIPS,i);
         
         if((f>m && m>s) || (f<m && m<s)){
         
         }
         else{
            double uf=iFractals(NULL,0,MODE_UPPER,i);
            double lf=iFractals(NULL,0,MODE_LOWER,i);
            if(uf!=0)Buf1[i]=High[i];
            if(lf!=0)Buf2[i]=Low[i];
         }
      }
   return(0);
  }
Индикатор показывает линии от фракталов образовавшихся при сплетении аллигатора
 
dimontus wrote:
Oasis можешь поделиться программным кодом по Биллу? :-)

Да конечно, но он еще в стадии разработки (рабочая версия с ошибками). Предполагается что будет еще одна часть на Делфи или С++ (друг хотел помочь написать). Задумка торговать на часовиках non-stop. Вот короткое описание рабочей версии. В стратегию не включены: сигналы "специальный голубой свет", торговля по линии баланса, SAO.

extern double          Lots = 1;
extern double       MaxLots = 10;
extern double       UnitLot = 1000;
extern bool        Reinvest = false;
extern int         StopLoss = 0;
extern int       TakeProfit = 0;
extern int      TotalOrders = 1;
// --- --- --- 
extern bool         ACCross = false; // - не проверено           
extern bool             AC2 = false; // - не проверено
extern bool             AC3 = false; // - проверено
extern bool         AOCross = false; // - проверено
extern bool        AOSaucer = false; // - проверено
extern bool         AO2Peak = false; // - ошибка
extern bool  FractalsSignal = false; // - проверено 
extern bool       CloseZone = false; // - не проверено (небольшая ошибка)
extern bool    CloseFractal = false; // - проверено (!!! поддержка одного ордера )
extern bool  CloseAlligator = false; // - проверено
extern bool     TradingZone = false; // - не работает
полный код в файле ID_1.mq4
Файлы:
id_1.mq4  15 kb
 
Integer писал (а):

Oasis, вполне могу изменить свое мнение

Супер =)
 
Integer писал (а):
 
Индикатор показывает линии от фракталов образовавшихся при сплетении аллигатора

Ну это все-таки не по Биллу Вильямсу
Может быть я что-то просто не читал
Но по-моему действительным фракталом является
Способ 1: фрактал который больше ну или меньше любого из значений аллигатора
Способ 2: больше или меньше красной линии
 
Всем спасибо :-)
 
Oasis писал (а):

Способ 2: больше или меньше красной линии

Если линия одна, то все фракталы либо больше либо меньше нее.
 
Integer wrote:

Если линия одна, то все фракталы либо больше либо меньше нее.

Нет =) Фракталы вверх (максимумы) больше красной -- > тогда если будет прорыв вверх, сигнал действительный
фракталы вниз (минимумы) меньше красной -- > если будет прорыв вниз, сигнал действительный

Ну этот способ очень скоростной, я его если честно еще не разу не использовал =)

Кстати, сейчас если посмотреть на пару EURUSD на H1, последний фрактал вниз, если пользоваться этим способом будет являться действительным.

 
Integer:
Присоединюсь к предыдущему мнению.

Можете поставить меня к стене и расстрелять, но мое мнение, что Билл Вильямс - фантазер и ничего более.
Бедолага Билли старается, выкозябривается, книжки сочиняет, индюки придумывает, гастроли для начинающих в трейдинге лохов по разным странам устраивает. А ты не ценишь. Ну, конечно, если все это расчитано на олухов, то и сбрехнет малость. Сам подумай, когда ему трейдингом заниматься, если надо и книжку издателю сочинить и еще массовиком затейником за бугром выступить и программульку разрекламировать? Во всем виноват импрессарио. А сам Билли - это ходячая Trade Mark.
 
Oasis:
...
Ну этот способ очень скоростной, я его если честно еще не разу не использовал =)

Кстати, сейчас если посмотреть на пару EURUSD на H1, последний фрактал вниз, если пользоваться этим способом будет являться действительным.

Но переплетения линий нет, значит смены тренда не будет :-)
 
/*
   <> красной
*/
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Aqua
extern int Jaw_Period=13,Jaw_Shift=8,Teeth_Period=8,Teeth_Shift=5,Lips_Period=5,Lips_Shift=3;
double Buf1[];
double Buf2[];
int init(){
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,158);
   SetIndexBuffer(0,Buf1);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,158);
   SetIndexBuffer(1,Buf2);
   return(0);
}
int start(){
   int i,limit;
    int counted_bars=IndicatorCounted(); 
    limit=Bars-counted_bars;
      for(i=limit-1;i>=0;i--){
      if(Buf1[i+1]!=0)Buf1[i]=Buf1[i+1];
      if(Buf2[i+1]!=0)Buf2[i]=Buf2[i+1];
         double s=iAlligator(NULL,0,Jaw_Period,Jaw_Shift,Teeth_Period,Teeth_Shift,Lips_Period,Lips_Shift,2,4,MODE_GATORJAW,i);
         double m=iAlligator(NULL,0,Jaw_Period,Jaw_Shift,Teeth_Period,Teeth_Shift,Lips_Period,Lips_Shift,2,4,MODE_GATORTEETH,i);         
         double f=iAlligator(NULL,0,Jaw_Period,Jaw_Shift,Teeth_Period,Teeth_Shift,Lips_Period,Lips_Shift,2,4,MODE_GATORLIPS,i);
            double uf=iFractals(NULL,0,MODE_UPPER,i);
            double lf=iFractals(NULL,0,MODE_LOWER,i);
            if(uf!=0 && uf>m)Buf1[i]=High[i];
            if(lf!=0 && lf<m)Buf2[i]=Low[i];
      }
   return(0);
}