Consigli su miglioramento mia prima strategia
Forums › ProRealTime forum Italiano › Supporto ProOrder › Consigli su miglioramento mia prima strategia
- This topic has 8 replies, 3 voices, and was last updated 7 years ago by Alessio.
-
-
11/22/2017 at 8:54 AM #53543
Salve a tutti. Volevo implementare una strategia automatica che sfruttasse il breakout della prima mezz’ora sul DAX. La strategia è quella riportata in questa pagina. http://www.traderpedia.it/wiki/index.php/Il_breakout_dei_primi_30_minuti ; confronto a questa ho scelto di avere uno stop più ampio per lasciare più spazio al mercato.
Sto provando con 1.5 Microlotti.
Ho buttato già del codice (con le mie scarse conoscenze) e di primo acchito i risultati non mi sembrano malaccio. Quale accorgimento potrei inserire per migliorarlo? Sono ancora indeciso se mettere un target oppure sfruttare il solo trailing stopDEFPARAM CumulateOrders = False
DEFPARAM flatafter = 170000n = 1.5
IF Time = 093000 THEN
alto = highest[2](high)
basso = lowest[2](low)
ampiezza = alto – basso
compra = 0
vendi = 0
ENDIFif Time > 093000 AND Time <= 170000 THEN
IF compra = 0 THEN
buy n share at alto stop
ENDIFIF vendi = 0 THEN
sellshort n share at basso stop
ENDIFENDIF
If longonmarket THEN
compra = 1
ENDIFIF shortonmarket THEN
vendi = 1
ENDIFset stop ploss ampiezza pTRAILING ampiezza
11/22/2017 at 9:05 AM #53547Ti prego di usare il tasto “Insert PRT code” indicato con <> sulla barra grigia del post che stai scrivendo, per facilitare la lettura e la comprensione del codice, così:
123456789101112131415161718192021222324252627282930313233DEFPARAM CumulateOrders = FalseDEFPARAM flatafter = 170000n = 1.5IF Time = 093000 THENalto = highest[2](high)basso = lowest[2](low)ampiezza = alto – bassocompra = 0vendi = 0ENDIFif Time > 093000 AND Time <= 170000 THENIF compra = 0 THENbuy n share at alto stopENDIFIF vendi = 0 THENsellshort n share at basso stopENDIFENDIFIf longonmarket THENcompra = 1ENDIFIF shortonmarket THENvendi = 1ENDIFset stop ploss ampiezza pTRAILING ampiezzaAnche per inserire un link c’è il pulsante “insert/edit link”: http://www.traderpedia.it/wiki/index.php/Il_breakout_dei_primi_30_minuti
Roberto
1 user thanked author for this post.
11/22/2017 at 9:09 AM #5354911/22/2017 at 9:12 AM #53550Si, mi sono accorto anche dall’immagine, nel frattempo avevo rimosso quella domanda.
Do un’occhiata.
11/22/2017 at 10:23 AM #53557Innanzitutto la riga 36, contrariamente agli esempi sul manuale, NON è accettata. Solo un ordine di STOP può essere dato contemporaneamente, o PLOSS o PTRAILING, quindi una delle due:
12set stop ploss ampiezza //questa oppure...set stop pTRAILING ampiezza //... questa, ma non insieme!Nel test che ho fatto ho indicato un capitale iniziale di euro 500 come te, ma ho un drawdown di oltre 800 euro, il che significa che sarei andato in Margin Call!
Più piccolo è il capitale più alta è la percentuale di guadagno, ma in reale questo ti porebbe ad azzerare il conto in breve!
Non è molto importante la percentuale di guadagno, quello che importa maggiormante è l’affidabilità nel tempo e la continuità nel generare comunque un profitto, seppure inferiore alle aspettative. Certo la percentuale di guadagno è importante, ma non bruciare il conto lo è di più!
11/22/2017 at 10:26 AM #53558Ho provato ad inserire il Trailing Stop codificato da Nicolas (https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/)
con risultati migliori:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475DEFPARAM CumulateOrders = FalseDEFPARAM flatafter = 170000n = 1.5IF Time = 093000 THENalto = highest[2](high)basso = lowest[2](low)ampiezza = alto - bassocompra = 0vendi = 0ENDIF//************************************************************************//trailing stop functiontrailingstart = 5 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF//************************************************************************if Time > 093000 AND Time <= 170000 THENIF compra = 0 THENbuy n share at alto stopENDIFIF vendi = 0 THENsellshort n share at basso stopENDIFENDIFIf longonmarket THENcompra = 1ENDIFIF shortonmarket THENvendi = 1ENDIF//set stop ploss ampiezza pTRAILING ampiezzaset stop ploss ampiezza//set stop pTRAILING ampiezza11/22/2017 at 10:54 AM #53559Un’altra precisazione, la riga 8 occorre scriverla così per usare STOP pLOSS (la p minuscola sta per Pips), mentre com’è attualmente Ampiezza è la differenza in prezzo, non in Pips. Per il fatto che utilizzi la strategia col DAX e questo ha un valore espresso con 5 cifre il problema non si pone, ma se tu la provassi con altri strumenti otterresti risultati imprevedebili, perché il DAX se fai 13170 – 13151 ti da come risultato 19, che è sia una differenza di prezzo che di pips. Mentre Eur/Usd se fai 1.1770 – 1.1751 ti da 0.0019 che è la differenza in prezzo, non in Pips! Invece, moltiplicando il risultato per PIPSIZE la piattaforma te lo converte automaticamente in Pips:
1ampiezza = (alto - basso) * pipsizealtrimenti non funzionerebbe nemmeno il codice di Trailing Stop che ho aggiunto, perché, come noterai, contiene spesso la parola chiave PIPSIZE (o POINTSIZE che è un sinonimo).
11/22/2017 at 11:28 AM #5356911/25/2017 at 7:09 PM #53951 -
AuthorPosts
Find exclusive trading pro-tools on