Bonjour,
je crée un backtest à partir d’un indicateur (achat le lendemain quand l’indicateur est à 1, sinon vente) en UT daily. Mais les prises de position ne correspondent pas à ce qu’indique l’indicateur (voir image jointe).
- 1: l’achat se fait sur la même barre que l’indicateur, au lieu de respecter “nextbaropen”
- 2: des signaux ne correspondent pas.
Le 2 est du à la fermeture de la bourse la veille (week-end et jours fériés), mais je ne vois pas comment résoudre ces 2 problèmes.
Voici à titre d’exemple le code du backtest :
DEFPARAM CumulateOrders = False
indicateur = CALL "jours"
IF indicateur=1 THEN
BUY 1 SHARES AT MARKET NextBarOpen
else
sell AT MARKET NextBarOpen
ENDIF
et celui de l’indicateur :
if day=2 then
resultat=1
else
resultat=0
endif
return resultat as "resultat"
Quelqu’un aurait’il une idée ?
Merci.
NextBarOpen est une ancienne instruction qui n’est plus nécessaire. Tous les ordres lancés avec ProOrder auront le même comportement : le code est lu au Close de la bougie et les ordres sont lancés au marché à l’ouverture suivante (soit le lendemain donc dans un timeframe daily).
Je n’ai peut être pas bien compris le code, mais pour vendre à découvert il faut utiliser SELLSHORT, SELL est l’instruction pour fermer une position d’achat.
L’instruction “day” est testé à la fin de la bougie, pour connaître le jour qui a vu la bougie s’ouvrir, il convient d’utiliser OPENDAY à la place.
Enfin, pour vérifier les données renvoyées par un indicateur dans ProBacktest, tu peux utiliser la fonction GRAPH:
GRAPH indicateur
Merci pour la réponse Nicolas, surtout un dimanche.
Le problème venait effectivement de day à la place d’openday.
Bonne fin de week-end.