Non capisco perchè non funziona come mi aspetto il codice con ottimizzazione.
L’unico che può darti una risposta sei tu stesso, a meno che non posti il codice completo e funzionante (sia testo che il file ITF, se possibile) dicendo che ottimizzazioni vuoi fare e dove, secondo te, non funzionano.
hai perfettamente ragione, non riuscivo ad allegare un file ne ad inserire il codice
DEFPARAM CumulateOrders=False
//OTTIMIZZAZIONE:
//DOE da 1 a 5
//Step 1
// Si compra il giorno
// 1=lunedì 2=martedì 3=mercoledì 4=giovedì
IF NOT ONMARKET and DayOfWeek=DOE then
BUY 1 CONTRACT AT MARKET
ENDIF
// Si vende il gg successivo
IF LONGONMARKET and (DayOfWeek >=DOE+1) and (Day>Day[1]) then
SELL 1 CONTRACT AT MARKET
ENDIF
JSParticipant
Senior
Ciao,
Quando ottimizzi il codice con la variabile DOE, ottieni (solo) quattro risultati:
uno per quando hai comprato di lunedì e gli altri per quando hai comprato di martedì, mercoledì o giovedì…
Ora puoi vedere qual è il giorno ottimale, nel periodo considerato, per comprare…
e per avere il 5° risultato, comprando il venerdì come si può fare?
JSParticipant
Senior
Per includere anche il venerdì nei risultati, puoi ottimizzare “DOE” da 1 a 5 (invece di da 1 a 4)…
se guardi il mio codice ottimizza già come scrivi tu. l’errore è un altro
JSParticipant
Senior
Qual è il “non vato”, cosa non va bene…?
Nel tuo screen, che non avevo visto, l’ottimizzazione per il valore 5 è vuoto.
JSParticipant
Senior
Il fatto che la posizione aperta il venerdì non venga venduta non dipende dall’ottimizzazione, ma dal codice…
Nel codice è indicato che una posizione aperta il venerdì deve essere chiusa il giorno successivo, ma il giorno successivo è sabato (mercato chiuso), quindi la posizione non può essere chiusa…
Puoi modificare facilmente il codice in questo modo:
DEFPARAM CumulateOrders=False
//OPTIMIZATION:
//DOE 1 to 5
//Step 1
// You buy on the day
// 1=Monday 2=Tuesday 3=Wednesday 4=Thursday
IF NOT ONMARKET and DayOfWeek=DOE then
BUY 1 CONTRACT AT MARKET
ENDIF
// It will be sold the following day
If LongOnMarket and DOE=5 and DayOfWeek=1 then
Sell 1 contract at Market
ElsIf LONGONMARKET and (DayOfWeek >=DOE+1) and (Day>Day[1]) then
SELL 1 CONTRACT AT MARKET
ENDIF
Su che TIME FRAME lo fai girare? A me su TF giornaliero continua a dare 0 il lunedì.
JSParticipant
Senior
Puoi utilizzare qualsiasi timeframe “intraday”…
OK ma vorrei capire qual è il motivo che non lo fa funzionare sul daily. Ho uno storico ridotto se scendo in intraday senza versione premium.
tra l’altro c’è qualcosa che non funziona neanche in intraday se guardo il numero di trade che dovrebbe essere più o meno simile nei gg della settimana
JSParticipant
Senior
Ottengo questo risultato per il DAX…