Sistema intraday
Forums › ProRealTime forum Italiano › Supporto ProOrder › Sistema intraday
- This topic has 8 replies, 2 voices, and was last updated 5 years ago by R05.
-
-
07/31/2019 at 9:55 AM #103852
Gent.mi sto implementando un sistema intraday con le seguenti caratteristiche:
- si usano le candele heikin ashi (per il momento con time frame a 5 minuti ma appena ho il sistema completo farò delle prove anche con altri time frame ed eventualmente altre condizioni) e quando si ha il minimo di giornata si entra long sopra il massimo della candela heikin ashi e, viceversa, quando si ha un massimo di giornata si entra short alla rottura del minimo della candela heikin ashi (vi allego un esempio, file con nome “cattura”).
Il sistema è il seguente ed è tutto ok.
12345678910111213141516171819202122232425262728293031323334// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 173000xClose = (Open+High+Low+Close)/4if(barindex>2) thenxOpen = (xOpen[1] + xClose[1])/2endif// Condizioni per entrare su posizioni longc1 = dlow(0)c2 = lowg1 = (c1=c2)IF g1 THENBUY 1 CONTRACT AT xopen stopENDIF// Condizioni per entrare su posizioni shortc10 = dhigh(0)c20 = highg10 = (c10=c20)IF g10 THENsellshort 1 CONTRACT AT xopen stopENDIF// Stop e targetSET STOP pLOSS 15SET TARGET pPROFIT 15Però vorrei chiedervi due cose:
- la prima, è che vorrei che il massimo e il minimo di giornata da prendere in considerazione siano quelli a partire dalle 8
- la seconda, è che quando si verifica ad esempio il massimo, dovendo entrare short alla rottura del minimo della candela in cui si è verificato, e dato che non sempre alla candela successiva si ha la rottura, si possa usare quella candela per almeno 5 barre successive (vi mostro un esempio per meglio capire; il file è quello col nome “esempio”)
Vi ringrazio.
107/31/2019 at 11:07 AM #103859Le righe 17 e 26 daranno rarissimamente segnali, perché che i valori siano esattamente uguali è quasi impossibile!
A cosa to servono le candele HA se non le usi, tranne per l’entrata?
Perché fai l’entrata sempre sull’open della candela HA, non volevi farlo alla rottura dei minimi/massimi? In tal caso ti manca la definizione di xLow e xHigh.
07/31/2019 at 11:33 AM #103865Si Roberto grazie della risposta.
- L’heikin ashi mi serve per entrare in posizione perchè ho notato che la candela è più ampia di quella corrispondente a candele giapponesi, quindi l’entrata è un pò ritardata ma forse più attendibile (è come se aspettasse una conferma in più).
- Per quanto riguarda xhigh e xlow non so come ricavarli, anche se ho notato che nella stragrande maggioranza dei casi xopen coincide con xhigh o xlow a seconda, mentre il minimo della candela giapponese se è il valore più basso lo è anche per l’heikin ashi, infatti ho modificato il sistema nel seguente modo alle righe 20 e 29.
12345678910111213141516171819202122232425262728293031323334// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 173000xClose = (Open+High+Low+Close)/4if(barindex>2) thenxOpen = (xOpen[1] + xClose[1])/2endif// Condizioni per entrare su posizioni longc1 = dlow(0)c2 = lowg1 = (c1=c2)IF g1 THENBUY 1 CONTRACT AT max(xopen,high)+0.5 stopENDIF// Condizioni per entrare su posizioni shortc10 = dhigh(0)c20 = highg10 = (c10=c20)IF g10 THENsellshort 1 CONTRACT AT min(xopen,low)-0.5 stopENDIF// Stop e targetSET STOP pLOSS 30SET TARGET pPROFIT 18- come ultima cosa, le operazioni le fa, ti allego il file. Le righe 17 e 26 sembrano incongruenti però mi spiego meglio con l’esempio seguente:
c1 = dlow(0)c2 = lowg1 = (c1=c2)Volevo scrivere, in modo sicuramente rozzo, che se c1 è il minimo a quel momento del giorno e c2 è il minimo della candela e quindi coincidono, allora il minimo della candela fatto registrare a quel momento è anche minimo della giornata.Solo così riuscivo a scriverlo, comunque le entrate me le fa giuste (ho allegato anche l’esempio di ieri).07/31/2019 at 11:46 AM #103868Questa è la definizione completa delle candele HA ( > 2 va bene ugualmente):
Heikin-Ashi definition1234567891011121314151617if barindex > 1 thenxClose = (open+close+low+high)/4 //TotalPricexOpen = (xOpen[1]+xClose[1])/2haHigh = Max(xOpen, xClose)haLow = Min(xOpen, xClose)xHigh = Max(High,haHigh)xLow = Min(Low,haLow)xRange = abs(xClose - xOpen)elsexClose = (open+close+low+high)/4 //TotalPricexOpen = (Open[1]+Close[1])/2haHigh = Max(xOpen, xClose)haLow = Min(xOpen, xClose)xHigh = Max(High,haHigh)xLow = Min(Low,haLow)xRange = abs(xClose - xOpen)endifdovrai togliere ciò che non t’interessa. Ad ogni modo, se ti funziona com’è adesso non cambiare niente, almeno finché tutto non va come ti aspetti.
Aggiungere/modificare cose quando ancora c’è qualcosa da risolvere complica sicuramente la vita.
Bene, adesso ho capito che significa quel segno “=”. E’ corretto.
07/31/2019 at 11:56 AM #103872Per il minimo/massimo di giornata dalle 8, puoi scrivere:
12345678// inizia con i nuovi valori alle 8 di ogni giornoIF time = 080000 THENMinimo = low //o xLowMassimo = high //o xHighENDIF// aggiorna i valori ogni candela (alle 8 saranno invariati, uguali a sopra)Minimo = min(Minimo,low) //anche qui puoi usare le HAMassimo = max(Massimo,high) //anche qui puoi usare le HAdopodiche Fai riferimento a questi due valori e non più a DLOW e DHIGH.
Però non devi entrare dopo le 8 almeno, altrimenti ti entra subito, perché alle 8 i valori LOW e HIGH saranno uguali a MINIMO e MASSIMO.
07/31/2019 at 12:03 PM #103873Ti consiglio di usare + 0.5 * pipsize e – 0.5 * pipsize. Perché se lavori solo sul DAX può andare bene anche così, il rapporto Pip/Prezzo è 1:1, ma su altri srumenti può essere 1:10000. Indicando PipSize lasci che se ne preoccupi ProOrder e crei un codice portabile su tutti gli strumenti.
Quanto all’altro punto, quando si verificano le condizioni devi salvarti il prezzo d’ingresso in una variabile, diversa tra Long e Short (e devi metterlo a zero quando sarai a mercato), dopodiché ogni candela piazzi nuovamente l’ordine pendente finché lo vuoi tu, con la condizione:
123IF PrezzoIngressoLong THENBUY 1 CONTRACT AT PrezzoIngressoLong stopENDIF07/31/2019 at 3:46 PM #103895Grazie Roberto, gentilissimo. Ho modificato il sistema come di seguito.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 173000once miopatternlong = 0once miopatternshort = 0IF OnMarket THENmiopatternlong = 0 //resettare la variabile al valore iniziale, se a mercatoENDIFIF miopatternlong THENIF (BarIndex - miopatternlong) > 5 THENmiopatternlong = 0 //resettare la variabile al valore iniziale dopo n candeleENDIFENDIFIF OnMarket THENmiopatternshort = 0 //resettare la variabile al valore iniziale, se a mercatoENDIFIF miopatternshort THENIF (BarIndex - miopatternshort) > 5 THENmiopatternshort = 0 //resettare la variabile al valore iniziale dopo n candeleENDIFENDIFxClose = (Open+High+Low+Close)/4if(barindex>2) thenxOpen = (xOpen[1] + xClose[1])/2endif// inizia con i nuovi valori alle 8 di ogni giornoIF time = 080000 THENMinimo = low //o xLowMassimo = high //o xHighENDIF// aggiorna i valori ogni candela (alle 8 saranno invariati, uguali a sopra)Minimo = min(Minimo,low) //anche qui puoi usare le HAMassimo = max(Massimo,high) //anche qui puoi usare le HA// Condizioni per entrare su posizioni longc1 = minimoc2 = lowg1 = (c1=c2)IF g1 THENmiopatternlong=barindexIngressolong = max(xopen,high)ENDIFif miopatternlong thenBUY 1 CONTRACT AT ingressolong+0.5*pipsize stopendif// Condizioni per entrare su posizioni shortc10 = massimoc20 = highg10 = (c10=c20)IF g10 THENmiopatternshort=barindexIngressoshort= min(xopen,low)ENDIFif miopatternshort thensellshort 1 CONTRACT AT Ingressoshort -0.5*pipsize stopendif// Stop e targetSET STOP pLOSS 30SET TARGET pPROFIT 18Solo una conferma le righe 15 e 24 mi tengono aperta la condizione per le 5 candele successive alla condizione di setup? In allegato ti metto ciò che mi fa il sistema: la prima operazione è corretta, ma le altre successive non le riesco a capire. Praticamente raggiunto il target della prima operazione, che poi è l’unica che dovrebbe essere fatta, mi fa aprire a catena anche le altre.
07/31/2019 at 5:54 PM #103905Si, le righe 15 e 24 sono corrette.
L’altro problema potrebbe essere perché esce sulla stessa barra e OnMarket non ha modo di sapere che è già entrato a mercato per eseguire le righe 12 e 21 e si ferma solo dopo 5 barre.
Prova a modificare le righe 11 e 20 così:
1If OnMarket or STRATEGYPROFIT <> STRATEGYPROFIT[1] Thenin questo modo capisce di essere entrato e uscito perché STRATEGYPROFIT è diverso dalla barra precedente.
08/01/2019 at 8:35 AM #103942 -
AuthorPosts
Find exclusive trading pro-tools on