Perché non usi semplicemente il codice in TF H4 o H1?
Perchè non funziona ugualmente
Ciao! Vedo due problemi nel codice: 1) Lunedì è impostato su dayofweek=2, quindi se DOE=1, non vengono aperte posizioni. 2) La condizione di uscita day>day[1] non è vera alla fine del mese. Lo screenshot mostra entrambi i problemi che ho menzionato. Come altri hanno detto, bisogna tenere conto delle festività. Modificando la condizione di uscita, quindi, sembra che il problema si risolva.
Questo codice è per il diario
DEFPARAM CumulateOrders=False
// DOE optimization (2-6 step=1)
IF NOT ONMARKET and DayOfWeek=DOE then
BUY 1 CONTRACT AT MARKET
ENDIF
// Si vende il gg successivo
IF LONGONMARKET and dayofweek<>dayofweek[1] then//(DayOfWeek >=DOE+1) and (Day>Day[1]) then
SELL 1 CONTRACT AT MARKET
ENDIF
//graph day
graph DayOfWeek
grazie prima di tutto, non ho capito che significa “Lunedì è impostato su dayofweek=2”: è la piattaforma che lo codifica così?
Ciò che intendo dire è che il backtest, nel timeframe giornaliero, assegna dayofweek=2 a lunedì. Pertanto, la variabile DOE deve cambiare da 2 a 6. Tuttavia, nel timeframe inferiore, lunedì ha il valore dayofweek=1.
il <> risolve anche il caso del giorno, o dei giorni, di chiusura di borsa successivo all’apertura di posizione. grazie. a volta le cose più semplici ci sfuggono.
JSParticipant
Senior
Avviso per gli utenti dell’istruzione DayOfWeek
Sono state rilevate alcune incoerenze nel comportamento di DayOfWeek all’interno di ProRealTime:
-
ProBackTest – Timeframe giornaliero (1 giorno):
DayOfWeek restituisce lunedì = 2. Tutti i giorni risultano quindi spostati di una posizione.
-
ProBackTest – Timeframe intraday:
DayOfWeek restituisce lunedì = 1, come previsto.
-
Indicatori – Qualsiasi timeframe:
DayOfWeek restituisce anch’esso lunedì = 1, quindi coerente con l’intraday in ProBackTest.
Inoltre, al cambio del mese possono comparire valori errati, con il rischio di ottenere segnali o risultati non corretti.
Queste anomalie sono importanti per chi utilizza logiche basate sui giorni della settimana nei backtest o negli indicatori.
Forse bisognerebbe aggiungere che il giorno feriale ora si estende al giorno feriale successivo alle 6:00. Quindi i sistemi intraday progettati per riconoscere il lunedì possono attivarsi anche il martedì mattina all’1:00. Grazie a PRT.