doppio massimo e doppio minimo
Forums › ProRealTime forum Italiano › Supporto ProScreener › doppio massimo e doppio minimo
- This topic has 8 replies, 3 voices, and was last updated 5 years ago by robertogozzi.
Tagged: doppio, double bottom, double top, massimo, minimo
-
-
12/31/2018 at 8:03 PM #87807
ciao, sono nuovo di questo mondo utilizzo proscreener per alcune analisi,
purtroppo a livello di analisi grafica non riesco a trovare tanto, potresti gentilmente suggerirmi il codice per individuare un doppio minimo ed un doppio massimo
grazie
Luciano Rinaldi
01/02/2019 at 12:41 AM #87848Utilizzando la SEARCH BOX (si apre quando passi col mouse sul tuo avatar in alto a destra), puoi effettuare ricerche di parole o frasi sul forum. Cercando prima DOPPIO e poi DOUBLE ho trovato questi link a screener, indicatore e strategia:
https://www.prorealcode.com/prorealtime-market-screeners/double-top-double-bottom-screener/
https://www.prorealcode.com/prorealtime-indicators/double-top-double-bottom-detector/
https://www.prorealcode.com/topic/double-top-bottom-hunter/
01/02/2019 at 8:24 AM #8784910/31/2019 at 10:03 PM #111779Ciao, stavo giusto cercando se fosse possibile avere un Proscreener in grado di evidenziare eventuali doppi minimi o massimi. Cercando su questo forum, ho visto questa pagina e cercato di capire qualcosa all’indirizzo https://www.prorealcode.com/prorealtime-market-screeners/double-top-double-bottom-screener/, sopra elencata.
Sinceramente, devo ammettere di avere provato tale formula senza tuttavia trovare alcun doppio massimo / minimo. Almeno IO, in tutta sincerità…non ne ho proprio visti. 🙂
Suppongo quindi, per far bene funzionare la “formula”, sia assai importante comprenderla in modo approfondito in modo da poter “tarare” diversi valori (PERIOD, KDOUBLE, LMA, BULLCROSS, ecc.…) correttamente.
Ti chiedo allora se potresti gentilmente “tradurre” questa formula in italiano, permettendoci cosi anche di vedere le annotazioni in italiano e potere quindi comprendere il significato e la funzione delle singole righe e dei vari fattori da inserire manualmente.
Ti ringrazio se riesci.
ciao
11/01/2019 at 10:23 AM #111799Darò un’occhiata lunedì.
Buon fine settimana.
11/01/2019 at 10:09 PM #111878Molte grazie. Senza fretta, quando riesci… 🙂
Grazie ancora!
Andrea
11/04/2019 at 9:13 AM #111982L’ho convertito in indicatore, prova a vedere cosa ti restituisce, aggiustando i vari parametri iniziali per adattarlo alle tue esigenze:
Doppi Minimi e Massimi123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160//LOCALS MINIMUMS AND MAXIMUMS USING LEO MOVING AVERAGE//Autor: LEO//VARIABLES TO BE OPTIMIZEDPERIOD=40 //Period for analysis//Definition of what is a double top or double bottomKdouble=0.2 //Factor for defining what is double top or bottom//-----------//Leo Moving Average, formula: LMA= WMA+(WMA-SMA)LMA=2*weightedaverage[period](close)-average[period](close)//Smoothed curve of Leo Moving AverageIF BARINDEX > period THENsmoothLMA=weightedaverage[period](LMA)ELSEsmoothLMA=undefinedENDIF// Direction or trend of the LMA// << Storage of minimums and maximums >>once mintemp=lowonce posmintemp=1once maxtemp=highonce posmaxtemp=1IF BARINDEX>2 THEN// the value 0.7 is to ensure that the donchian channel is faster than the curves analysis (this value to be checked)IF low < lowest[round(0.7*period)](low[1]) THENmintemp=low //minimum temporalposmintemp=BARINDEX //postition of minimum temporalENDIFIF high > highest[round(0.7*period)](high[1]) thenmaxtemp=high //maximum temporalposmaxtemp=BARINDEX //position maximum temporalENDIFENDIF// << Detecting and locating a local minimums >>// Where the LMA is crossing the smoothed LMA, there is a maximum or minimum nearby// If there is a new local min/max, the preivus one is stored in de varible B... (before)once LEVMIN=lowonce POSLEVMIN=1once LEVMAX=highonce POSLEVMAX=1once bullcross=0once bearcross=0IF BARINDEX > PERIOD THEN //For avoid computer errorsbullcross=LMA crosses over smoothLMAbearcross=LMA crosses under smoothLMAENDIFIF bullcross and POSLEVMIN<>posmintemp THENBLEVMIN=LEVMIN //previus local minimum is savedBPOSLEVMIN=POSLEVMINLEVMIN=mintempPOSLEVMIN=posmintempsupport=LEVMINENDIF// --> Detecting and locating a local maximumIF bearcross and POSLEVMAX<>posmaxtemp THENBLEVMAX=LEVMAX //previus local maximum is savedBPOSLEVMAX=POSLEVMAXLEVMAX=maxtempPOSLEVMAX=posmaxtempresistance=LEVMAXENDIFsupport=min(low,support)resistance=max(high,resistance)// << DETECTING DOUBLE TOP OR BOTTOMS >>once WidthDoubleTop = high-lowonce WidthDoubleBottom = high-lowonce Wpattern=0once Mpattern=0// <<<<<< Double bottoms >>>>>>>>>//looking for the top between two local minimumsIF bullcross THENdoublebottomtop=high[BARINDEX-POSLEVMIN+1] // we start looking for the top in between two local minimums//POSdoublebottomtop=BARINDEX-POSLEVMIN+1FOR i = (BARINDEX-POSLEVMIN+1) to (BARINDEX-BPOSLEVMIN-1) DOIF high[i] > doublebottomtop THENdoublebottomtop=high[i]//POSdoublebottomtop=BARINDEX-iENDIFNEXTWidthDoubleBottom = doublebottomtop-(BLEVMIN+LEVMIN)/2 // (top betwen local minimums) - (average of the las two local minimums)IF abs(BLEVMIN-LEVMIN) < Kdouble*WidthDoubleBottom THEN// we have a double bottomWpattern=1elseWpattern=0ENDIFENDIF// <<<<<<<<<< Double tops >>>>>>>//looking for the bottom between two local maximumsIF bearcross THENdoubletopbottom=low[BARINDEX-POSLEVMAX+1]//POSdoubletopbottom=BARINDEX-POSLEVMAX+1FOR i = (BARINDEX-POSLEVMAX+1) to (BARINDEX-BPOSLEVMAX-1) DOIF low[i] < doubletopbottom THENdoubletopbottom=low[i]//POSdoubletopbottom=BARINDEX-iENDIFNEXTWidthDoubleTop=(BLEVMAX+LEVMAX)/2 -doubletopbottomIF abs(BLEVMAX-LEVMAX) < Kdouble*WidthDoubleTop THEN// we have a double topMpattern=1elseMpattern=0ENDIFENDIF// <<<<<<<<<< DOUBLE TOP AND DOUBLE BOTTOM FOR TRADING >>>>>>>>myATR=AverageTrueRange[2*period](close)IF Wpattern=1 THENIF close > (doublebottomtop+myATR) or close < (LEVMIN-0.5*myATR) THENWpattern=0 // <<<< double bottom has been activated or it was cancelled >>>>>ELSE// <<<<<<< HERE WE HAVE A DOUBLE BOTTOM FOR TRADING >>>>>//exactness=abs(BLEVMIN-LEVMIN) / WidthDoubleBottomENDIFENDIFIF Mpattern=1 THENIF close < (doubletopbottom-myATR) or close > (LEVMAX+0.5*myATR) THENMpattern=0 //double top has been activated or it was cancelledELSE// <<<<<<< HERE WE HAVE A DOUBLE TOP FOR TRADING >>>>>//exactness= abs(BLEVMAX-LEVMAX) / WidthDoubleTopENDIFENDIFx = WpatternIF x = 0 THENx = -MpatternENDIFRETURN x,0//SCREENER[Wpattern=1 or Mpattern=1](exactness)11/04/2019 at 11:50 PM #112132Molte grazie della conversione ma, devo essere sincero….non sono proprio riuscito a capire…nulla…..ma proprio nulla….. 😀
Ti ho allegato 2 immagini..che fanno capire io non abbia…capito…. 🙂
Se tu o qualcun altro che magari è riuscito ad apprendere nei mesi il funzionamento di tale Proscreener, riusciste a chiarirmene il funzionamento…il significato dei vari valori da immettere alle voci PERIOD, KDOUBLE, LMA, BULLCROSS, ecc.…sarei molto grato.
Grazie comunque!
Andrea
11/05/2019 at 12:19 AM #112135No, non ho avuto tempo di studiarlo. Da quei paramteri (priodo di osservazione e fattore di precisione, credo) si affina la ricerca o meno dei due pattern.
L’individuazione è sempre molto difficile, non esistono due massimi o minimi identici, bisogna consiuderarli uguali quando rientrano in una certa differenza. Credo sia quello che fa questo codice, sulla base della Leo Moving Average, ideata dall’utente LEO (non so se è ancora attivo o meno sul forum).
-
AuthorPosts
Find exclusive trading pro-tools on