Proscreener Morning e Evening Star

Viewing 15 posts - 16 through 30 (of 30 total)
  • Author
    Posts
  • #124395 quote
    robertogozzi
    Moderator
    Master

    Il TF all’interno del codice ha un senso solo se si usano più TF contemporaneamente (MTF), ma non è questo il caso. Anche perché per ogni TF usato dovresti andare a cambiarlo.

    Basta che selezioni il TF dall’apposito menu a tendina di ProScreener e puoi utilizzarlo su qualunque TF.

    Ogni volta che trova un nuovo elemento lo inserisce nella lista che metterà sullo schermo, emettendo anche un beep.

    Una durata vera e propria non c’è, perché è LIVE, quiandi può capitare che il nome enti nella lista ed un secondo dopo sparisca, col variare dei prezzi. Ad ogni modo scade alla chiusura della candela, quando ProScreener inizia a fare la scansione sulla nuova candela.

    E’ possibile anche tenerli più candele, occorre però cambiare leggermente il codice.

    Se vuoi lo faccio.

    #124402 quote
    Procor
    Participant
    New

    scusami se possibile sarebbe importante che sia il proscreer a scorrere e cercare tra tutti i tf proposti e non doverlo fare manualmente cambiandolo dal menu a tendina continuamente ( sui tf brevi bisognerebbe farlo ogni pochi minuti) , a proposito dei tf un amico programmatore in un vecchio e abbastanza complesso proscreeer li aveva inseriti direttamente nel codice  (questo di seguito è un altro parziale esempio)

    TIMEFRAME(15 minutes)
    indicator1 = CALL S1
    c1 = (indicator1 < 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    TIMEFRAME(15 minutes)
    indicator2 = close
    indicator3 = (DHigh(1) + DLow(1) + DClose(1))/3
    c2 = (indicator2 <= indicator3)
    
    .......................  e lo terminava cosi ............
    
    if c9 then
    tf=120
    elsif c10 then
    tf=-120
    elsif c7 and c8 then
    tf=30
    elsif c5 and c6 then
    tf=-30
    elsif c3 and c4 then
    tf=15
    elsif c1 and c2 then
    tf=-15
    endif
    
    criteria=tf
    
    SCREENER[c1 AND c2 OR c3 AND c4 OR c5 AND c6 OR c7 AND c8 OR c9 OR c10] (criteria as "Time Frame")

     

    è un proscreener che lavora sul test della media 100, se ti può interessare ovviamente te lo invio

    • se possbile la soluzione migliore sul tempo di permanenza del segnale sarebbe che rimanesse attivo fino alla chiusura della candela successiva di quella che ha confermato il setup in modo da poterlo vedere anche con qualche minuto di ritardo

    ti pentirai di avermi dato ok alla programmazione  😉     grazie

    #124418 quote
    robertogozzi
    Moderator
    Master

    >> Per chiarezza dei messaggi sul forum di ProRealCode, si prega di utilizzare il pulsante  “insert code PRT” per separare il testo della parte di codice! Grazie! <<  🙂

    #124466 quote
    Procor
    Participant
    New

    questo è un esempio di proscreener con i tf di controllo  inseriti nel codice, che controlla direttamente la macchina, senza necessità di cambiarli manualmente

    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    TIMEFRAME(15 minutes)
    indicator1 = CALL S1
    c1 = (indicator1 < 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    TIMEFRAME(15 minutes)
    indicator2 = close
    indicator3 = (DHigh(1) + DLow(1) + DClose(1))/3
    c2 = (indicator2 <= indicator3)
    
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    TIMEFRAME(15 minutes)
    indicator4 = CALL S1
    c3 = (indicator4 > 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    TIMEFRAME(15 minutes)
    indicator5 = close
    indicator6 = (DHigh(1) + DLow(1) + DClose(1))/3
    c4 = (indicator5 >= indicator6)
    
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    TIMEFRAME(30 minutes)
    indicator7 = CALL S1
    c5 = (indicator7 < 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    TIMEFRAME(30 minutes)
    indicator8 = close
    indicator9 = (DHigh(1) + DLow(1) + DClose(1))/3
    c6 = (indicator8 <= indicator9)
    
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    TIMEFRAME(30 minutes)
    indicator10 = CALL S1
    c7 = (indicator10 > 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    TIMEFRAME(30 minutes)
    indicator11 = close
    indicator12 = (DHigh(1) + DLow(1) + DClose(1))/3
    c8 = (indicator11 >= indicator12)
    
    REM Il codice seguente si rivolge all'unità di tempo:30 minutes
    TIMEFRAME(2 hours)
    indicator13 = CALL S1
    c9 = (indicator13 > 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:30 minutes
    TIMEFRAME(2 hours)
    indicator14 = CALL S1
    c10 = (indicator14 < 0.0)
    
    REM Il codice seguente si rivolge all'unità di tempo:DEFAULT
    TIMEFRAME(DEFAULT)
    
    
    if c9 then
    tf=120
    elsif c10 then
    tf=-120
    elsif c7 and c8 then
    tf=30
    elsif c5 and c6 then
    tf=-30
    elsif c3 and c4 then
    tf=15
    elsif c1 and c2 then
    tf=-15
    endif
    
    criteria=tf
    
    SCREENER[c1 AND c2 OR c3 AND c4 OR c5 AND c6 OR c7 AND c8 OR c9 OR c10] (criteria as "Time Frame")
    
    #124470 quote
    fifi743
    Participant
    Master
    TIMEFRAME(2 hours)
    indicator13 = CALL S1
    c9 = (indicator13 > 0.0)
    REM Il codice seguente si rivolge all'unità di tempo:30 minutes
    indicator14 = CALL S1
    c10 = (indicator14 < 0.0)
    TIMEFRAME(30 minutes)
    indicator7 = CALL S1
    c5 = (indicator7 < 0.0)
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    indicator8 = close
    indicator9 = (DHigh(1) + DLow(1) + DClose(1))/3
    c6 = (indicator8 <= indicator9)
    
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    indicator10 = CALL S1
    c7 = (indicator10 > 0.0)
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    
    indicator11 = close
    indicator12 = (DHigh(1) + DLow(1) + DClose(1))/3
    c8 = (indicator11 >= indicator12)
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    TIMEFRAME(15 minutes)
    indicator1 = CALL S1
    c1 = (indicator1 < 0.0)
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    indicator2 = close
    indicator3 = (DHigh(1) + DLow(1) + DClose(1))/3
    c2 = (indicator2 <= indicator3)
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    indicator4 = CALL S1
    c3 = (indicator4 > 0.0)
    REM Il codice seguente si rivolge all'unità di tempo:10 minutes
    indicator5 = close
    indicator6 = (DHigh(1) + DLow(1) + DClose(1))/3
    c4 = (indicator5 >= indicator6)
    
    REM Il codice seguente si rivolge all'unità di tempo:15 minutes
    
    REM Il codice seguente si rivolge all'unità di tempo:30 minutes
    
    REM Il codice seguente si rivolge all'unità di tempo:DEFAULT
    TIMEFRAME(DEFAULT)
    
    
    if c9 then
    tf=120
    elsif c10 then
    tf=-120
    elsif c7 and c8 then
    tf=30
    elsif c5 and c6 then
    tf=-30
    elsif c3 and c4 then
    tf=15
    elsif c1 and c2 then
    tf=-15
    endif
    
    criteria=tf
    
    SCREENER[c1 AND c2 OR c3 AND c4 OR c5 AND c6 OR c7 AND c8 OR c9 OR c10] (criteria as "Time Frame")
    
    #124471 quote
    fifi743
    Participant
    Master

    L’ho modificato, meno tempo.

    #124507 quote
    robertogozzi
    Moderator
    Master

    Eccolo, sembra funzioni, solo che trova risultati con NumeroBarre = 1:

    TIMEFRAME(default)
    NumeroBarre = 1
    //
    TIMEFRAME(Daily)
    Rialzista   = close > open
    Ribassista  = close < open
    Body        = abs(close - open)
    // SHORT
    S1          = Rialzista[2]  AND Ribassista[1] AND Ribassista
    S2          = close[2]  >   highest[NumeroBarre](high[1])
    S3          = body[1]   <   Body[2]
    S4          = high[1]   <   high[2]
    S5          = close[1]  <   close[2]
     
    // LONG
    L1          = Ribassista[2] AND Rialzista[1] AND Rialzista
    L2          = close[2]  <   lowest[NumeroBarre](low[1])
    L3          = body[1]   <   Body[2]
    L4          = low[1]    >   low[2]
    L5          = close[1]  >   close[2]
    Risultato = 90000
    IF L1 AND L2 AND L3 AND L4 AND L5 THEN
    Risultato = 10000
    ELSIF S1 AND S2 AND S3 AND S4 AND S5 THEN
    Risultato = 20000
    ENDIF
    IF Risultato = 90000 THEN
    Risultato = Risultato[1]
    ENDIF
    //
    TIMEFRAME(4 hour)
    RialzistaA   = close > open
    RibassistaA  = close < open
    BodyA        = abs(close - open)
    // SHORT
    S1a          = RialzistaA[2]  AND RibassistaA[1] AND RibassistaA
    S2a          = close[2]  >   highest[NumeroBarre](high[1])
    S3a          = bodyA[1]  <   BodyA[2]
    S4a          = high[1]   <   high[2]
    S5a          = close[1]  <   close[2]
     
    // LONG
    L1a          = RibassistaA[2] AND RialzistaA[1] AND RialzistaA
    L2a          = close[2]  <   lowest[NumeroBarre](low[1])
    L3a          = bodyA[1]  <   BodyA[2]
    L4a          = low[1]    >   low[2]
    L5a          = close[1]  >   close[2]
    RisultatoA = 9000
    IF L1a AND L2a AND L3a AND L4a AND L5a THEN
    RisultatoA = 1000
    ELSIF S1a AND S2a AND S3a AND S4a AND S5a THEN
    RisultatoA = 2000
    ENDIF
    IF RisultatoA = 9000 THEN
    RisultatoA = RisultatoA[1]
    ENDIF
    //
    TIMEFRAME(1 hour)
    RialzistaB   = close > open
    RibassistaB  = close < open
    BodyB        = abs(close - open)
    // SHORT
    S1b          = RialzistaB[2]  AND RibassistaB[1] AND RibassistaB
    S2b          = close[2]  >   highest[NumeroBarre](high[1])
    S3b          = bodyB[1]  <   BodyB[2]
    S4b          = high[1]   <   high[2]
    S5b          = close[1]  <   close[2]
     
    // LONG
    L1b          = RibassistaB[2] AND RialzistaB[1] AND RialzistaB
    L2b          = close[2]  <   lowest[NumeroBarre](low[1])
    L3b          = bodyB[1]  <   BodyB[2]
    L4b          = low[1]    >   low[2]
    L5b          = close[1]  >   close[2]
    RisultatoB = 900
    IF L1b AND L2b AND L3b AND L4b AND L5b THEN
    RisultatoB = 100
    ELSIF S1b AND S2b AND S3b AND S4b AND S5b THEN
    RisultatoB = 200
    ENDIF
    IF RisultatoB = 900 THEN
    RisultatoB = RisultatoB[1]
    ENDIF
    //
    TIMEFRAME(15 minute)
    RialzistaC   = close > open
    RibassistaC  = close < open
    BodyC        = abs(close - open)
    // SHORT
    S1c          = RialzistaC[2]  AND RibassistaC[1] AND RibassistaC
    S2c          = close[2]  >   highest[NumeroBarre](high[1])
    S3c          = bodyC[1]  <   BodyC[2]
    S4c          = high[1]   <   high[2]
    S5c          = close[1]  <   close[2]
     
    // LONG
    L1c          = RibassistaC[2] AND RialzistaC[1] AND RialzistaC
    L2c          = close[2]  <   lowest[NumeroBarre](low[1])
    L3c          = bodyC[1]  <   BodyC[2]
    L4c          = low[1]    >   low[2]
    L5c          = close[1]  >   close[2]
    RisultatoC = 90
    IF L1c AND L2c AND L3c AND L4c AND L5c THEN
    RisultatoC = 10
    ELSIF S1c AND S2c AND S3c AND S4c AND S5c THEN
    RisultatoC = 20
    ENDIF
    IF RisultatoC = 90 THEN
    RisultatoC = RisultatoC[1]
    ENDIF
    //
    TIMEFRAME(5 minute)
    RialzistaD   = close > open
    RibassistaD  = close < open
    BodyD        = abs(close - open)
    // SHORT
    S1d          = RialzistaD[2]  AND RibassistaD[1] AND RibassistaD
    S2d          = close[2]  >   highest[NumeroBarre](high[1])
    S3d          = bodyD[1]  <   BodyD[2]
    S4d          = high[1]   <   high[2]
    S5d          = close[1]  <   close[2]
     
    // LONG
    L1d          = RibassistaD[2] AND RialzistaD[1] AND RialzistaD
    L2d          = close[2]  <   lowest[NumeroBarre](low[1])
    L3d          = bodyD[1]  <   BodyD[2]
    L4d          = low[1]    >   low[2]
    L5d          = close[1]  >   close[2]
    RisultatoD = 9
    IF L1d AND L2d AND L3d AND L4d AND L5d THEN
    RisultatoD = 1
    ELSIF S1d AND S2d AND S3d AND S4d AND S5d THEN
    RisultatoD = 2
    ENDIF
    IF RisultatoD = 9 THEN
    RisultatoD = RisultatoD[1]
    ENDIF
    //
    TIMEFRAME(default)
    x = Risultato + RisultatoA + RisultatoB + RisultatoC + RisultatoD
    SCREENER[x](x AS "D41XV") //D=dayly, 4=4h, 1=1h, X=15 minuti (X è la cifra di sinistra in numeri romani),V=5 in numeri romani (per ogni TF restituirà 1 (Rialzo) or 2 (Ribasso)

    io l’ho applicato ad un TF a 1 minuto, ma questo è ininfluente ai fini della scansione, lui la fa sui TF indicati nel codice. Se vuoi vedere i risultati devi selezionare, sul grafico, il TF desiderato, nel caso del COPPER potresti visulaizzare il TF 1h dove c’è un segnale Rialzista (valore 1), mentre su tutti gli altri c’è un segnale Ribassista (valore 2).

    Il segnale ha la durata di 2 barre, per cui sul TF indicato può darsi che il segnale non sia quello corrente, ma quello dalla barra precedente.

    fifi743 thanked this post
    x.jpg x.jpg
    #124518 quote
    Procor
    Participant
    New

    l’ho caricato, innanzitutto grazie per il grande lavoro

    poi vorrei chiederti alcune cose che non mi sono chiare :

    • 1)cosa significa : “solo che trova risultati con NumeroBarre = 1 ”  ?
    • 2) hai inserito anche la condizione che sia un nuovo max /min rispetto alle ultime 10 candele ?
    • 3) a me sul proscreener non indica il tf sul quale si sta verificando, come lo riconosco ?
    • 4)qual’è il significato dei 5 numeri nella colonna d41xv del proscreener ?
    • 5) da quale barra delle 3 del setup inizia ad uscire il segnale  sul proscreener ?
    • 6) le 2 barre di durata del segnale sono per deduzione : la terza ed ultima che lo conferma, e la successiva  ?
    • 7) sbaglio o è superfluo il tf selezionato nella creazione del proscreener se poi i tf da controllare sono nel codice ?

    grazie

    #124558 quote
    robertogozzi
    Moderator
    Master

    l’ho caricato, innanzitutto grazie per il grande lavoro

    poi vorrei chiederti alcune cose che non mi sono chiare :

    • 1)cosa significa : “solo che trova risultati con NumeroBarre = 1 ” ?
      che con 10 barre NON trova niente, solo con 1 trova qualcosa
    • 2) hai inserito anche la condizione che sia un nuovo max /min rispetto alle ultime 10 candele ?
      si, con i limiti di cui sopra
    • 3) a me sul proscreener non indica il tf sul quale si sta verificando, come lo riconosco ?
      guarda la colonna del criterio nella lista dei risultati di ProScreener
    • 4)qual’è il significato dei 5 numeri nella colonna d41xv del proscreener ?
      leggi (o rileggi) il commento dell’ultima riga del codice
    • 5) da quale barra delle 3 del setup inizia ad uscire il segnale sul proscreener ?
      dalla barra corrente, cioè quella più a destra sul grafico (+ una come hai chiesto)
    • 6) le 2 barre di durata del segnale sono per deduzione : la terza ed ultima che lo conferma, e la successiva ?
      sono quella corrente, come ho detto sopra + quella immediatamente alla sua sinistra
    • 7) sbaglio o è superfluo il tf selezionato nella creazione del proscreener se poi i tf da controllare sono nel codice ?
      è superfluo, ma uno va indicato obbligatoriamente.

    grazie

    #124772 quote
    Procor
    Participant
    New

    rispetto al punto 1 :

    1)cosa significa : “solo che trova risultati con NumeroBarre = 1 ” ?
    che con 10 barre NON trova niente, solo con 1 trova qualcosa

    cioè che iniza il conteggio ad ogni nuovo massimo /minimo, anche se ne ha fatto uno maggiore minore anche solo 2/3 candele precedenti ?

     

    rispetto al precedente punto 5 :

    “5) da quale barra delle 3 del setup inizia ad uscire il segnale sul proscreener ?
    dalla barra corrente, cioè quella più a destra sul grafico (+ una come hai chiesto)”

    non avevo posto chiaramente la domanda : tenuto conto che la configuazione è confermata dopo 3 candele con le corrette condizioni, in quale momento il proscreener mi mostra che la condizione si sta verificando : 1) durante prima candeladelle 3,direi di no, 2) durante la seconda delle 3, troppo presto, 3) durante la terza delle 3, con le prime 2 confermate, rimarrebbe aperto fino a conclusione della terza se conferma, e la candela successiva (quarta)

    . la colonna del proscreener ora mostra su tutti i tf un segnale attivo, ma in relatà non è così. come si deve interpretare  ?

    grazie

    #124782 quote
    robertogozzi
    Moderator
    Master

    Tu, com’è naturale nel trading manuale, parti da una candela e attendi che dopo quella se ne verifichino altre per formare un certo pattern (può accadere, oppure no, come tutti i pattern). Nel trading automatico, il software può solo andare indietro, quindi nel tuo caso, quando scopra un massimo inferiore al precedente capisce che è a metà strada, gli basta verificare che anche quella più a sinistra (la terza, quella che tu, sullo schermo vedi per prima) sia inferiore a quella di mezzo ed è fatta!

    Quindi non si guarda a cosa succederà dopo, ma occorre andare a vedere cos’è successo prima! Infatti la prima candela è quella corrente (identificata senza barre o con [0]), che si sta formando, mentre la seconda è quella indicata con [1] e la terza ancora (quella più a sinistra sullo schermo) è qualla indicata con [2].

    Il segnale viene generato quando il pattern è completo, per cui SOLO sulla candela corrente. Siccome lo screener serve per vedere risultati LIVE mentre accadono, non dopo, quando una candela chiude il segnale finisce e non c’è più perché lo screener va ad analizzare la candela nuova che si è aperta. Nel tuo caso, perché può capitare che tu non sia davanti allo schermo e rischi di perdere un segnale, mi avevi chiesto di farlo durare una barra in più, ovvero il segnale viene geneato sulla barra in corso, ma lui ti segnala ANCHE quelli passati apparsi sulla barra precedente.

    Quanto al numero di barre, va bene la tua logica, solo che è raro che dia dei segnali, per cui, dovendo provare se funzionava, ho dovuto mettere 1 come numero di barra. E’ un valore assurdo, ma a me ha dato modi di verificare che il segnale viene generato. Dipende dalle condizioni che tu hai impostato capire se lo genera troppo raramente o troppo spesso, ecc… ma questo devi deciderlo tu.

    Devi dirmi che numero di barre hai messo (al posto di 1) e su quali strumenti e timeframe hai fatto la ricerca.

    #124795 quote
    Procor
    Participant
    New

    “Devi dirmi che numero di barre hai messo (al posto di 1) e su quali strumenti e timeframe hai fatto la ricerca”.

    su barre = 1   mi da i riultati allegati       mercati : fx + dax + indici usa

    non capsco perchè mi da segnali su tutti i tf , anche se non ci sono, non dovrebbe restituirmi un altro numero diverso da 1 – 2  che mi indica assenza di segnale se su qul tf non è in corso il segnale  ?

    grazie

    p.s.-1.png p.s.-1.png
    #124820 quote
    Procor
    Participant
    New

    con n. barre = 1 ,     se sto interpretando correttamente la colonna dei TF, da questa mattina da segnale long su tutti i tf di gbp cad, e sh su tutti i tf di eru usd.

    tf lasciati quelli di default 15 m 1h  4h d

    con n.barre superiori a 1 nessun segnale

    #124948 quote
    robertogozzi
    Moderator
    Master

    Ho trovato due errori logici nelle variabili, sia long che short, corrsipondenti ai numeri S4, S5, L4 ed L5 in ciascun TF.

    Ma, principalmente, ho trovato l’errore che non permetteva di utilizzare 10 barre ed era alla riga S2 ed L2, di ogni TF, dove c’è SUMMATION, l’ultimo riferimento a destra doveva essere [3] (e non [1] come avevo messo).

    Adesso sembra funzionare, nella foto allegata ho evidenziato un titolo dove il segnale è sia su 1 ora che su 5 minuti.

    Questo è il codice aggiornato:

    TIMEFRAME(default)
    NumeroBarre = 10
    //
    TIMEFRAME(Daily)
    Rialzista   = close > open
    Ribassista  = close < open
    Body        = abs(close - open)
    // SHORT
    S1          = Rialzista[2]  AND Ribassista[1] AND Ribassista
    S2          = close[2]  >   highest[NumeroBarre](high[3])
    S3          = body[1]   <   Body[2]
    S4          = high      <   high[2]
    S5          = close     <   close[1]
     
    // LONG
    L1          = Ribassista[2] AND Rialzista[1] AND Rialzista
    L2          = close[2]  <   lowest[NumeroBarre](low[3])
    L3          = body[1]   <   Body[2]
    L4          = low       >   low[2]
    L5          = close     >   close[1]
    Risultato = 90000
    IF L1 AND L2 AND L3 AND L4 AND L5 THEN
    Risultato = 10000
    ELSIF S1 AND S2 AND S3 AND S4 AND S5 THEN
    Risultato = 20000
    ENDIF
    IF Risultato = 90000 THEN
    Ris       = Risultato[1]
    ELSE
    Ris       = Risultato
    ENDIF
    //
    TIMEFRAME(4 hour)
    RialzistaA   = close > open
    RibassistaA  = close < open
    BodyA        = abs(close - open)
    // SHORT
    S1a          = RialzistaA[2]  AND RibassistaA[1] AND RibassistaA
    S2a          = close[2]  >   highest[NumeroBarre](high[3])
    S3a          = bodyA[1]  <   BodyA[2]
    S4a          = high      <   high[2]
    S5a          = close     <   close[1]
     
    // LONG
    L1a          = RibassistaA[2] AND RialzistaA[1] AND RialzistaA
    L2a          = close[2]  <   lowest[NumeroBarre](low[3])
    L3a          = bodyA[1]  <   BodyA[2]
    L4a          = low       >   low[2]
    L5a          = close     >   close[1]
    RisultatoA = 9000
    IF L1a AND L2a AND L3a AND L4a AND L5a THEN
    RisultatoA = 1000
    ELSIF S1a AND S2a AND S3a AND S4a AND S5a THEN
    RisultatoA = 2000
    ENDIF
    IF RisultatoA = 9000 THEN
    RisA       = RisultatoA[1]
    ELSE
    RisA       = RisultatoA
    ENDIF
    //
    TIMEFRAME(1 hour)
    RialzistaB   = close > open
    RibassistaB  = close < open
    BodyB        = abs(close - open)
    // SHORT
    S1b          = RialzistaB[2]  AND RibassistaB[1] AND RibassistaB
    S2b          = close[2]  >   highest[NumeroBarre](high[3])
    S3b          = bodyC[1]  <   BodyC[2]
    S4b          = high      <   high[2]
    S5b          = close     <   close[1]
     
    // LONG
    L1b          = RibassistaB[2] AND RialzistaB[1] AND RialzistaB
    L2b          = close[2]  <   lowest[NumeroBarre](low[3])
    L3b          = bodyB[1]  <   BodyB[2]
    L4b          = low       >   low[2]
    L5b          = close     >   close[1]
    RisultatoB = 900
    IF L1b AND L2b AND L3b AND L4b AND L5b THEN
    RisultatoB = 100
    ELSIF S1b AND S2b AND S3b AND S4b AND S5b THEN
    RisultatoB = 200
    ENDIF
    IF RisultatoB = 900 THEN
    RisB       = RisultatoB[1]
    ELSE
    RisB       = RisultatoB
    ENDIF
    //
    TIMEFRAME(15 minute)
    RialzistaC   = close > open
    RibassistaC  = close < open
    BodyC        = abs(close - open)
    // SHORT
    S1c          = RialzistaC[2]  AND RibassistaC[1] AND RibassistaC
    S2c          = close[2]  >   highest[NumeroBarre](high[3])
    S3c          = bodyC[1]  <   BodyC[2]
    S4c          = high      <   high[2]
    S5c          = close     <   close[1]
     
    // LONG
    L1c          = RibassistaC[2] AND RialzistaC[1] AND RialzistaC
    L2c          = close[2]  <   lowest[NumeroBarre](low[3])
    L3c          = bodyC[1]  <   BodyC[2]
    L4c          = low       >   low[2]
    L5c          = close     >   close[1]
    RisultatoC = 90
    IF L1c AND L2c AND L3c AND L4c AND L5c THEN
    RisultatoC = 10
    ELSIF S1c AND S2c AND S3c AND S4c AND S5c THEN
    RisultatoC = 20
    ENDIF
    IF RisultatoC = 90 THEN
    RisC       = RisultatoC[1]
    ELSE
    RisC       = RisultatoC
    ENDIF
    //
    TIMEFRAME(5 minute)
    RialzistaD   = close > open
    RibassistaD  = close < open
    BodyD        = abs(close - open)
    // SHORT
    S1d          = RialzistaD[2]  AND RibassistaD[1] AND RibassistaD
    S2d          = close[2]  >   highest[NumeroBarre](high[3])
    S3d          = bodyD[1]  <   BodyD[2]
    S4d          = high      <   high[2]
    S5d          = close     <   close[1]
     
    // LONG
    L1d          = RibassistaD[2] AND RialzistaD[1] AND RialzistaD
    L2d          = close[2]  <   lowest[NumeroBarre](low[3])
    L3d          = bodyD[1]  <   BodyD[2]
    L4d          = low       >   low[2]
    L5d          = close     >   close[1]
    RisultatoD = 9
    IF L1d AND L2d AND L3d AND L4d AND L5d THEN
    RisultatoD = 1
    ELSIF S1d AND S2d AND S3d AND S4d AND S5d THEN
    RisultatoD = 2
    ENDIF
    IF RisultatoD = 9 THEN
    RisD       = RisultatoD[1]
    ELSE
    RisD       = RisultatoD
    ENDIF
    //
    TIMEFRAME(default)
    x = Ris + RisA + RisB + RisC + RisD
    IF x = 99999 THEN
    x = 0
    ENDIF
    SCREENER[x](x AS "D41XV") //D=dayly, 4=4h, 1=1h, X=15 minuti (X è la cifra di sinistra in numeri romani),V=5 in numeri romani (per ogni TF restituirà 1 (Rialzo) or 2 (Ribasso)

    funziona anche la durata del segnale, di due barre (quella in corso + quella precedente), per cui può capitare che adesso sul grafico non vedi il segnale ma c’era la barra precedente. Al fine di facilitarti il compito ti ho fatto questo indicatore:

    NumeroBarre = 10
    Rialzista   = close > open
    Ribassista  = close < open
    Body        = abs(close - open)
    // SHORT
    S1          = Rialzista[2]  AND Ribassista[1] AND Ribassista
    S2          = close[2]  >   highest[NumeroBarre](high[3])
    S3          = body[1]   <   Body[2]
    S4          = high      <   high[2]
    S5          = close     <   close[1]
     
    // LONG
    L1          = Ribassista[2] AND Rialzista[1] AND Rialzista
    L2          = close[2]  <   lowest[NumeroBarre](low[3])
    L3          = body[1]   <   Body[2]
    L4          = low       >   low[2]
    L5          = close     >   close[1]
    Risultato = 0
    IF L1 AND L2 AND L3 AND L4 AND L5 THEN
       Risultato = 1
    ELSIF S1 AND S2 AND S3 AND S4 AND S5 THEN
       Risultato = -1
    ENDIF
    RETURN Risultato AS "Risultato",0 AS "Zero"
    #124972 quote
    Procor
    Participant
    New

    ho caricato proscreener e indicatore …

    per quello che stò vedendo ora … mi sembra che hai fatto un FANTASTICO lavoro, utilissimo anche l’indicatore, non avrei saputo chiedere di meglio

    continuo a provarli e aggiorno nei prossimi giorni

    per ora GRAZIE Roberto

    robertogozzi thanked this post
Viewing 15 posts - 16 through 30 (of 30 total)
  • You must be logged in to reply to this topic.

Proscreener Morning e Evening Star


ProScreener: Scansione Mercati & Screener

New Reply
Author
author-avatar
Procor @procor Participant
Summary

This topic contains 29 replies,
has 3 voices, and was last updated by Procor
5 years, 11 months ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 04/02/2020
Status: Active
Attachments: 3 files
Logo Logo
Loading...