Fibonacci e Pattern Armonici ABCD
Forums › ProRealTime forum Italiano › Supporto ProScreener › Fibonacci e Pattern Armonici ABCD
- This topic has 76 replies, 5 voices, and was last updated 5 years ago by Al.
-
-
09/26/2019 at 11:43 PM #108632
Ho tolto i segmenti ed ho colorato i triangoli.
Per lo screener, se vuoi che si attivi solo quando arriva al punto D, basta che togli le barre iniziali dei commenti alle righe 60 e 62.
09/27/2019 at 12:03 AM #108640Ciao grazie mille domani sera proverò
09/27/2019 at 10:15 PM #108697Ciao Roberto ho scaricato i tuoi ultimi due file .itf ma non funzionano correttamente (magari sbaglio qualcosa io)
1° nell indicatore non disegna correttamente i punti del pattern ABCD
2° nello screener mi hai detto che bisogna attivare le linee 60 e 62 ma bisogna anche attivare linea 29 e fin qui tutto ok , ma il problema e che nel risultato dello screener trova dei grafici che visualizzati nell’ indicatore non si vede la formazione del pattern ABCD, allego foto
09/27/2019 at 10:24 PM #10870009/28/2019 at 11:13 AM #108716Ho fatto delle correzioni, dovrebbe andare meglio.
Allego i nuovi file da importare, sia per lo screener che per l’indicatore.
09/29/2019 at 9:18 AM #108737Ciao Roberto ho scaricato gli ultimi aggiornamenti ma non mi torna il disegno del pattern , guarda gli scren in entrambi i casi non raggiunge il target 1.27/1.68 del punto D ma lo trova nello screener e lo disegna nell’ indicatore. Grazie e buona domenica
10/02/2019 at 10:31 AM #109074Ho fatto le modifiche e adesso non lo trova più.
10/28/2019 at 10:01 PM #111474Buonasera Robeto, ti chiedo ancora consigli per l’indicatore modello armonico, provo a codificare la figura ABCD, con la A in alto e la D dovrebbe essere sotto la B, il codice rileva ABC, ma non la D, Sono basato sul tuo codice ma devo invertire il modello e sono bloccato, dopo che vorrei creare lo sreener, grazie per il tuo aiuto
Saluti123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142// Pattern Armonico ABCD//// Bullish ABCD -PRC//DEFPARAM DrawOnLastBarOnly = trueIF BarIndex = 0 OR (Barra > MaxBarre) THENMaxBarre = 100Distanza = 10 * pipsizePuntoA = highBarraA = BarIndexPuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0Barra = 0ENDIFBarra = Barra + 1 //incrementare il passare delle barre per azzerare tutto quando arriva a 100//// Determinare se il prezzo scende sotto A, in tal caso avremo una nuova A più bassa e ripartiremo daccapo con B,C e DPuntoA = max(PuntoA,high)IF PuntoA > PuntoA[1] THENBarraA = BarIndexBarra = 0PuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0ENDIF//// Determinare se il prezzo sale sopra B, in tal caso avremo una nuova B più alta e ripartiremo daccapo con C e DIF PuntoC = 0 THENPuntoB = min(PuntoB,low)ENDIFIF PuntoB < PuntoB[1] THENBarraB = BarIndexENDIF// Calcolare la differenza tra i punti A e B e le due percentuali di fibonacci da usare per la verifica di CIF PuntoB = PuntoA THENPuntoA = 0PuntoB = 0PuntoC = 0PuntoD = 0ENDIFDiffBA = PuntoB - PuntoAFibC1 = DiffBA * 0.618FibC2 = DiffBA * 0.786FibD1 = PuntoB + (DiffBA * -1.270)FibD2 = PUNTOb + (DiffBA * -1.618)IF close >= (PuntoB - FibC1) AND close <= (PuntoB - FibC2) THEN// se il MINIMO è tra 0.618 e 0.786 abbiamo trovato il punto C....PuntoC = highBarraC = BarIndexPuntoD = 0ELSIF close > (PuntoB - FibC2) THEN// ...altrimenti si riparte daccapo con un nuovo punto A ed un nuovo punto BPuntoA = highBarraA = BarIndexPuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0Barra = 0ENDIF//IF PuntoC = PuntoA THENPuntoC = 0ENDIF//IF LOW <= FibD1 AND close >= FibD2 THENIF PuntoD = 0 THENPuntoD = lowBarraD = BarIndexELSEPuntoD = min(PuntoD,low)IF PuntoD < PuntoD[1] THENBarraD = BarIndexENDIFENDIFENDIFIF PuntoD >0 THENIF close > PuntoB THENPuntoD = 0BarraD = 0ENDIFENDIF//// Una volta superato il 161.8 si riparte daccapo//IF close > FibD2 THENPuntoA = highBarraA = BarIndexPuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0Barra = 0ENDIF//IF PuntoB = PuntoA THENPuntoA = 0PuntoB = 0PuntoC = 0PuntoD = 0ENDIF//// si stampano i punti trovati, ognuno dipendente dal precedente, si stampa A, poi B solo se A è stato stampato, poi C solo se B è stato stampato ed infine D se anche C è stato stampatoIF PuntoA > 0 THEN//DRAWSEGMENT(BarraA,PuntoA,BarIndex,PuntoA) COLOURED(255,0,0,255) //RossoDRAWTEXT("A",BarraA,PuntoA + Distanza,Dialog,Bold,20) coloured(205,0,205,255)IF PuntoB > 0 THEN//DRAWSEGMENT(BarraB,PuntoB,BarIndex,PuntoB) COLOURED(0,255,0,255) //VerdeDRAWTEXT("B",BarraB,PuntoB - Distanza,Dialog,Bold,20) coloured(205,0,205,255)IF PuntoC > 0 THEN//DRAWSEGMENT(BarraC,PuntoC,BarIndex,PuntoC) COLOURED(0,0,255,255) //BluDRAWTEXT("C",BarraC,PuntoC + Distanza,Dialog,Bold,20) coloured(205,0,205,255)IF PuntoD > 0 THEN// D//DRAWSEGMENT(BarraC,FibD1,BarIndex,FibD1) COLOURED(238,201,0,255) //Oro//DRAWSEGMENT(BarraC,FibD2,BarIndex,FibD2) COLOURED(238,201,0,255) //OroDRAWTEXT("D",BarIndex,PuntoD - Distanza,Dialog,Bold,30) coloured(205,0,205,255)ENDIF//// stampa segmenti per Pattern Armonici//DRAWSEGMENT(BarraA,PuntoA,BarraB,PuntoB) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraA,PuntoA,BarraC,PuntoC) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraB,PuntoB,BarraC,PuntoC) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraB,PuntoB,BarraC,PuntoC) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraC,PuntoC,BarIndex,FibD1) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarIndex,low,BarIndex,FibD1) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraC,PuntoC,BarIndex,low) COLOURED(0,0,0,255) //NeroDRAWTRIANGLE(BarraA,PuntoA,BarraB,PuntoB,BarraC,PuntoC)coloured(200,120,120,255)IF PuntoD > 0 THENDRAWTRIANGLE(BarraB,PuntoB,BarraC,PuntoC,BarraD,PuntoD)coloured(0,255,0,255)ENDIFENDIFENDIFENDIFRETURN10/29/2019 at 11:09 AM #111513L’ho riscritto partendo dall’ultimo che avevo postato, invertendo tutte le condizioni:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104// Pattern Armonico ABCD//// https://www.prorealcode.com/topic/fibonacci-2/page/4/#post-108394//DEFPARAM DrawOnLastBarOnly = trueIF BarIndex = 0 OR (Barra > MaxBarre) THENMaxBarre = 100Distanza = 2 * pipsizePuntoA = highBarraA = BarIndexPuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0Barra = 0ENDIFBarra = Barra + 1 //incrementare il passare delle barre per azzerare tutto quando arriva a 100//// Determinare se il prezzo scende sotto A, in tal caso avremo una nuova A più bassa e ripartiremo daccapo con B,C e DPuntoA = max(PuntoA,high)IF PuntoA > PuntoA[1] THENBarraA = BarIndexBarra = 0PuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0ENDIF//// Determinare se il prezzo sale sopra B, in tal caso avremo una nuova B più alta e ripartiremo daccapo con C e DPuntoB = min(PuntoB,low)IF PuntoB < PuntoB[1] THENIF PuntoC = 0 THENBarraB = BarIndexENDIFENDIF// Calcolare la differenza tra i punti A e B e le due percentuali di fibonacci da usare per la verifica di CDiffAB = PuntoA - PuntoBFibC1 = DiffAB * 0.618FibC2 = DiffAB * 0.786FibD1 = PuntoA - (DiffAB * 1.270)FibD2 = PuntoA - (DiffAB * 1.618)IF high >= (PuntoB + FibC1) AND high <= (PuntoB + FibC2) THEN// se il MINIMO è tra 0.618 e 0.786 abbiamo trovato il punto C....PuntoC = highBarraC = BarIndexELSIF close > (PuntoB + FibC2) THEN// ...altrimenti si riparte daccapo con un nuovo punto A ed un nuovo punto BPuntoA = highBarraA = BarIndexPuntoB = highBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0Barra = 0ENDIF//// Una volta superato il 161.8 si riparte daccapo//IF close < FibD2 AND PuntoD > 0 THENPuntoA = highBarraA = BarIndexPuntoB = lowBarraB = BarIndexPuntoC = 0BarraC = 0PuntoD = 0Barra = 0ENDIFIF PuntoC > 0 AND PuntoD = 0 THENPuntoD = 1ENDIF// si stampano i punti trovati, ognuno dipendente dal precedente, si stampa A, poi B solo se A è stato stampato, poi C solo se B è stato stampato ed infine D se anche C è stato stampatoIF PuntoA > 0 THEN//DRAWSEGMENT(BarraA,PuntoA,BarIndex,PuntoA) COLOURED(255,0,0,255) //RossoDRAWTEXT("A",BarraA,PuntoA - Distanza,Dialog,Bold,14) coloured(205,0,205,255)IF PuntoB > 0 THEN//DRAWSEGMENT(BarraB,PuntoB,BarIndex,PuntoB) COLOURED(0,255,0,255) //VerdeDRAWTEXT("B",BarraB,PuntoB + Distanza,Dialog,Bold,14) coloured(205,0,205,255)IF PuntoC > 0 THEN//DRAWSEGMENT(BarraC,PuntoC,BarIndex,PuntoC) COLOURED(0,0,255,255) //BluDRAWTEXT("C",BarraC,PuntoC - Distanza,Dialog,Bold,14) coloured(205,0,205,255)// D//DRAWSEGMENT(BarraC,FibD1,BarIndex,FibD1) COLOURED(238,201,0,255) //Oro//DRAWSEGMENT(BarraC,FibD2,BarIndex,FibD2) COLOURED(238,201,0,255) //OroDRAWTEXT("D",BarIndex,FibD1 - Distanza,Dialog,Bold,14) coloured(205,0,205,255)//// stampa segmenti per Pattern Armonici//DRAWSEGMENT(BarraA,PuntoA,BarraB,PuntoB) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraA,PuntoA,BarraC,PuntoC) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraB,PuntoB,BarraC,PuntoC) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraB,PuntoB,BarraC,PuntoC) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraC,PuntoC,BarIndex,FibD1) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarIndex,low,BarIndex,FibD1) COLOURED(0,0,0,255) //Nero//DRAWSEGMENT(BarraC,PuntoC,BarIndex,low) COLOURED(0,0,0,255) //NeroDRAWTRIANGLE(BarraA,PuntoA,BarraB,PuntoB,BarraC,PuntoC)coloured(200,120,120,255)DRAWTRIANGLE(BarraC,PuntoC,BarIndex,FibD1,BarIndex,low)coloured(200,120,120,255)ENDIFENDIFENDIFRETURNMi sembra vada bene.
10/29/2019 at 2:09 PM #11154510/29/2019 at 3:03 PM #111554Grazie Al.
Se fai anche lo screener pubblicalo qui, per favore, così tutti possono leggerlo.
10/30/2019 at 10:35 AM #111627Ciao Roberto,
Ecco una versione di screener da testare, è un’inversione di un screener della discution
Ho notato che hai creato nuove interessanti versioni degli indicatori, modificando i codici.
È interessante scoprire le possibili varianti.Ad esempio l’azione TOTAL, con il tuo nuovo indicatore (Dn) e una versione inversa acienne
Grazie, buona giornataScreener ABCD dwn1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283// Pattern Armonico ABCD//// Versione invertita di screener https://www.prorealcode.com/topic/fibonacci-2/page/4/#post-108399//per testareIF BarIndex = 0 OR (Barra > MaxBarre) THENMaxBarre = 100PuntoA = highPuntoB = lowPuntoC = 0Barra = 0ENDIFBarra = Barra + 1 //incrementare il passare delle barre per azzerare tutto quando arriva a 100//// Determinare se il prezzo scende sotto A, in tal caso avremo una nuova A più bassa e ripartiremo daccapo con B,C e DPuntoA = max(PuntoA,high)IF PuntoA > PuntoA[1] THENBarra = 0PuntoB = lowPuntoC = 0PuntoD = 0ENDIF//// Determinare se il prezzo sale sopra B, in tal caso avremo una nuova B più alta e ripartiremo daccapo con C e DIF PuntoC = 0 THENPuntoB = min(PuntoB,low)ENDIF// Calcolare la differenza tra i punti A e B e le due percentuali di fibonacci da usare per la verifica di CDiffAB = PuntoA - PuntoBFibC1 = DiffAB * 0.618FibC2 = DiffAB * 0.786FibD1 = PuntoA - (DiffAB * 1.270)FibD2 = PuntoA - (DiffAB * 1.618)IF close>= (PuntoB + FibC1) AND close <= (PuntoB + FibC2) THEN// se il MINIMO è tra 0.618 e 0.786 abbiamo trovato il punto C....PuntoC = highPuntoD = 0ELSIF close > (PuntoB + FibC2) THEN// ...altrimenti si riparte daccapo con un nuovo punto A ed un nuovo punto BPuntoA = highPuntoB = lowPuntoC = 0PuntoD = 0Barra = 0endifIF PuntoC = PuntoA THENPuntoC = 0ENDIF//IF low <= FibD1 AND close >= FibD2 THENIF PuntoD = 0 THENPuntoD = lowELSEPuntoD = min(PuntoD,low)ENDIFENDIFIF PuntoD > 0 THENIF close < PuntoB THENPuntoD = 0ENDIFENDIF//// Una volta superato il 161.8 si riparte daccapoIF close < FibD2 AND PuntoD> 0 THENPuntoA = highPuntoB = lowPuntoC = 0PuntoD = 0ENDIF//IF PuntoB = PuntoA THENPuntoA = 0PuntoB = 0PuntoC = 0PuntoD = 0ENDIF// si stampano i punti trovati, ognuno dipendente dal precedente, si stampa A, poi B solo se A è stato stampato, poi C solo se B è stato stampato ed infine D se anche C è stato stampato//PuntoD = 0IF PuntoC > 0 AND close <= FibD1 AND close >= FibD2 THENPuntoD = lowENDIFSCREENER [PuntoD](Barra AS "0ld")1 user thanked author for this post.
11/17/2019 at 12:31 AM #11295611/20/2019 at 9:55 AM #113194Ho pubblicato uno screener ed un indicatore del Pattern ABCD;
https://www.prorealcode.com/prorealtime-indicators/abcd-pattern-indicator
https://www.prorealcode.com/prorealtime-market-screeners/abcd-pattern-screener/
queste sono le novità introdotte rispetto ai codici pubblicati qui:
- ho combinato insieme sia la versione Long che quella Short
- ho migliorato il codice
- ho introdotto una distanza minima tra i punti A-C e C-D, per evitare triangoli troppo piccoli
- oltre a visualizzare il pattern corrente, se c’è, visualizza anche quello precedente
11/20/2019 at 6:57 PM #113251Grazie mille Roberto appena riesco lo provo
-
AuthorPosts
Find exclusive trading pro-tools on