Ottimizzazione codice
Forums › ProRealTime forum Italiano › Supporto ProOrder › Ottimizzazione codice
- This topic has 20 replies, 2 voices, and was last updated 7 years ago by keemax73.
-
-
08/21/2017 at 12:44 PM #44295
Ciao a tutti, ho per la prima volta creato questo codice che lavora sul dax con tf a 5min. :
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556// 5min. dax con spread ad 1// 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 = 080000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 220000// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0mom = 12 //default 10mom2 = 8 //defaul 5mom3 = 30 //dafault 30mom4 = 5 //default 5// Condizioni per entrare su posizioni longindicator1, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)c1 = (indicator1 > 10)ignored, indicator2 = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)c2 = (indicator2 <= 19)IF (c1 AND c2) AND not daysForbiddenEntry THENBUY 2 CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni longindicator3, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)c3 = (indicator3[1] < 1)IF c3 THENSELL AT MARKETENDIF// Condizioni per entrare su posizioni shortindicator4, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)c4 = (indicator4 <= 0)ignored, indicator5 = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)c5 = (indicator5[1] <= 0)IF (c4 AND c5) AND not daysForbiddenEntry THENSELLSHORT 2 CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni shortindicator6, ignored = CALL "PRC_ATR&Volume adj Momentum"[mom, 0, mom2, mom3, mom4](close)c6 = (indicator6 > 0)IF c6 THENEXITSHORT AT MARKETENDIF// Stop e targetSET STOP pLOSS 15SET TARGET pPROFIT 45Vi chiedo aiuto perché non riesco a trovare un modo per poterlo ottimizzare in quanto capita che l’ingresso sia ottimo ma l’uscita non porti poi benefici sperati. Nel senso vorrei trovare un modo di inserire un stop in pari se il trade è in positivo dopo n candele o se sono già in guadagno di n € (una variabile da definire) mantenendo anche lo stop fisso e se fosse possibile inserire una specie di trailing per non mangiarmi un possibile guadagno o cmq limitare la possibilità che il trade da positivo torni in pari o persino in negativo. Cosa mi consigliate ?
Grazie a chi mi risponderà.
08/22/2017 at 11:01 AM #4434708/22/2017 at 12:34 PM #4435708/22/2017 at 12:39 PM #4435808/22/2017 at 3:23 PM #44366Ciao, a me 5 minuti mi sembra una complicazione inutile, prova questo a 15 minuti con trailing stop
compra quando l’indicatore è >0 e vende quando è<0…. è semplice con molti errori ma è più profittevole, poi ci lavori sopra
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Condizioni per entrare su posizioni long
indicator1, ignored = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c1 = (indicator1 >= 0)IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF// Condizioni per entrare su posizioni short
indicator2, ignored = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c2 = (indicator2 < 0)IF c2 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF// Stop e target
SET STOP pTRAILING 608/22/2017 at 3:25 PM #4436708/22/2017 at 6:08 PM #4438408/22/2017 at 6:23 PM #44385Porca trota … sul 4 ore è impressionante mentre sul 15 min non da buoni risultati.
C’è da lavorarci.
Il problema è che il probacktest non funziona tick per tick. Oltretutto se provo il test tick per tick fin dove funziona mi uccide il capitale, mentre nell’altro modo no.
Cosa si potrebbe fare ?
08/22/2017 at 7:35 PM #44388Dobbiamo lavorarci su migliorando le posizioni di ingresso priva a fare una stampa del grafico a 4 ore guarda quante ne sbaglia bisogna riparametrare l indicatore atr in modo che sia più reattivo. Oggi in modalità reale mi ha fatto 40 euro in demo ma è stato un caso fortuito… direi di mandare avanti il 4 h se sei d accordo
08/22/2017 at 9:50 PM #44395Si, credo che il 4 h sia la soluzione migliore. Credo che possa essere una buona strategia 😉
L’unico punto è che io non dispongo della cifra iniziale che viene impostata in automatico quando si crea una nuova strategia.
Quindi, per quanto mi riguarda, la strategia dovrebbe essere profittevole con una partenza di 1000 euro e uno spread impostato a 1.
Inoltre in altre strategie io imposto normalmente questi “paletti” :
123456789// 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 = 080000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 220000// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0Se sei d’accordo, procederei così.
Grazie per la tua disponibilità.
08/23/2017 at 11:13 AM #44420ok
per il dax eur 5 mini uso capitale 10.000 e spread 2 punti (perché sarebbe 1 punto ma i costi extra ci sono sempre). Basta che per qualsiasi motivo ti apra 2 posizioni e fai in fretta ad avere 5000 euro di margine richiesto.
Ho provato modificando indicatore con avg type=5, così è più reattivo
dobbiamo fare in modo che rimanga di più a mercato , aumentando il numero barre
Ti ho allegato un’immagine che rappresenta il problema dell’inversione di tendenza che dobbiamo risolvere ; vedi rettangoli, il sistema entra ancora short quando è diventato long e viceversa….
08/23/2017 at 11:15 AM #4442208/23/2017 at 11:17 AM #4442308/23/2017 at 11:18 AM #44424// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Condizioni per entrare su posizioni long
indicator1, indicator2 = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c1 = (indicator1 > indicator2)IF c1 AND not daysForbiddenEntry THEN
BUY 1 CONTRACT AT MARKET
ENDIF// Condizioni per entrare su posizioni short
indicator3, indicator4 = CALL “PRC_ATR&Volume adj Momentum”[10, 0, 5, 5, 30](close)
c2 = (indicator3 < indicator4)IF c2 AND not daysForbiddenEntry THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF// Stop e target
SET STOP pTRAILING 608/23/2017 at 1:52 PM #44444Il taglio profitti è voluto in quanto dalle 8 alle 22 lo spread è di 1 mentre nelle altre fasce orarie lo spread cambia almeno per quanto riguarda il dax.
Ho trovato questa tabella che indica i vari costi : https://www.ig.com/it/indici-costi-margini
Devo premettere che non sono molto forte in programmazione e quindi sono un pò lento nel capire le variazioni al codice.
Non è da molto che mi sono “buttato” in questo nuovo vortice 🙂
-
AuthorPosts
Find exclusive trading pro-tools on