Buongiorno,
avrei bisogno di tradurre questo in un codice, chiedo aiuto gentilmente:
If openday > openweekly Then//(open del lunedi)
buy 1 contract at market
endif
Quindi il sistema partirebbe dal martedi perchè deve vedere se la open del martedi (poi la open del mercoledi….poi del giovedi….poi del venerdi)è maggiore di quella del lunedi (open settimanale)
grazie tante
Massimo
Immagino tu usi il grafico Giornaliero:
ONCE AperturaLunedì = 9999999
IF OpenDayOfWeek = 0 THEN
AperturaLunedi = open
ENDIF
IF Open > AperturaLunedi THEN
BUY 1 Contract at Market
ENDIF
Buongiorno,
innanzi tutto grazie mille Roberto
non mi funziona però
ho corretto togliendo l’accento sul primo lunedì
come mai?
Si, l’accento non è un carattere di testo standard.
Non funziona cosa significa?
Vedo la foto, ma non vedo qual’è l’errore o l’inesattezza.
Prova a usare questo codice su barre di 4h (in realtà basta un timeframe < 1d, ma almeno così ti fai una idea):
if intradaybarindex=0 then
opentoday = open
endif
if intradaybarindex=0 and dayofweek=1 then
openweekly = open
endif
if intradaybarindex=0 and opentoday>openweekly then
buy 1 contracts at market
endif
SET STOP $LOSS 10000
Guarda la foto del secondo allegato, nel primo le frecce di ingresso sono sballate e una volta postato non posso eliminarlo.
Salve Roberto,
nel file vedi la linea orizzontale della apertura settimanale
e le frecce successive indicano che in open ci doveva essere una operazione long(ovviamente partendo dal flat) perchè open >della open settimanale.
un saluto
massimo
Se ti può far comodo l’indicatore che ho usato sul grafico è questo:
if intradaybarindex=0 then
opentoday = open
endif
if intradaybarindex=0 and dayofweek=1 then
openweekly = open
endif
return openweekly, opentoday
Non usare DayOfWeek, che è il giorno della settimana alla chiusura della barra, ma OpenDayOfWeek come nel mio esempio.
Tieni presente che se vuoi l’apertura alle 00:00:00 devi avere una barra che chiuda alle 00:00:00, quindi al massimo 1 ora.
Il mio esempio era per un TF giornaliero.
Se è un altro TF devi usare:
ONCE AperturaLunedì = 9999999
If OpenDayOfWeek = 1 and (OpenDayOfWeek <> OpenDayOfWeek[1]) then
AperturaLunedi = open
ENDIF
IF Open > AperturaLunedi THEN
BUY 1 Contract at Market
ENDIF
Buonasera a tutti e grazie dell’attenzione,
ho allegato file con i problemi che da
in modo tale che sia più immediato spiegarmi
due problemi uno sul istogramma del back test e l’altro che mi fa operazione anche se open è < della open settimanale.
Grazie ancora
Massimo
Varie possibilità (meglio sarebbe sempre allegare il codice usato):
- hai usato DayOfWeek invece di OpenDayOfWeek
- ricordati che sul Daily, se piazzi un ordine il venerdì sarà eseguito alla riapertura settimanale
- la freccia che indica un’entrata in una candela è li sotto perché per forza non si torna indietro nel tempo, ma si basa sulle condizioni esistenti alla chiusura della barra precedente (le strategie sono sempre eseguite alla chiusura di una barra e l’entrata a mercato non può che essere all’inizio della nuova)