Renko + bollinger

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #95156 quote
    R05
    Participant
    Veteran

    Gent.mi ho visto al segeuente link https://www.prorealcode.com/prorealtime-trading-strategies/renko-automated-trading-with-moving-average-on-candlesticks-chart/ la possibilità di combinare il grafico renko con la media mobile. Per comodità vi allego il codice.

    defparam cumulateorders = false
     
    bsize = 20 //renko size in points
    mmperiod = 20 //moving average period
    orderstime = 300 //minimum seconds between 2 orders
     
    boxsize = bsize*pipsize
     
    once topprice = close
    once bottomprice = close - boxsize*pipsize*2
     
    if(close > topprice + boxsize*2) THEN
     topprice = close
     bottomprice = topprice - boxsize*2
     barclose=topprice
    ELSIF (close < bottomprice - boxsize*2) THEN
     bottomprice = close
     topprice = bottomprice + boxsize*2
     barclose = bottomprice
    ELSE
     topprice = topprice
     bottomprice = bottomprice
    ENDIF
     
    mm = average[mmperiod](barclose)
     
    if barclose=barclose[1] then
     mmRENKO = mmRENKO[1]
    else
     mmRENKO = mm
    endif
     
    if barclose crosses over mmRENKO AND ABS(time-lasttime)>orderstime then
     BUY 1 SHARES AT MARKET
     EXITSHORT AT MARKET
     lasttime=time
    endif
     
    if barclose crosses under mmRENKO AND ABS(time-lasttime)>orderstime then
     SELLSHORT 1 SHARES AT MARKET
     SELL AT MARKET
     lasttime=time
    endif

    Si potrebbe usare il grafico renko in combinazione con le bande di bollinger anzichè con la media? Vi allego ciò che vorrei provare a fare.

    esempio.jpg esempio.jpg
    #95162 quote
    robertogozzi
    Moderator
    Master

    Non è la stessa domanda che hai fatto qui https://www.prorealcode.com/topic/grafico-renko/#post-95017

    ?

    Non duplicare i post per favore! Grazie.

    La media c’è già, intentevi le bande di bollinger?

    #95170 quote
    R05
    Participant
    Veteran

    Si scusa Roberto. Ho trovato nel frattempo questo sistema però non riesco a sostituire la media con le bande di bollinger. Si a me interessano le bande di bollinger non le medie.

    #95225 quote
    robertogozzi
    Moderator
    Master

    Questa è la definizione delle Bande di Bollinger, dove ho sotituito CLOSE con la tua variabile BARCLOSE

    BBVal  = 20                                             //20   periodi BB
    BBdev  = 2.0                                            //2.0  deviazione BB
    BBavg  = average[BBval](barclose)                       //BB mean (middle line)
    BollUP = BBavg + ((std[BBval](barclose)) * BBdev)       //BB Upper Band
    BollDN = BBavg - ((std[BBval](barclose)) * BBdev)       //BB Lower Band

    Usa quella invece della media ed è fatto (non l’ho provata).

    #95235 quote
    R05
    Participant
    Veteran

    Grazie Roberto. Ho provato a fare le modifiche e mi è uscito il sistema seguente.

    defparam cumulateorders = false
    
    bsize = 5 //renko size in points
    orderstime = 300 //minimum seconds between 2 orders
    
    boxsize = bsize*pipsize
    
    once topprice = close
    once bottomprice = close - boxsize*pipsize*2
    
    if(close > topprice + boxsize*2) THEN
    topprice = close
    bottomprice = topprice - boxsize*2
    barclose=topprice
    ELSIF (close < bottomprice - boxsize*2) THEN
    bottomprice = close
    topprice = bottomprice + boxsize*2
    barclose = bottomprice
    ELSE
    topprice = topprice
    bottomprice = bottomprice
    ENDIF
    
    BBVal  = 20                                             //20   periodi BB
    BBdev  = 2.0                                            //2.0  deviazione BB
    BBavg  = average[BBval](barclose)                       //BB mean (middle line)
    BollUP = BBavg + ((std[BBval](barclose)) * BBdev)       //BB Upper Band
    BollDN = BBavg - ((std[BBval](barclose)) * BBdev)       //BB Lower Band
    
    
    if barclose<bolldn AND ABS(time-lasttime)>orderstime then
    mmRENKO = mmRENKO[1]
    else
    mmRENKO = bollup
    endif
    
    if barclose < mmRENKO then
    BUY 1 SHARES AT MARKET
    EXITSHORT AT MARKET
    lasttime=time
    endif
    
    if barclose>bollup AND ABS(time-lasttime)>orderstime then
    mmRENKO = mmRENKO[1]
    else
    mmRENKO = bolldn
    endif
    
    if barclose < mmRENKO then
    SELLSHORT 1 SHARES AT MARKET
    SELL AT MARKET
    lasttime=time
    endif
    

    A funzionare, funziona, nel senso che le operazioni le fa; però non fa quello che vorrei io. Non vorrei aver io sbagliato a inserire bollinger.

    #95243 quote
    robertogozzi
    Moderator
    Master

    Nemmeno io so cosa vuoi fare.

    Hai i riferimenti alle bande, quindi dovrai vereificare se i prezzi sono andati fuori, oppure se sono dentro.

    #95244 quote
    R05
    Participant
    Veteran

    Si Roberto scusa la confusione. Volevo dire non vorrei aver io inserito bollinger all’interno del codice in modo sbagliato. Comunque con il codice che ho riportato io non fa quello che vorrei: a me servirebbe che il prezzo vada fuori Bollinger (ci sia una chiusura fuori, ad esempio un mattoncino verde abbia la parte superiore fuori bollinger) e poi quando c’è l’inversione (quando diventa rosso) mi entri short (in questo caso, essendo il renko, non c’è bisogno che si sia formato definitivamente il mattoncino rosso; anche se temporaneamente il mattoncino diventa rosso e poi sparisce, perchè non si è formato, non fa niente; l’importante è che entri quando ritorna dentro bollinger).

    #95246 quote
    R05
    Participant
    Veteran

    Volevo dire alla fine del discorso nel messaggio di prima, è che l’importante è  che apra la posizione quando rientra dentro bollinger.

    #95261 quote
    robertogozzi
    Moderator
    Master

    Non capisco le righe 31-35 e 43-47, che vuoi fare?

    Ad ogni modo l’ho modificato così (non riesco a provarlo):

    defparam cumulateorders = false
     
    bsize = 5 //renko size in points
    orderstime = 300 //minimum seconds between 2 orders
     
    boxsize = bsize*pipsize
     
    once topprice = close
    once bottomprice = close - boxsize*pipsize*2
    
    ONCE CrossUP = 0
    ONCE CrossDN = 0
    
    if(close > topprice + boxsize*2) THEN
    topprice = close
    bottomprice = topprice - boxsize*2
    barclose=topprice
    ELSIF (close < bottomprice - boxsize*2) THEN
    bottomprice = close
    topprice = bottomprice + boxsize*2
    barclose = bottomprice
    ELSE
    topprice = topprice
    bottomprice = bottomprice
    ENDIF
     
    BBVal  = 20                                             //20   periodi BB
    BBdev  = 2.0                                            //2.0  deviazione BB
    BBavg  = average[BBval](barclose)                       //BB mean (middle line)
    BollUP = BBavg + ((std[BBval](barclose)) * BBdev)       //BB Upper Band
    BollDN = BBavg - ((std[BBval](barclose)) * BBdev)       //BB Lower Band
    
    IF CrossUP = 0 THEN
    CrossUP = barclose > BollUP
    CrossDN = 0
    ENDIF
    IF CrossDN = 0 THEN
    CrossDN = barclose > BollUP
    CrossUP = 0
    ENDIF
    
    IF barclose > BollDN AND CrossDN THEN
    CrossDN = 0
    BUY 1 SHARES AT MARKET   //il BUY chiude automaticamente ogni posizione SHORT aperta
    lasttime=time
    ENDIF
    
    IF barclose < BollUP AND CrossUP THEN
    CrossUP = 0
    SELLSHORT 1 SHARES AT MARKET   //il SELLSHORT chiude automaticamente ogni posizione LONG aperta
    lasttime=time
    ENDIF
    
    if barclose<bolldn AND ABS(time-lasttime)>orderstime then
    mmRENKO = mmRENKO[1]
    else
    mmRENKO = bollup
    endif
     
    //if barclose < mmRENKO then
    //BUY 1 SHARES AT MARKET
    //EXITSHORT AT MARKET
    //lasttime=time
    //endif
     
    if barclose>bollup AND ABS(time-lasttime)>orderstime then
    mmRENKO = mmRENKO[1]
    else
    mmRENKO = bolldn
    endif
    //
    //if barclose < mmRENKO then
    //SELLSHORT 1 SHARES AT MARKET
    //SELL AT MARKET
    //lasttime=time
    //endif
    #95268 quote
    R05
    Participant
    Veteran

    Si Roberto hai ragione, le righe da 31-35 e 43-47 non sono molto chiare; siccome in quelle righe c’erano le medie allora le ho sostituite con bollinger, ma sicuramente ho sbagliato. Non saprei onestamente, ci ho provato

    Comunque ho provato il codice, ma non fa ciò che vorrei. Mi fa aprire una sola operazione dall’8 marzo.

    #95306 quote
    robertogozzi
    Moderator
    Master

    Come ti ha già scritto Nicolas da qualche parte, RENKO non può essere usato su strategie automatizzate.

    Puoi cercare di imitarlo, ma non sarà facile, perché ProOrder basa la propria attività sui tempi, non sui ticks, per cui tu puoi costruire tutti i mattoni renko che vuoi nella tua strategia, ma poi la verifica viene fatta alla chiusura di una normale candela giapponese e tutti i tuoi calcoli non possono che ssere sballati.

    #95308 quote
    R05
    Participant
    Veteran

    Va bene grazie Roberto della disponibilità. Mi arrendo, cercherò di testare altro.

    #95335 quote
    Nicolas
    Keymaster
    Master

    La strategia che Roberto ha codificato è buona. Il problema è che la serie temporale per costruire un indicatore su scatole renko deve anche essere non dipendente dal tempo e senza matrici di dati è molto difficile farlo. È possibile trovare un codice relativo a una media mobile (con molte altre cose) per le scatole Renko in questo thread: Nuovo sistema Renko Per costruire una banda Bollinger completa, la parte più difficile sarebbe calcolare correttamente la deviazione standard su serie di dati non lineari. .

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

Renko + bollinger


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
R05 @r05 Participant
Summary

This topic contains 12 replies,
has 3 voices, and was last updated by Nicolas
6 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 04/01/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...