Multitimeframe
Forums › ProRealTime forum Italiano › Supporto ProOrder › Multitimeframe
- This topic has 7 replies, 2 voices, and was last updated 5 years ago by robertogozzi.
-
-
04/03/2019 at 11:07 AM #95390
Gent.mi l’idea che ho è la seguente: prendo in considerazione sul time frame a 30 minuti solo quei massimi che superano la banda di bollinger: nell’esempio allegato nel file massimo abbiamo un massimo alle ore 10; il mio punto di partenza è questo, nel senso che se devo fare qualcosa, la faccio dalle 10 in poi e solo short e solo quando il prezzo una volta salito sopra questo massimo lo ritesta. Ora, non potendo automatizzare in un unico time frame (infatti nella candela successiva va sopra e poi riscende, ma con l’unico time frame mi aprirebbe l’operazione alle 11), mi sposto su un time frame più piccolo.
L’altro time frame che stavo prendendo in considerazione è 1 minuto: dalle 10:30 il prezzo sale sopra il massimo delle 10 sul time frame a 30 minuti, poi nella candela delle 10:38 chiude sotto il massimo in questione; in questo momento aprirò una posizione short con stop sopra il massimo avuto a quel momento. Vi allego il file 1 minuto: la freccia nera lunga individua il massimo del time frame dalle 10 alle 10:30; il prezzo sale e poi alle 10:38 chiude sotto il massimo del time frame 30 minuti. Entrerò short li.
Viceversa per il long.
04/03/2019 at 11:24 AM #95393Vorrei specificare meglio: a 1 minuto il prezzo deve salire sopra il massimo a 30 e avere una candela che chiuda sopra; poi successivamente deve formarsi una candela che chiuda sotto il massimo in questione: solo allora aprirò una posizione short. Ad esempio se, per il caso di prima, avessi avuto alle 10:31 una candela che andava sopra il massimo e chiudeva sotto il massimo stesso nella stessa candela, non veniva presa in considerazione nessuna operazione.
04/03/2019 at 11:30 AM #95396Posta il codice che hai già per un unico TF e poi te lo modifico per la versione MTF.
04/03/2019 at 11:58 AM #95401Grazie Roberto, gentilissimo. Credo che uno dei problemi che non sono riuscito a risolvere, sia quello di entrare in posizione quando la candela a 1 minuto, per il caso long, chiuda prima sopra il massimo e poi successivamente in un’altra candela chiuda sotto il massimo stesso.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748defparam cumulateorders=falsedefparam flatbefore = 090000defparam flatafter = 173000// Condizioni per entrare long//time frame 30 minutitimeframe(30 minutes,updateonclose)indicator2 = Bollingerdown[20](close)c2 = low<indicator2//time frame 1 minutotimeframe(default)q = closeq2= lowif c2 and q > c1 and q2 < c2 thenbuy 1 CONTRACT AT MARKETENDIFif low <= c2 thenStopLoss = abs(low[1] - c2) / pipsizeSET STOP pLOSS StopLossSET TARGET pPROFIT 15endif//Condizioni per entrare short//time frame 30 minutitimeframe(30 minutes,updateonclose)indicator1 = BollingerUp[20](close)c1 = high>indicator1//time frame 1 minutotimeframe(default)i = closei2= highif c1 and i < c1 and i2 > c1 thensellshort 1 CONTRACT AT MARKETENDIFIF high >= c1 THENStopLoss = abs(high[1] - c1) / pipsizeSET STOP pLOSS StopLossSET TARGET pPROFIT 15SELLSHORT 1 CONTRACT AT high[1] stopENDIF04/03/2019 at 2:41 PM #95416Voglio farti rilevare:
- alle righe 18 e 39 tu fai confronti con c1 e c, ma queste due variabili sono di tipo logico, non contengono prezzi, mas olo 0 o 1
- dopo le righe 11 e 32 devi salvare, se le condizioni sono vere, i valori di quei minimi e massimi, per poterli utilizzare successivamente
Comunque ti sto facendo le modifiche, tra poco posto la versione aggiornata.
1 user thanked author for this post.
04/03/2019 at 2:47 PM #95417Ecco la versione modificata:
12345678910111213141516171819202122232425262728293031323334defparam cumulateorders=falsedefparam flatbefore = 090000defparam flatafter = 173000timeframe(30 minutes,updateonclose)indicator2 = Bollingerdown[20](close)// Condizioni per entrare longc2 = low<indicator2IF c2 THENMinimo = lowENDIF//Condizioni per entrare shortindicator1 = BollingerUp[20](close)c1 = high>indicator1IF c1 THENMassimo = highENDIFtimeframe(default) //time frame 1 minuto// Longif c2 and low CROSSES OVER Minimo THENbuy 1 CONTRACT AT MARKETStopLoss = abs(low[1] - Minimo) / pipsizeSET STOP pLOSS StopLossSET TARGET pPROFIT 15endif//Shortif c1 and high CROSSES OVER Minimo THENsellshort 1 CONTRACT AT MARKETStopLoss = abs(high[1] - Massimo) / pipsizeSET STOP pLOSS StopLossSET TARGET pPROFIT 15SELLSHORT 1 CONTRACT AT high[1] stopENDIF04/03/2019 at 4:01 PM #95419Grazie Roberto lo sto provando. Alla riga 28 ho modificato minimo con massimo, spero di non aver sbagliato.
Per il resto ho riscontrato due errori:
- alle volte fa aprire delle operazioni sbagliate, che non dovevano essere aperte (ho allegato la foto)
- lo stop loss non è corretto: non lo metto sul massimo o minimo del 30 minuti
04/03/2019 at 4:14 PM #95423Per la riga 28 hai fatto bene, è stata un mia svista.
Per le operazioni che non vanno bene specifa lo strumento, è il DAX?
Dove lo vuoi calcolare lo SL?
-
AuthorPosts