Renko + bollinger
Forums › ProRealTime forum Italiano › Supporto ProOrder › Renko + bollinger
- This topic has 12 replies, 3 voices, and was last updated 5 years ago by Nicolas.
-
-
04/01/2019 at 8:17 AM #95156
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.
12345678910111213141516171819202122232425262728293031323334353637383940414243defparam cumulateorders = falsebsize = 20 //renko size in pointsmmperiod = 20 //moving average periodorderstime = 300 //minimum seconds between 2 ordersboxsize = bsize*pipsizeonce topprice = closeonce bottomprice = close - boxsize*pipsize*2if(close > topprice + boxsize*2) THENtopprice = closebottomprice = topprice - boxsize*2barclose=toppriceELSIF (close < bottomprice - boxsize*2) THENbottomprice = closetopprice = bottomprice + boxsize*2barclose = bottompriceELSEtopprice = toppricebottomprice = bottompriceENDIFmm = average[mmperiod](barclose)if barclose=barclose[1] thenmmRENKO = mmRENKO[1]elsemmRENKO = mmendifif barclose crosses over mmRENKO AND ABS(time-lasttime)>orderstime thenBUY 1 SHARES AT MARKETEXITSHORT AT MARKETlasttime=timeendifif barclose crosses under mmRENKO AND ABS(time-lasttime)>orderstime thenSELLSHORT 1 SHARES AT MARKETSELL AT MARKETlasttime=timeendifSi potrebbe usare il grafico renko in combinazione con le bande di bollinger anzichè con la media? Vi allego ciò che vorrei provare a fare.
04/01/2019 at 8:39 AM #95162Non è 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?
04/01/2019 at 8:53 AM #9517004/01/2019 at 3:30 PM #95225Questa è la definizione delle Bande di Bollinger, dove ho sotituito CLOSE con la tua variabile BARCLOSE
12345BBVal = 20 //20 periodi BBBBdev = 2.0 //2.0 deviazione BBBBavg = average[BBval](barclose) //BB mean (middle line)BollUP = BBavg + ((std[BBval](barclose)) * BBdev) //BB Upper BandBollDN = BBavg - ((std[BBval](barclose)) * BBdev) //BB Lower BandUsa quella invece della media ed è fatto (non l’ho provata).
04/01/2019 at 3:59 PM #95235Grazie Roberto. Ho provato a fare le modifiche e mi è uscito il sistema seguente.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253defparam cumulateorders = falsebsize = 5 //renko size in pointsorderstime = 300 //minimum seconds between 2 ordersboxsize = bsize*pipsizeonce topprice = closeonce bottomprice = close - boxsize*pipsize*2if(close > topprice + boxsize*2) THENtopprice = closebottomprice = topprice - boxsize*2barclose=toppriceELSIF (close < bottomprice - boxsize*2) THENbottomprice = closetopprice = bottomprice + boxsize*2barclose = bottompriceELSEtopprice = toppricebottomprice = bottompriceENDIFBBVal = 20 //20 periodi BBBBdev = 2.0 //2.0 deviazione BBBBavg = average[BBval](barclose) //BB mean (middle line)BollUP = BBavg + ((std[BBval](barclose)) * BBdev) //BB Upper BandBollDN = BBavg - ((std[BBval](barclose)) * BBdev) //BB Lower Bandif barclose<bolldn AND ABS(time-lasttime)>orderstime thenmmRENKO = mmRENKO[1]elsemmRENKO = bollupendifif barclose < mmRENKO thenBUY 1 SHARES AT MARKETEXITSHORT AT MARKETlasttime=timeendifif barclose>bollup AND ABS(time-lasttime)>orderstime thenmmRENKO = mmRENKO[1]elsemmRENKO = bolldnendifif barclose < mmRENKO thenSELLSHORT 1 SHARES AT MARKETSELL AT MARKETlasttime=timeendifA funzionare, funziona, nel senso che le operazioni le fa; però non fa quello che vorrei io. Non vorrei aver io sbagliato a inserire bollinger.
04/01/2019 at 4:44 PM #95243Nemmeno io so cosa vuoi fare.
Hai i riferimenti alle bande, quindi dovrai vereificare se i prezzi sono andati fuori, oppure se sono dentro.
04/01/2019 at 5:09 PM #95244Si 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).
04/01/2019 at 5:11 PM #9524604/01/2019 at 9:26 PM #95261Non capisco le righe 31-35 e 43-47, che vuoi fare?
Ad ogni modo l’ho modificato così (non riesco a provarlo):
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576defparam cumulateorders = falsebsize = 5 //renko size in pointsorderstime = 300 //minimum seconds between 2 ordersboxsize = bsize*pipsizeonce topprice = closeonce bottomprice = close - boxsize*pipsize*2ONCE CrossUP = 0ONCE CrossDN = 0if(close > topprice + boxsize*2) THENtopprice = closebottomprice = topprice - boxsize*2barclose=toppriceELSIF (close < bottomprice - boxsize*2) THENbottomprice = closetopprice = bottomprice + boxsize*2barclose = bottompriceELSEtopprice = toppricebottomprice = bottompriceENDIFBBVal = 20 //20 periodi BBBBdev = 2.0 //2.0 deviazione BBBBavg = average[BBval](barclose) //BB mean (middle line)BollUP = BBavg + ((std[BBval](barclose)) * BBdev) //BB Upper BandBollDN = BBavg - ((std[BBval](barclose)) * BBdev) //BB Lower BandIF CrossUP = 0 THENCrossUP = barclose > BollUPCrossDN = 0ENDIFIF CrossDN = 0 THENCrossDN = barclose > BollUPCrossUP = 0ENDIFIF barclose > BollDN AND CrossDN THENCrossDN = 0BUY 1 SHARES AT MARKET //il BUY chiude automaticamente ogni posizione SHORT apertalasttime=timeENDIFIF barclose < BollUP AND CrossUP THENCrossUP = 0SELLSHORT 1 SHARES AT MARKET //il SELLSHORT chiude automaticamente ogni posizione LONG apertalasttime=timeENDIFif barclose<bolldn AND ABS(time-lasttime)>orderstime thenmmRENKO = mmRENKO[1]elsemmRENKO = bollupendif//if barclose < mmRENKO then//BUY 1 SHARES AT MARKET//EXITSHORT AT MARKET//lasttime=time//endifif barclose>bollup AND ABS(time-lasttime)>orderstime thenmmRENKO = mmRENKO[1]elsemmRENKO = bolldnendif////if barclose < mmRENKO then//SELLSHORT 1 SHARES AT MARKET//SELL AT MARKET//lasttime=time//endif04/01/2019 at 11:37 PM #95268Si 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.
04/02/2019 at 11:21 AM #95306Come 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.
04/02/2019 at 11:31 AM #9530804/02/2019 at 2:13 PM #95335La 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. .
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on