Bonjour,
J’ai une question car je suis un peu choqué par ce que j’ai vu. Ma stratégie sur le Dow en backtest aujourd’hui a pris 4 trades gagnants et le bot en réel n’a pas pris les trades mais 1 autre qui a été perdant…
Est-ce que cela vous est déjà arrivé ?
Merci pour votre réponse.
Guillaume.
Je viens de faire de test d’une autre stratégie sur le dow, idem, les trades du backtest n’ont pas été pris et un trade a été pris à une autre moment… Si vous avez des billes… Je suis preneur !
Spread inexistant ou mal renseigné dans le backtest peut être ? Ordres conditionnels situés trop près du prix en réel ? (niveau de stop minimal non respecté). Y-a t’il des ordres rejetés dans la liste des ordres ? (CTRL+O).
Bonjour Nicolas,
Je viens de fermer ma plateforme, je regarde cela ce soir et je te dis. Pour le backtest, j’ai mis le spread à 1.
Guillaume.
Ok, mais pour vraiment faire une analyse complète, il faudrait nous soumettre le code de la stratégie.
Bonjour,
J’ai refait un test hier après avoir modifié des < par des crosses x . J’ai re optimisé et apriori le bot a joué le jeu.
Voici le code de la stratégie incriminée:
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
DEFPARAM FLATBEFORE = 153500
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 215500
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiée
noEntryBeforeTime = 153500
timeEnterBefore = time >= noEntryBeforeTime
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 215500
timeEnterAfter = time < noEntryAfterTime
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// Conditions pour ouvrir une position acheteuse
c1 = RSI[13.5] crosses over 77//78
indicator3 = (DHigh(1) + DLow(1) + DClose(1))/3
c2 = (close > indicator3) AND close > average[21](close)
IF (c1 AND c2) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour ouvrir une position acheteuse
c3 = RSI[13.5] crosses over 53//36
indicator3 = (DHigh(1) + DLow(1) + DClose(1))/3
c4 = (close < indicator3) //AND close < average[a](close)//close > average[a](close)
IF (c3 AND c4) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
//
// Stops et objectifs
SET STOP pLOSS 50//50
SET TARGET pPROFIT 50//56
Merci pour le code. Je ne vois rien de choquant dans le code, as-tu vérifié la liste des ordres rejetés ? (il faut commencer par là !). Les conditions horaires sont aussi importantes, d’autant plus si tu as modifié les horaires de trading de ton graphique.
Merci Nicolas. Pas d’ordre rejeté la fois où j’ai vérifié.
Je vais resté vigilant car il faut que je puisse avoir confiance dans mes robots sinon, c’est le suicide ;).