Bonjour,
Je lance mon programme de trading avant l’ouverture du marché pour qu’il puisse prendre position dès l’ouverture si les conditions sont favorables. Mais même si ProOrder m’indique que mon programme est actif avant l’ouverture, il ne prend pas de position alors que toutes les conditions sont remplies. J’ajoute qu’en ProBacktest le programme fonctionne et prend des positions. Ai-je loupé quelque chose ?
Merci à tous pour votre aide.
Le code est lu à la fermeture de la bougie, donc si la bougie sur laquelle tu lances le code est déjà fermé, alors le code sera lu à la bougie suivante, donc celle sur laquelle tu souhaites intervenir.
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
DEFPARAM PRELOADBARS = 0
IF OpenDate = 20190512 THEN // Pour prendre position le dimanche soir
IF IntradayBarIndex = 0 THEN
Compteur = 0 // Pour compter le nbre de prises de position
ENDIF
IF MyConditions AND Not OnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIF
.
.
.
Bonsoir Nicolas,
Quelques précisions sur le début de programme ci-dessus : je souhaite prendre position le dimanche soir à l’ouverture du forex.
J’ai bien prévu que mon code sera lu à la fin de la 1ère bougie et que la prise de position se fera sur la 2ème bougie. Chaque dimanche j’actualise la variable OpenDate. Une seule position sera prise sur la journée. La variable compteur gérera cet aspect.
Merci pour votre aide
Cet exemple fonctionne sur les graphiques intraday, mais pas en Daily, je cherche pourquoi ..
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
myconditions=1
IF openDate = 20190512 THEN // Pour prendre position le dimanche soir
if MyConditions AND Not OnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIF
endif
graph openDate = 20190512
La condition “openDate = 20190512” est pourtant bien remplit, une position devrait s’ouvrir le Lundi matin selon moi. Je vais continuer mes recherches.
En attendant, cette solution peut fonctionner (merci à Roberto avec qui j’en ai discuté)
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
sell at market
myconditions=1
//IF openDate = 20190512 THEN // Pour prendre position le dimanche soir
If OpenDayOfWeek = 7 THEN
if MyConditions AND Not OnMarket THEN
BUY 1 CONTRACT AT MARKET
ENDIF
endif
//graph openDate = 20190512
graph opendayofweek
On teste ici simplement le numéro du jour de la semaine, soit le dimanche (numéro 7 dans ProBacktest/ProOrder).
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
DEFPARAM PRELOADBARS = 0
IF OpenDayOfWeek = 7 THEN // Pour prendre position le dimanche soir
IF IntradayBarIndex = 0 THEN
Compteur = 0 // Pour compter le nbre de prises de position
ENDIF
IF MyConditions AND Not OnMarket THEN
BUY 0.01 CONTRACT AT MARKET
ENDIF
.
.
.
Merci Nicolas et Roberto pour vos avis éclairés. J’ai essayé en temps réel en Paper Trading, sans succès, la modification visible ci-dessus. Pourtant ce programme fonctionne très bien en ProBackTest.
N’y aurait-il pas une autre raison que le programme lui-même ? Je l’ai lancé sur plusieurs paires en même temps en m’assurant que le montant total investi est compatible avec le solde de mon compte de Paper Trading. J’ai utilisé pour cela des micro-lots dans le programme et dans la fenêtre de validation de ProOrder. J’ai également configuré le nombre d’ordres maxi. Y aurait-il une autre raison qui m’échappe ?
Toute suggestion est la bienvenue. Merci à tous.