Je souhaite empêcher un algo de prendre position après 23h le vendredi et avant minuit le dimanche car sinon l'ordre est rejeté "marché fermé" et l'algo plante.
Je pense écrire la condition comme çà :
IF (CurrentDayOfWeek < 5) or ((CurrentDayOfWeek = 5) and (CurrentHour < 23))
Est-ce bon sachant que le backtest me donne un résultat un peu différent ?
Merci.
Question Restriction horaire
-
trappiste73
- Membre du Conseil Jedi
- Messages : 5208
- Enregistré le : 08 déc. 2016 11:38
-
trappiste73
- Membre du Conseil Jedi
- Messages : 5208
- Enregistré le : 08 déc. 2016 11:38
Re: Question Restriction horaire
En fait, c'est bien ça (merci au forum d'aide prt).
sous forme de condition à ajouter :
c1 = (CurrentDayOfWeek < 5) or ((CurrentDayOfWeek = 5) and (CurrentHour < 23))
Mais je m'explique pas trop la différence de backtest avec ou sans, les robots rêvent peut-être à leurs heures perdues ?
sous forme de condition à ajouter :
c1 = (CurrentDayOfWeek < 5) or ((CurrentDayOfWeek = 5) and (CurrentHour < 23))
Mais je m'explique pas trop la différence de backtest avec ou sans, les robots rêvent peut-être à leurs heures perdues ?
-
trappiste73
- Membre du Conseil Jedi
- Messages : 5208
- Enregistré le : 08 déc. 2016 11:38
Re: Question Restriction horaire
Tout bien considéré, je reste fidèle à mon principe terrien: ce que je ne comprends pas, je ne fais pas. Donc pas d'ajout de cette condition tant que je n'ai pas élucidé le mystère des backtests différents ...
-
Edd
- Apprenti Jedi
- Messages : 732
- Enregistré le : 10 août 2015 12:36
Re: Question Restriction horaire
Salut, le mystère est que tu ne devrais pas utiliser "Current",
CurrentTime indique l’heure du marché
Time indique l’heure de clôture de chaque barre
donc tes restrictions horaires ne fonctionnent qu'en temps réelles et non en backtest.
Il suffit donc de remplacer dans tes formules :
"CurrentDayOfWeek" par "DayOfWeek[0]" et "CurrentHour" par "Hour[0]"
La fonction "DayOfWeek" ne traite pas le dimanche, uniquement les jours 12345 (doc prt). Sur metatrader 0 c'est dimanche et 6 c'est samedi.
Si tu mets DayOfWeek[0]<5 , le robot va exclure Lu ma mer et jeudi...
Donc peut être cette formule:
c1 =
(DayOfWeek[0]<>1 and DayOfWeek[0]<>2 and DayOfWeek[0]<>3 and DayOfWeek[0]<>4 and DayOfWeek[0]<>5)
or
((DayOfWeek[0] = 5) and (Hour[0]<23))
CurrentTime indique l’heure du marché
Time indique l’heure de clôture de chaque barre
donc tes restrictions horaires ne fonctionnent qu'en temps réelles et non en backtest.
Il suffit donc de remplacer dans tes formules :
"CurrentDayOfWeek" par "DayOfWeek[0]" et "CurrentHour" par "Hour[0]"
La fonction "DayOfWeek" ne traite pas le dimanche, uniquement les jours 12345 (doc prt). Sur metatrader 0 c'est dimanche et 6 c'est samedi.
Si tu mets DayOfWeek[0]<5 , le robot va exclure Lu ma mer et jeudi...
Donc peut être cette formule:
c1 =
(DayOfWeek[0]<>1 and DayOfWeek[0]<>2 and DayOfWeek[0]<>3 and DayOfWeek[0]<>4 and DayOfWeek[0]<>5)
or
((DayOfWeek[0] = 5) and (Hour[0]<23))
-
trappiste73
- Membre du Conseil Jedi
- Messages : 5208
- Enregistré le : 08 déc. 2016 11:38
Re: Question Restriction horaire
Ce qui est louche là dedans, c'est que le cas s'est produit une fois en 2 mois et bien sûr quand je n'avais pas accès à internet ...