Question Restriction horaire

Forum sur le trading automatique et algorithmique : systèmes, backtests, robots de trading, résultats et limites, code à l'appui.
Avatar du membre
trappiste73
Membre du Conseil Jedi
Messages : 5208
Enregistré le : 08 déc. 2016 11:38

Question Restriction horaire

Message non lu par trappiste73 »

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.
Avatar du membre
trappiste73
Membre du Conseil Jedi
Messages : 5208
Enregistré le : 08 déc. 2016 11:38

Re: Question Restriction horaire

Message non lu par trappiste73 »

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 ?
Avatar du membre
trappiste73
Membre du Conseil Jedi
Messages : 5208
Enregistré le : 08 déc. 2016 11:38

Re: Question Restriction horaire

Message non lu par trappiste73 »

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 ...
Avatar du membre
Edd
Apprenti Jedi
Messages : 732
Enregistré le : 10 août 2015 12:36

Re: Question Restriction horaire

Message non lu par Edd »

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))
Avatar du membre
trappiste73
Membre du Conseil Jedi
Messages : 5208
Enregistré le : 08 déc. 2016 11:38

Re: Question Restriction horaire

Message non lu par trappiste73 »

:merci: Je vais pouvoir affiner les algos.
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 ... :)