programmare grafici Heikin Ashi

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #188031 quote
    eningi
    Participant
    New

    Ciao a tutti,

    vorrei provare a scrivere una strategia basata su Heikin Ashi per il proScreener … per esempio quattro candele rosse consecutive e due verdi consecutive…

    Mi confermate che non è possibile usare Heikin Ashi con la creazione guidata e che è necessario scrivere il codice di programmazione? In caso potreste postarmi un esempio semplice con il cambio di colore del grafico HA?

     

    Grazie in anticipo per l’aiuto.

    #188039 quote
    robertogozzi
    Moderator
    Master

    Pubblica il tuo argomento nel forum corretto:
    _ Supporto piattaforma ProRealTime: solo problemi relativi alla piattaforma.
    _ ProOrder: solo argomenti su strategie.
    _ ProBuilder: solo argomenti su indicatori.
    _ ProScreener: solo argomenti su screener.
    _ Discussione generale di Trading: qualsiasi altro argomento di trading.
    _ Benvenuto ai nuovi membri: per permettere ai nuovi membri del forum di presentarsi.

    Hai fatto riferimento ad una strategia e ad uno screener, invece hai postato nel forum relativo agli indicatori. Grazie 🙂

    La creazione facilitata non consente di utilizzare le candele Heikin-Ashi (c’è in ultimazione una nuova versione, la 12, ma ancora non si conoscono bene tutte le caratteristiche), quindi occorre usare la programmazione:

    xOpen    = open
    xClose   = (open + close + high + low) / 4
    if barindex > 0 then
       xOpen = (xOpen[1] + xClose[1]) / 2
    endif
    Verde = xClose > xOpen
    Rossa = xClose < xOpen
    L1    = (summation[4](Rossa) = 4)   //4 candele ROSSE consecutive
    L2    = (summation[2](Verde) = 2)   //2 candele VERDI consecutive
    Cond  = L1[2] AND L2
    SCREENER[Cond]
    eningi thanked this post
    #188127 quote
    eningi
    Participant
    New

    Roberto grazie per il codice. Scusami per aver postato nel forum sbagliato: ho dovuto perchè il pulsante Create a post appariva in tutte le categorie eccetto quella supporto ProScreener…non so perchè.

    Puoi confermarmi che hai già spostato tu nel forum corretto?

    #188136 quote
    robertogozzi
    Moderator
    Master

    Si, l’ho spostato io.

    eningi thanked this post
    #188195 quote
    eningi
    Participant
    New

    Grazie. Ho provato a fare delle modifiche, ma non ci sono riuscito. Volevo fare le seguenti due variazioni:

    – un ritracciamento impostato nel modo seguente:

    HA rossa;

    HA(1) verde;

    HA(2) verde;

    da H(3) a H(6) rossa.

    Per fare questo ho provato con il codice:

    xOpen = open
    xClose = (open + close + high + low) / 4
    if barindex &gt; 0 then
    xOpen = (xOpen[1] + xClose[1]) / 2
    endif
    Verde = xClose &gt; xOpen
    Rossa = xClose &lt; xOpen
    L1 = (summation[4](Rossa) = 4) //4 candele ROSSE consecutive
    L2 = (summation[2](Verde) = 2) //2 candele VERDI consecutive
    L3 = (summation[1](Rossa) = 1) //1 candele ROSSE consecutive
    Cond = L1[3] AND L2[2] AND L3
    SCREENER[Cond]

    – segnale di acquisto sotto la mm20:

    HA verde;

    HA(1) verde;

    HA(2) rossa;

    da H(3) a HA(6) rossa

    max HA(1) < SMA20

    xOpen = open
    xClose = (open + close + high + low) / 4
    Sma20 = Average[20]
    if barindex &gt; 0 then
    xOpen = (xOpen[1] + xClose[1]) / 2
    endif
    Verde = xClose &gt; xOpen
    Rossa = xClose &lt; xOpen
    L1 = (summation[4](Rossa) = 4) //4 candele ROSSE consecutive
    L2 = (summation[2](Verde) = 2) //2 candele VERDI consecutive
    L3 = Verde&lt;Sma20
    Cond = L1[2] AND L2 AND L3
    SCREENER[Cond]

    Come andrebbe scritto il codice corretto?

    #188309 quote
    robertogozzi
    Moderator
    Master

    #1

    xOpen = open
    xClose = (open + close + high + low) / 4
    if barindex &gt; 0 then
       xOpen = (xOpen[1] + xClose[1]) / 2
    endif
    Verde = xClose > xOpen
    Rossa = xClose < xOpen
    L1 = Rossa                          //Attuale ROSSA
    L2 = Verde[1]                       //La prima   precedente VERDE
    L3 = Verde[2]                       //La seconda precedente VERDE
    L4 = (summation[4](Rossa[3]) = 4)   //dalla 3a alla 6a precedente tutte ROSSE (sono 4 candele)
    Cond = L1 AND L2 AND L3 AND L4
    SCREENER[Cond]

    #2

    xOpen    = open
    xClose   = (open + close + high + low) / 4
    if barindex &gt; 0 then
       xOpen = (xOpen[1] + xClose[1]) / 2
    endif
    //xLow   = min(low,min(xClose,xOpen))
    xHigh    = max(high,max(xClose,xOpen))
    //xTypic = (xHigh + xLow + xClose) / 3
    //xMed   = (xHigh + xLow) / 2
    //xRange = xHigh - xLow
    //
    Sma20 = Average[20]                 //Sma calcolata sulle candele giapponesi normali
    //Sma20 = Average[20](xClose)       //Sma calcolata sulle candele HA
    Verde = xClose > xOpen
    Rossa = xClose < xOpen
    L1 = Verde                          //Attuale VERDE
    L2 = Verde[1]                       //La prima   precedente VERDE
    L3 = (summation[5](Rossa[2]) = 5)   //dalla 2a alla 6a precedente tutte ROSSE (sono 5 candele)
    L4 = xHigh[1] < Sma20               //Il massimo HA precedente deve essere sotto la Sma20
    Cond = L1 AND L2 AND L3 AND L4
    SCREENER[Cond]
    eningi thanked this post
    #188325 quote
    eningi
    Participant
    New

    Grazie Roberto,

    potresti dare un’occhiata al rigo 3 in entrambi i codici, in particolare la parte in cui è scritto  &gt

    Forse c’è un errore

    #188327 quote
    robertogozzi
    Moderator
    Master

    Scusami, ho dimenticato di toglierli. Sostituisci &gt; con >.

    eningi thanked this post
    #188408 quote
    eningi
    Participant
    New

    Ho provato a modificare il codice relativo al ritracciamento in modo farlo ritracciare soltanto con una candela verde anzichè due. La sintassi è corretta perchè non viene restituito nessun errore, però è strano che non trova titoli che corrispondono a tutte le condizioni.

    Posto qui il codice:

     

    xOpen = open
    xClose = (open + close + high + low) / 4
    if barindex > 0 then
    xOpen = (xOpen[1] + xClose[1]) / 2
    endif
    Verde = xClose > xOpen
    Rossa = xClose < xOpen
    L1 = Rossa                          //Attuale ROSSA
    L2 = Verde[1]                       //La prima   precedente VERDE
    L3 = (summation[3](Rossa[2]) = 4)   //dalla 3a alla 6a precedente tutte ROSSE (sono 4 candele)
    Cond = L1 AND L2 AND L3
    SCREENER[Cond]
    

    C’è qualcosa di illogico che lo rende difficile da verificarsi? Il mio intento era solo quello di copiare il codice sopra e modificare il numero delle candele verdi di ritracciamento da 2 a 1.

    #188415 quote
    robertogozzi
    Moderator
    Master

    Perché hai usato 3 con SUMMATION, quindi esamina 3 candele e somma quelle con la condizione valida, quindi il totale NON sarà mai 4, ma al massimo 3.

    Sostituisci 4 con 3.

    eningi thanked this post
    #188851 quote
    eningi
    Participant
    New

    Ho provato a usare questo codice, ma sembra che i risultati del segnale arrivino un giorno dopo quello che vorrei. In pratica il segnale dovrebbe arrivare quando l’ultima candela ha chiusura oltre il massimo o minimo della candela precedente che dovrebbe essere una doji. In generale questo codice fa quello che mi aspetto ma almeno con un giorno di ritardo. C’è qualche errore? Per la versione free di Prorealtime (quindi con dati end of day) qual’è il momento migliore di usare il proscreener? Dopo la chiusura del mercato o dopo la mezzanotte?

    xOpen    = open
    
    xClose   = (open + close + high + low) / 4
    
    if barindex > 0 then
    
    xOpen = (xOpen[1] + xClose[1]) / 2
    
    endif
    
    //
    xLow   = min(low,min(xClose,xOpen))
    
    xHigh    = max(high,max(xClose,xOpen))
    
    //xTypic = (xHigh + xLow + xClose) / 3
    
    //xMed   = (xHigh + xLow) / 2
    
    //xRange = xHigh - xLow
    
    //
    
    Verde = xClose > xOpen
    
    Rossa = xClose < xOpen
    
    Doji1 = xClose = xOpen
    
    Shadow1 = (xHigh[1] - Max (xClose[1],xOpen[1])) > Abs (xClose[1]-xOpen[1])
    
    Shadow2 = Min (xClose[1],xOpen[1]) - xLow[1] > Abs (xClose[1]-xOpen[1])
    
    Doji2 = Shadow1 AND Shadow2
    
    Doji = Doji1 OR Doji2
    
    Breaka = xClose > xHigh[1]
    
    Breakv = xClose < xLow[1]
    
    Sma50 = Average[50](xClose)
    
    Pendenza = Sma50 > Sma50[1]
    
    Pendenzav = Sma50 < Sma50[1]
    
    c1 = Breaka AND Pendenza AND Doji[1] AND Verde
    
    c2 = Breakv AND Pendenzav AND Doji[1] AND Rossa
    
    SCREENER[c1 OR c2]
    #188858 quote
    robertogozzi
    Moderator
    Master

    Se hai la versione free, c’è sempre una candela di ritardo.

    eningi thanked this post
    #188863 quote
    eningi
    Participant
    New

    Ok grazie, quindi oltre la candela attuale c’è una candela di ritardo

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

programmare grafici Heikin Ashi


ProScreener: Scansione Mercati & Screener

New Reply
Author
author-avatar
eningi @eningi Participant
Summary

This topic contains 12 replies,
has 2 voices, and was last updated by eningi
3 years, 11 months ago.

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