PROBLEMA CON MULTITIMEFRAME E MEDIA DI HULL
Forums › ProRealTime forum Italiano › Supporto ProOrder › PROBLEMA CON MULTITIMEFRAME E MEDIA DI HULL
- This topic has 14 replies, 2 voices, and was last updated 3 years ago by robertogozzi.
-
-
03/31/2021 at 11:49 AM #165819
Volevo testare gli incroci di tre medie di hull, lenta media e veloce, rispettivamente a 120, 40 e 21 periodi, calcolate su timeframe di 30 minuti, con entrate e uscite su tf 1 minuto, ma quando vado a testare mi da errore.
Allego i codici degli indicatori e del programma,
incroci medie di hull1234567891011121314151617181920212223242526// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivateTIMEFRAME (30 MINUTE,UPDATEONCLOSE)// Condizioni per entrare su posizioni longindicator1 = CALL "HULL 21 MTF"(close)//VELOCEindicator2 = CALL "hull 40 mtf"(close)//MEDIAindicator3 = CALL "hull 120 mtf 30'"(close)//LENTA)LUNGO= indicator1 CROSSES OVER indicator3CORTO= indicator1 CROSSES UNDER indicator3FLETTE = indicator2[3]<indicator2[2] AND indicator2 [2]<=indicator2[1] AND indicator2[1]>indicator2 OR indicator2[3]>indicator2[2] AND indicator2 [2]>=indicator2[1] AND indicator2[1]<indicator2TIMEFRAME (DEFAULT)IF LUNGO THENBUY AT MArketendifif longonmarket and flette thensell at marketendif123TIMEFRAME (30MINUTE,UPDATEONCLOSE)VELOCE= HULLAVERAGE[21]RETURN VELOCE123timeframe (30minute, updateonclose)MEDIA= HULLAVERAGE[40]RETURN MEDIAnon sapendo come inserire questi indicatori nel codice, ho utilizzato l’interfaccia semplificata, e poi ho completato il codice.
Dove è il problema?
123timeframe (30 minute,updateonclose)LENTA = HULLAVERAGE[120]RETURN LENTA03/31/2021 at 12:14 PM #16582303/31/2021 at 12:33 PM #16583303/31/2021 at 2:58 PM #16585103/31/2021 at 3:50 PM #165852Senza gli indicatori non posso fare prove.
Sono 3 indicatori diversi? Invece di cambiare i periodi della media sono stati fatti 3 indicatori separati?
Per richiamarli si usa CALL, ma non sono sicuro che quella riga sia corretta.
03/31/2021 at 4:00 PM #165853Dopo il codice del sistema ho gia allegato i tre brevi codici delle medie di hull a 21, 40 e 120 periodi. Si, ho messo tre indicatori diversi, con tre codici, perchè speravo che mi fosse più semplice richiamarli con l’interfacccia di programmazione semplificata, anche se mi vengono richiamati brutti, tipo “indicator, indicator1,indicator” “indicator,indicator, indicator2″….
Dove posso trovare spigazioni sull’uso della funzione”call” e sulla sua sintassi?
03/31/2021 at 4:34 PM #165862Per CALL basta che cerchi la parola CALL nel forum utilizzando la casella di ricerca che si apre quando passi col mouse sopra il tuo avatar, oppure https://www.prorealcode.com/prorealtime-documentation/.
Eventualmente allega i 3 file ITF.
Prova a togliere dal nome “hull 120 mtf 30′” l’apostrofo simbolo dei minuti (ovviamente non devi toglierlo solo dal nome virgolettato, ma anche dal nome dell’indicatore nel file ITF creato con ProBuilder.
03/31/2021 at 4:39 PM #165863Comunque, visto che la media HULL è predefinita, non usare CALL, usa direttamente HullAverage.
Per usare un indicatore inuna strategia MTF devi usare una variabile diversa per ciascun TF:
12345678Timeframe(4 hour,UpdateOnClose)Hull4 = HullAverage[20](close)//Timeframe(1 hour,UpdateOnClose)Hull1 = HullAverage[20](close)//Timeframe(default)HullDEF = HullAverage[20](close)ed avrai la media HULL, con gli stessi periodi, ma calcolata separatamente per i tre time frame usati.
04/01/2021 at 10:00 AM #165916ho riscritto il codice, l’idea è semplice: ho tre medie di hull, veloce a 21 periodi, lenta a 120 periodi e media a 40, tutte calcolate su tf 30 minuti. All’incrocio verso l’alto della veloce sulla lenta compro, all’incrocio verso il basso vendo, e uso i minimi e massimi locali della media a 40 per le uscite dalle posizioni.
Lo testo sul minidax. Vorrei però che entrate e uscite fossero piu tempestive, poiche le medie sono calcolate sui 30 minuti, gli incroci si verificano solo a chiusura della barra da 30 minuti, e questo non dovrebbe cambiare anche se introduco condizioni multitimeframe.
Infatti, mi penso, se esplicito che le medie siano calcolate con tf a trenta, gli incroci mi scatteranno a chiusura della barra da trenta sia che io metta le condizioni di ingresso a un tf inferiore sia che le lasci a 30 minuti. Ma non è cosi.
Faccio la prova con il codice che allego su dax a un minuto, e se metto le condizioni di entrata e uscita nelle righe prima di timeframe (default) o dopo cambia parecchio.
Vorrei capire perchè prima di passare alle questioni successive.
12345678910111213141516171819202122232425262728293031DEFPARAM CumulateOrders = FalseTIMEFRAME (30 MINUTE,UPDATEONCLOSE)lenta= hullaverage[120](close)media=hullaverage[40](close)veloce= hullaverage[21](close)TIMEFRAME (default)LUNGO= veloce CROSSES OVER lentaCORTO= veloce CROSSES UNDER lentaFLETTE = media[3]<media[2] AND media [2]<=media[1] AND media[1]>media OR media[3]>media[2] AND media [2]>=media[1] AND media[1]<media//minimo o massimo locale hull media//entrate longIF LUNGO THENBUY AT MArketendif//uscite longif longonmarket and flette thensell at marketendif//entrate shortif not onmarket and corto thensellshort at marketendif//uscite shortif shortonmarket and flette thenexitshort at marketendifSpero di essere stato sufficientemente chiaro. Grazie in anticipo
104/01/2021 at 10:05 AM #165917Certo che gli incroci ti scatteranno alla chiusura della barra a 30…. se li metti nel time frame a 30!
Se li metti in quello di default scatteranno secondo il timeframe scelto come default.
Sposta le righe 11 e 12 sopra la 9 e cambierà.
04/01/2021 at 10:54 AM #165920Che cambia l’ho visto, ma non capisco nè il come nè il perchè.
se metto come tf default 30 minuti ovviamente non fa nessuna differenza dove posiziono le condizioni di ingresso e quelle di uscita, e tra il 30 marzo e il primo aprile fa una decina di operazioni.
Se scelgo come default 1 minuto, cambia molto se sposto le condizioni sopra o sotto il tf default. Per l’esattezza cambia solo se sposto le condizioni di uscita.
Quindi mi penso che le condizioni di ingresso, calcolate su medie a 30 minuti, restano le stesse anche su tf 1 minuto, perchè scattano solo a chiusura della barra da 30, all’apertura della barra successiva, che può essere sia da trenta che da un minuto, tanto le aperture coincidono. Invece fa differenza il tf delle condizioni di uscita. Ma non capisco come mai, visto che anche questa media è calcolata su tf 30 minuti. O mi fa differenza dove posizioni sia ingressi che uscite, o nessuna…non capisco.
Comunque, posizionando le condizioni sotto la riga 9, dovrei aspettarmi più operazioni, eventualmente più tempestive, visto che il tf è minore. Invece che entrate e uscite più tempestive, mi fa pochissime operazioni: mi apre e chiude un operazione il 23 marzo , ne apre un’altra, e non la chiude più. Che sta succedendo?
04/01/2021 at 11:41 AM #165924Se usi come default, sul grafico, 3o minuti, in pratica disattivi il Multi Time Frame, in quanto hai un solo time frame.
Con MTF, sul 30 minuti i dati (quindi le condizioni) vengono variati:
- ogni 30 minuti se usi UPDATEONCLOSE
- ad ogni candela del TF di default se usi DEFAULT.
Quindi con UPDATEONCLOSE, i minuti passano ma le condizioni restano invariate. Se, invece usi DEFAULT variano minuto per minuto. Dipende se vuoi che le tue condizioni abbiano la conferma della chiusura oppure no.
Ti consiglio di leggere (magari usando il traduttore Google o DeepL) questo https://www.prorealcode.com/blog/learning/approach-multi-timeframe-trading-prorealtime/.
Puoi anche aggiungere, alla fine del tuo codice, l’istruzione GRAPH per monitorare i dati:
123Graph LUNGOGraph CORTOGraph FLETTEvedrai, nella finestra delle variabili di ProBackTest, i valori che queste variabili hanno barra per barra, quando tici fermi sopra col mouse.
04/01/2021 at 12:19 PM #165929Ti ringrazio molto, ma controllato di nuovo, e se metto il sistema su tf 1 minuto, mi apre e chiude un operazione il 23 marz0, ne apre un’altra, e poi non la chiude più,…. non capisco perchè (sia che lasci updateonclose, sia che lo tolga)
04/01/2021 at 1:02 PM #165935Se usi GRAPH dovresti scoprirne ol motivo.
04/01/2021 at 6:28 PM #165973Come puoi vedere dalla foto, FLETTE è sempre a zero, per cui non può uscire.
Devi modificare la logica delle condizioni.
-
AuthorPosts
Find exclusive trading pro-tools on