Bill Williams e le sue strategie... - pagina 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);
  }
L'indicatore mostra le linee dei frattali formati dal groviglio di alligatori
 
dimontus wrote:
Oasis puoi condividere il codice di programmazione su Bill? :-)

Sì, certo, ma è ancora in fase di sviluppo (versione funzionante con errori). Dovrebbe essere un'altra parte in Delphi o C++ (un mio amico voleva aiutarmi a scriverla). L'idea è quella di commerciare su orologi non-stop. Ecco una breve descrizione della versione funzionante. La strategia non include: segnali "speciali a luce blu", trading su linee di bilancio, 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; // - не работает
Codice completo nel file ID_1.mq4
File:
id_1.mq4  15 kb
 
Integer писал (а):

Oasis, potrei anche cambiare idea

Grande =)
 
Integer писал (а):
 
L'indicatore mostra le linee dei frattali formati dal groviglio di alligatori

Beh, non è Bill Williams.
Forse è qualcosa che non ho letto.
Ma penso che il vero frattale sia
Metodo 1: un frattale maggiore o minore di qualsiasi valore dell'alligatore
Modo 2: maggiore o minore della linea rossa
 
Grazie a tutti :-)
 
Oasis писал (а):

Metodo 2: più o meno della linea rossa

Se c'è una linea, tutti i frattali sono o più grandi o più piccoli di essa.
 
Integer wrote:

Se c'è una linea, tutti i frattali sono o più grandi o più piccoli di essa.

No =) Frattali up (massimi) maggiori del rosso -- > allora se c'è un breakout al rialzo, il segnale è valido
i frattali che scendono (minimi) sono meno che rossi -- > se ci sarà una rottura verso il basso, il segnale è valido

Beh, questo modo è molto veloce, ad essere onesti non l'ho ancora usato =)

A proposito, ora se guardate la coppia EURUSD in H1, l'ultimo frattale in basso, se usate questo metodo, sarà valido.

 
Integer:
Faccio eco all'opinione precedente.

Potete mettermi al muro e spararmi, ma la mia opinione è che Bill Williams è un sognatore e niente più.
Il povero Billy ci sta provando, inventa libri, inventa tacchini, gira per diversi paesi per dei babbei che sono nuovi al commercio. E tu non lo apprezzi. Beh, naturalmente, se è tutto progettato per gli sciocchi, mentirà un po'. Pensateci, quando può impegnarsi nel commercio, se deve scrivere un libro per l'editore e fare l'imprenditore all'estero e pubblicizzare un programma? È tutta colpa dell'impresario e Billy stesso è un Trade Mark ambulante.
 
Oasis:
...
Beh, questo modo è molto veloce, ad essere onesti non l'ho ancora usato =)

A proposito, ora se guardate la coppia EURUSD in H1, l'ultimo frattale in basso, se usate questo metodo sarà valido.

Ma non c'è alcun intreccio di linee, quindi non ci sarà alcun cambiamento di tendenza :-)
 
/*
   <> красной
*/
#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);
}