Bonjour,
J’ai un problème sur une stratégie où je demande à ouvrir des positions à l’achat le lundi et le vendredi dès 00h00.
J’ai créé un indicateur pour tout retracer et comprendre le problème mais je pense avoir à faire à un bug.
L’indicateur est à 0 le lundi entre minuit et 1h00 au lieu d’être à 1 et il passe à 1 à partir de 01h00.
L’indicateur est à 1 le mardi de 00h00 à 01h00 au lieu d’être à 0.
Si quelqu’un peut me donner une explication, je vous en serais reconnaissant. Là, je deviens chèvre.
//Jours et Horaires d'ouverture de position à l'achatLundiL= OPENDAYOFWEEK=1 AND time > 000200 AND time < 080000
LundiL= OPENDAYOFWEEK=1 AND time > 000000 AND time < 080000
LundiL2= OPENDAYOFWEEK=1 AND time > 100000 AND time < 210000
MardiL=OPENDAYOFWEEK=2 AND time > 050000 AND time < 080000
MardiL2=OPENDAYOFWEEK=2 AND time > 153000 AND time < 200000
MercrediL=OPENDAYOFWEEK=3 AND time > 153000 AND time < 210000
JeudiL=OPENDAYOFWEEK=4 AND time > 050000 AND time < 080000
JeudiL2=OPENDAYOFWEEK=4 AND time > 153000 AND time < 210000
VendrediL=OPENDAYOFWEEK=5 AND time > 000000 AND time < 080000
VendrediL2=OPENDAYOFWEEK=5 AND time > 100000 AND time < 220000
//Jours et Horaires d'ouverture de position à là vente
LundiS=OPENDAYOFWEEK=1 AND time > 100000 AND time < 210000
MardiS=OPENDAYOFWEEK=2 AND time > 153000 AND time < 210000
MercrediS=OPENDAYOFWEEK=3 AND time > 153000 AND time < 210000
JeudiS=OPENDAYOFWEEK=4 AND time > 153000 AND time < 210000
VendrediS=OPENDAYOFWEEK=5 AND time > 000000 AND time < 080000
VendrediS2 = OPENDAYOFWEEK=5 AND time > 100000 AND time < 210000
TimetoTradeL1=LundiL OR LundiL2 OR JeudiL OR JeudiL2 OR VendrediL OR VendrediL2
TimetoTradeL2=MercrediL OR MardiL OR MardiL2
TimetoTradeS1=LundiS OR JeudiS OR VendrediS OR VendrediS2
TimetoTradeS2=MardiS OR MercrediS
return LundiL as "LundiL", LundiL2 as "LundiL2",MardiL as "MardiL", MardiL2 as "MardiL2", MercrediL as "MercrediL",JeudiL as "JeudiL",JeudiL2 as "JeudiL2",VendrediL as "VendrediL",VendrediL2 as"VendrediL2",LundiS as"LundiS" ,MardiS as "MardiS",MercrediS as "MercrediS",JeudiS as "JeudiS", VendrediS as "VendrediS", VendrediS2 as"VendrediS2"
Les bougies UT jour d’un actif sont les mêmes pour tous, où qu’on soit sur la planète, ce qui revient à dire que pour un actif côté H24, la séparation entre 2 dates sur un historique intraday ne tombe pas sur le minuit “local” du fuseau de chacun, mais sur le minuit considéré comme celui le plus approprié par le broker CFD pour le marché considéré.
Je ne les connais pas tous, mais en gros beaucoup d’actifs IG seront à minuit “Londres” plutôt qu’au minuit de chaque pays, d’où ton 1h du matin si tu es dans le fuseau France en regardant un actif “minuit Londres” (même le France40), mais pas tous: par exemple certains instruments CFD liés aux US changent de date à minuit NY plutôt que minuit Londres (6h du matin chez nous)…
Le constat de JC_Bywan est certain.
Si vous avez toujours des soucis, peut-être le mieux c’est d’envoyer une console au service technique de ProRealTime.
Pour cela, après avoir exécuté le code :
- Allez dans le menu “Aide” de ProRealTime
- Cliquez sur “Centre d’aide” puis sur “Je rencontre un problème technique”
- Choisissez la catégorie “Trading Automatique”
- Indiquez le nom du code concerné
- Pour profiter d’une assistance, cochez la case “J’autorise le déchiffrement des codes (…)”
- Expliquez dans la zone de texte la problématique que vous rencontrez en ajoutant l’instrument d’exécution et l’unité de temps d’exécution.
- Cliquez sur “Envoyer rapport”
Bonjour,
Je vous remercie pour vos réponses. Je suis sur le CFD Nasdaq chez IG. J’ai pu constater que les jours changeaient à des heures diverses selon le jour de la semaine.
Le lundi commence à 1h (heure de Paris) du matin tandis que les jeudi et vendredi débutent à 6h du matin. Dur de s’y retrouver.
J’ai trouvé une parade en comptant les bougies après la dernière bougie de cotation d’un jour selon l’UT sur laquelle on opère pour bien débuter au moment voulu.
Pour vous donner une idée et si ça peut servir à d’autres, voici ce que ça donne en UT 2 minutes
IF DAYOFWEEK=5 THEN
STARTL= 0
ENDIF
IF CLOSE > 0 THEN
STARTL=STARTL+1
ENDIF
IF DAYOFWEEK=4 AND TIME=235800 THEN
STARTV=0
ENDIF
IF CLOSE > 0 THEN
STARTV=STARTV+1
ENDIF
LundiL3=STARTL>2 AND STARTL<33
VendrediL3=STARTV>3 AND STARTV<34