Aiuto bullish engulfing in periodo limitato

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #91498 quote
    Lutterlino
    Participant
    New

    Ciao a tutti,

    pur usando da diverso tempo prorealtime, mi sto avvicinando solo ora al mondo del linguaggio prt.

    Non essendo esperto avrei bisogno di una mano per creare un codice con le seguenti caratteristiche:

    -ricerca di un pattern di bullish engulfing classico (apertura candela nuova inferiore a minimo candela precedente, chiusura candela nuova superiore a massimo candela precedente)

    -limite temporale di 10 candele (onde evitare di trovare segnali molto vecchi)

    -vicinanza a media ponderata di 200 sessioni  (nel caso non sia possibile decodificare la prossimitá alla media puó andar bene che il prezzo si trovi sopra la media ponderata 200).

    Per ultima cosa vorrei togliermi una curiositá: esistono codici che identificano pattern di gruppi di candele, come bandiere e triangoli?

    Grazie in anticipo se qualcuno potrá aiutarmi e buon trading a tutti

    Alessandro

    #91500 quote
    robertogozzi
    Moderator
    Master

    Per favore aggiorna il tuo Paese nel profilo. Grazie.

    #91503 quote
    robertogozzi
    Moderator
    Master

    Hai scritto una definizione di ENGULFING che non è quella che è generalmente si da, ad esempio IG (https://www.ig.com/it/gli-engulfing) dice “Chiariamo subito un dubbio: nell’analisi candlestick classica quando parliamo di engulfing dobbiamo considerare solo i corpi e non anche le shadows“, anche INVESTOPEDIA (https://www.investopedia.com/terms/b/bullishengulfingpattern.asp) dice “the body of which completely overlaps or engulfs the body of the previous day’s candlestick“. Nulla vieta, tuttavia, di dargli qualunque altra definizione, magari comprendendo anche le ombre.

    Ti posto il codice per determinare le singole parti di una candela, sta a te usarle come preferisci:

    Rialzista  = open < close
    Ribassista = open > close
    Corpo      = abs(close - open)
    OmbraSup   = high - max(open,close)
    OmbraInf   = min(open,close) - low

    se vuoi trovare il totale delle ombre puoi scrivere:

    OmbraTot   = OmbraSup + OmbraInf

    eccetera…

    Il range (la grandezza della candela è data dal Massimo – Minimo, ma è inutile stare a calcolarla in quanto esiste giù la costante predefinita RANGE che ti restituisce questo valore.

    Nel mio esempio il Bullish Engulfing si scriverebbe così:

    x1 = Corpo > Corpo[1]            //Corpo attuale > del precedente
    x2 = Rialzista AND Ribassista[1] //Candela attuale rialzista e precedente Ribassista
    BullishEngulfing = x1 AND x2     //Vera quando entrambe le condizioni sono vere

    Nel tuo esempio, invece, dovresti definirlo così:

    x1 = Open < low[1]                  //Apertura inferiore al minimo precedente
    x2 = close > high[1]                //Chiusura superiore al massimo precedente
    x3 = Rialzista AND Ribassista[1]    //Candela attuale rialzista e precedente ribassista
    BullishEngulfing = x1 AND x2 AND x3 //Vera quanto tutte e tre le condizioni sono soddisfatte

    Per trovare quelle verificatesi entro le ultime 10 candele si scrive:

    Cond1 = summation[10](BullishEngulfing) //Condizione vera se il risultato è > 0

    Per la condizione relativa alla media:

    Cond2 = close > average[200,0](close)

    Assemblando tutte le parti insieme ecco lo screener completo:

    Rialzista  = open < close
    Ribassista = open > close
    Corpo      = abs(close - open)
    //OmbraSup   = high - max(open,close)
    //OmbraInf   = min(open,close) - low
    //
    // ENGULFING - Mia definizione:
    x1 = Corpo > Corpo[1]                   //Corpo attuale > del precedente
    x2 = Rialzista AND Ribassista[1]        //Candela attuale rialzista e precedente Ribessists
    BullishEngulfing = x1 AND x2            //Vera quando entrambe le condizioni sono vere
    //
    // ENGULFING - Tua definizione:
    //x1 = Open < low[1]                    //Apertura inferiore al minimo precedente
    //x2 = close > high[1]                  //Chiusura superiore al massimo precedente
    //x3 = Rialzista AND Ribassista[1]      //Candela attuale rialzista e precedente ribassista
    //BullishEngulfing = x1 AND x2 AND x3   //Vera quanto tutte e tre le condizioni sono soddisfatte
    //
    Cond1 = summation[10](BullishEngulfing) //Condizione vera se il risultato è > 0
    Cond2 = close > average[200,0](close)
    Risultato = Cond1 AND Cond2
    SCREENER[Risultato]

    Questa versione è con la mia definizione, se vuoi usarlo con la tua devi commentare le righe 3, 8, 9 e 10 e togliere i commenti dalle righe 13-16.

    Ovviamente 10 candele sono molte e troverai un sacco di risultati vecchi. Tieni presente che uno screener fa scansioni di mercato LIVE, quindi andare a trovare qualcosa che può essere accaduto 10 candele prima non è efficace, ormai il segnale probabilmente è partito.

    #91632 quote
    Lutterlino
    Participant
    New

    Ciao Roberto,

    grazie mille per il prezioso aiuto, effettivamente con 10 candele escono troppi risultati giá passati e non piú utili, alla fine ho sostituito il valore con 3 candele.

    Finchè ci sono ne approfitto per chiederti anche un’informazione tecnica: su prorealtime una volta che apro i grafici dei titoli trovati con lo screener devo andare a cercare io manualmente i pattern sul grafico. Sai se esiste un modo per far sí che il grafico mi evidenzi automaticamente il pattern cercato? (su alcuni video ho visto che esiste una specie di indicatore che disegna un picco in corrispondenza della candela cercata con lo screener, solo che al momento non sono ancora riuscito a capire di quale strumento si tratta).

    Grazie ancora per l’aiuto

    Un saluto

    #91648 quote
    robertogozzi
    Moderator
    Master

    Esiste questo indicatore nella libreria: https://www.prorealcode.com/prorealtime-indicators/candlestick-patterns-recognition/.

    Poi ci sono queste aggiunte: https://www.prorealcode.com/topic/mt4-candlesticks-recognizer-to-be-converted-to-prt-code/page/2/#post-26992.

    Ovviamente se fai uno screener basato su questi il TUO codice nello screener deve essere IDENTICO a quello dell’indicatore, altrimenti i risultati non combaciano, esempio per AbandonedBabyTop:

    AbandonedBabyTop=(body[2]>0 and body<0 and longcandle[2] and ratio[1]<0.3 and low[1]>high[2] and low[1]>high) AND TrendUp[3]
    Ricordati di mettere, all’inizio dello screener, anche il codice di quelle parti generiche che servono per tutti i pattern:
    // Trend direction identification
    //(choose 0=No Trend check, 1=MACD, 2=SAR[default], 3=Directional Movement, 4=Moving Averagea crossing)
    // TDS=2
    body=close-open
    abody=abs(body)
    if range>0 then
       ratio=abody/range
    else
       ratio=0
    endif
    middle=(open+close)/2
    bodytop=max(open, close)
    bodybottom=min(open, close)
    shadowtop=high-bodytop
    shadowbottom=bodybottom-low
    longcandle= (ratio>0.6)
    //Trend Detection
    if TDS=0 then
       TrendUp=1
       TrendDown=1
    elsif TDS=1 then
       TrendUp=(MACDline[12,26,9](close)>0 AND MACD[12,26,9](close)>0)
       TrendDown=(MACDline[12,26,9](close)<0 AND MACD[12,26,9](close)<0)
    elsif TDS=2 then
       TrendUp=(SAR[0.02,0.02,0.2]<low)
       TrendDown=(SAR[0.02,0.02,0.2]>high)
     elsif TDS=3 then
       TrendUp=(ADX[14]>23 AND DI[14](close)>0)
       TrendDown=(ADX[14]>23 AND DI[14](close)<0)
    elsif TDS=4 then
       TrendUp=(Average[3](close)>Average[12](close))
       TrendDown=(Average[3](close)<Average[12](close))
    endif

    Comunque quando vai ad eseguire lo screener ti verranno segnalate variabili mancanti che dovrai aggiungere o variabili in eccesso che dovrai togliere o commentare.

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

Aiuto bullish engulfing in periodo limitato


ProScreener: Scansione Mercati & Screener

New Reply
Author
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by robertogozzi
7 years ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 02/16/2019
Status: Active
Attachments: No files
Logo Logo
Loading...