[Problea programmazionePRT] Risultati indicatore personalizzato non utilizzabili
Forums › ProRealTime forum Italiano › Supporto ProScreener › [Problea programmazionePRT] Risultati indicatore personalizzato non utilizzabili
- This topic has 2 replies, 2 voices, and was last updated 4 years ago by
tom81ad.
-
-
01/10/2021 at 12:48 PM #157191
Buongiorno e bentrovati a tutti,
sto riscontrando difficoltà nell’utilizzare i risultati di un indicatore personalizzato piuttosto complesso (per intenderci i valori che riporto dopo RETURN) in uno screener.
La questione riassunta in breve è questa:
- ho creato un indicatore con 14 risultati
- sulla base di questi sto creando uno screener che riscontri l’esistenza di determinate condizioni
- nel generare lo screener sto procedendo per gradi quindi visto che PRT pretende di utilizzare tutti i risultati importati ho inizialmente riportato nel RETURN dell’indicatore solo 3 risultati (x,y,z)
- ho abbozzato lo screener per verificare che funzionasse bene in relazione a tali 3 risultati (tutto OK)
- nell’indicatore ho quindi riportato dopo RETURN altri 2 risultati (a,b)
- nel medesimo screen precedentemente abbozzato ho provato a riscontrare il corretto funzionamento in relazione ai 5 risultati importati (quindi alla condizione precedente che fa riferimento a x,y,z ne ho aggiunta una seconda che fa riferimento ad a,b)
- lo screener non riporta alcun risultato a questo punto ho fatto dei controlli manuali ed ho riscontrato che in effetti il risultato proposto era errato (esiste almeno 1 titolo che rispettava tutte le condizioni proposte)
- per scrupolo ho modificare la condizione relativa ai due nuovi parametri con tutte le combinazioni possibili (data la condizione ricercata A>B ho provato con A<B, A=B,A<>B; A<>B or A=B ho anche provato con le codizioni A=A e B=B) ma il risultato non cambia
- ho provato a riportare le due nuove variabili come criterio per i risultati (Criterio=A-B) mi restituisce sempre 0 risultati;
- ho quindi provato ad eliminre x,y,z dai risultati dell’indicatore e a cercare la sola condizione per A e B (con tutte le combinazioni possibili dette sopra) ma ancora nulla
- sono certo che A e B siano valori validi (in quanto nell’indicatore sono utilizzati per tracciare automaticamente una TL che risponde a quello che cerco)
Ho provato a duplicare l’indicatore e lo screener, a generarne nuovi copia-incollando gli script ma nulla A e B è come se non venissero riconosciuti vanificando l’utilizzo dello screener che riporta immancabilmente 0 risultati.
In ultimo, come se non bastasse, ora lo screener (identico alla prima bozza) mi restituisce 0 risultati anche utilizzando solo x,y,z.
Tutto ciò per dire che non si tratta di un errore di progammazioen (almeno al 99,9%) e per chiedere se qualcuno ha riscontrato simili problemi e come è possibile risolvere.
Grazie
P.S. ho provato ha copia-incollare l’indicatore direttamente nello screener ma presenta troppe variabili che generano solo risultati intermedi e che non mi servono ai fini della scansione quindi questa opzione mi risulta di difficile utilizzo anche per uan questione di organizzazione e di “pulizia di scrittura” del tutto
01/11/2021 at 10:14 AM #157287Prova semplicemente a trasformare l’indicatore in uno screener, senza utilizzare CALL.
Basta togliere le righe grafiche (DRAW…..) ed le eventuai righe iniziali con DEFPARAM.
Dopodiché, al posto di RETURN devi mettere:
1SCREENER[condizioni](criterio_di_selezione AS "criterio")Ad esempio questo è lo screener ricavato dalll’indicatore di Nicolas https://www.prorealcode.com/topic/rsi-linear-regresion/:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869//PRC_RSILinearRegressionSignals| indicator//25.09.2020//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge//converted from tradingview//https://www.prorealcode.com/topic/rsi-linear-regresion/// --- settingslen = 21 //RSI Lengthperiod = 200 //Perioddeviations = 2.0 //Deviation(s)// --- end of settingsirsi = rsi[len](close)periodMinusOne = period-1Ex = 0.0Ey = 0.0Ex2 = 0.0Exy = 0.0for i=0 to periodMinusOnecloseI = (irsi[i])Ex = Ex + iEy = Ey + closeIEx2 = Ex2 + (i * i)Exy = Exy + (closeI * i)ExEx = Ex * Exnext//slopeif Ex2=ExEx thenslope = 0.0elseslope= (period * Exy - Ex * Ey) / (period * Ex2 - ExEx)endifilinearRegression = (Ey - slope * Ex) / periodintercept = ilinearRegression + barindex * slopedeviation = 0.0for i=0 to periodMinusOnedeviation = deviation + square((irsi[i]) - (intercept - slope * (barindex[i])))nextdeviation = deviations * sqrt(deviation / periodMinusOne)startingPointY = ilinearRegression + slope / periodMinusOne//lineColorif startingPointY > startingPointY[1] then//color.blue//r=0//b=255else//color.red//r=255//b=0endifa = startingPointY-deviation//c1 = startingPointYb = startingPointY+deviationup=irsi crosses over adown=irsi crosses under bCond = 0if up then//drawtext("↑ up",barindex,irsi-5,dialog,standard,20) coloured(0,255,0)Cond = 1endifif down then//drawtext("↓ down",barindex,irsi+5,dialog,standard,20) coloured(255,0,0)Cond = 2endifSCREENER[Cond](Cond AS "1=Up,2=Dn")//return irsi, a coloured(r,0,b) style(line,3) as "curve low",c1 coloured(r,0,b) style(line,3) as "curve", b coloured(r,0,b) style(line,3) as "curve high"ho tolto DEFPARAM, comandi grafici, variabili inutilizzate ed ho sostituito Return con SCREENER. Dove c’erano i comandi grafici per stampare le frecce ho messo la condizione COND.
01/11/2021 at 4:48 PM #157377Ciao Roberto,
grazie per la, come al solito, puntuale risposta.
Alla fine è bastato togliere i comandi “Draw” dall’indicatore e lo screener ha ripreso a funzionare (bello spavento mi è preso!).
Ho ben inteso quanto da te proposto ma, pur comprendendo l’inefficienza del comando CALL in termini di utilizzo risorse, per una questione di ordine mio preferisco avere gli screener “puliti” con solo le condizioni e pasticciare a parte sull’indicatore che pure mi occorre restituisca delle linee sul grafico.
Grazie ancora
-
AuthorPosts
Find exclusive trading pro-tools on