Bill Williams e suas estratégias... - página 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);
  }
O indicador mostra linhas de fractais formadas por enredamento de jacaré
 
dimontus wrote:
Oasis, você pode compartilhar o código de programação no Bill? :-)

Sim, é claro, mas ainda está em desenvolvimento (versão de trabalho com erros). É suposto ser mais uma parte em Delphi ou C++ (um amigo meu queria me ajudar a escrevê-lo). A idéia é comercializar relógios sem parar. Aqui está uma breve descrição da versão de trabalho. A estratégia não inclui: sinais de "luz azul especial", comércio de linha de equilíbrio, 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; // - не работает
Código completo no arquivo ID_1.mq4
Arquivos anexados:
id_1.mq4  15 kb
 
Integer писал (а):

Oásis, eu posso muito bem mudar de idéia

Ótimo =)
 
Integer писал (а):
 
O indicador mostra linhas de fractais formadas por enredamento de jacaré

Bem, não é Bill Williams.
Talvez seja algo que eu não tenha lido.
Mas eu acho que o verdadeiro fractal é
Método 1: um fractal maior ou menor do que qualquer um dos valores do jacaré
Caminho 2: maior ou menor do que a linha vermelha
 
Obrigado a todos :-)
 
Oasis писал (а):

Método 2: mais ou menos do que a linha vermelha

Se houver uma linha, todos os fractais são maiores ou menores do que ela.
 
Integer wrote:

Se houver uma linha, todos os fractais são maiores ou menores do que ela.

Não =) Fractals up (highhs) greater than red -- > then if there is an upside breakout, the signal is valid
os fractais em queda (baixos) são menos que vermelhos -- > se houver uma avaria, o sinal é válido

Bem, este caminho é muito rápido, para ser honesto, eu ainda não o usei =)

A propósito, agora se você olhar para o par EURUSD no H1, o último fractal down, se você usar este método, será válido.

 
Integer:
Vou fazer eco da opinião anterior.

Você pode me colocar contra a parede e atirar em mim, mas minha opinião é que Bill Williams é um sonhador e nada mais.
O pobre Billy está tentando, ele está inventando livros, ele está inventando perus, ele está viajando por diferentes países para otários que são novos no comércio. E você não aprecia isso. Bem, é claro, se tudo for projetado para tolos, ele vai mentir um pouco. Pense nisso, quando ele pode se envolver em negociações, se ele tiver que escrever um livro para a editora e agir como empresário no exterior e anunciar um programa? É tudo culpa do empresário. E o próprio Billy é uma marca registrada ambulante.
 
Oasis:
...
Bem, este caminho é muito rápido, para ser honesto eu ainda não o usei =)

A propósito, agora se você olhar para o par EURUSD no H1, o último fractal para baixo, se você usar este método será válido.

Mas não há entrelaçamento de linhas, portanto não haverá mudança de tendência :-)
 
/*
   <> красной
*/
#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);
}