[Problea programmazionePRT] Risultati indicatore personalizzato non utilizzabili

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #157191 quote
    tom81ad
    Participant
    Average

    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

    #157287 quote
    robertogozzi
    Moderator
    Master

    Prova 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:

    SCREENER[condizioni](criterio_di_selezione AS "criterio")

    Ad esempio questo è lo screener ricavato dalll’indicatore di Nicolas https://www.prorealcode.com/topic/rsi-linear-regresion/:

    //PRC_RSILinearRegressionSignals| indicator
    //25.09.2020
    //Nicolas @ www.prorealcode.com
    //Sharing ProRealTime knowledge
    //converted from tradingview
    //https://www.prorealcode.com/topic/rsi-linear-regresion/
     
    // --- settings
    len = 21 //RSI Length
    period     = 200 //Period
    deviations = 2.0 //Deviation(s)
    // --- end of settings
     
    irsi = rsi[len](close)
    periodMinusOne = period-1
     
    Ex = 0.0
    Ey = 0.0
    Ex2 = 0.0
    Exy = 0.0
    for i=0 to periodMinusOne
    closeI = (irsi[i])
    Ex = Ex + i
    Ey = Ey + closeI
    Ex2 = Ex2 + (i * i)
    Exy = Exy + (closeI * i)
    ExEx = Ex * Ex
    next
    //slope
    if Ex2=ExEx  then
    slope = 0.0
    else
    slope= (period * Exy - Ex * Ey) / (period * Ex2 - ExEx)
    endif
    ilinearRegression = (Ey - slope * Ex) / period
    intercept = ilinearRegression + barindex * slope
    deviation = 0.0
    for i=0 to periodMinusOne
    deviation = deviation + square((irsi[i]) - (intercept - slope * (barindex[i])))
    next
    deviation = deviations * sqrt(deviation / periodMinusOne)
    startingPointY = ilinearRegression + slope / periodMinusOne
    //lineColor
    if startingPointY > startingPointY[1] then
    //color.blue
    //r=0
    //b=255
    else
    //color.red
    //r=255
    //b=0
    endif
    a = startingPointY-deviation
    //c1 = startingPointY
    b = startingPointY+deviation
     
    up=irsi crosses over a
    down=irsi crosses under b
    Cond = 0
    if up then
    //drawtext("↑ up",barindex,irsi-5,dialog,standard,20) coloured(0,255,0)
    Cond = 1
    endif
    if down then
    //drawtext("↓ down",barindex,irsi+5,dialog,standard,20) coloured(255,0,0)
    Cond = 2
    endif
    SCREENER[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.

    #157377 quote
    tom81ad
    Participant
    Average

    Ciao 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

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.

[Problea programmazionePRT] Risultati indicatore personalizzato non utilizzabili


ProScreener: Scansione Mercati & Screener

New Reply
Author
author-avatar
tom81ad @tom81ad Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by tom81ad
5 years, 1 month ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 01/10/2021
Status: Active
Attachments: No files
Logo Logo
Loading...