Bonjour,
J’ai une question:
J’utilise un code pour arrêter le passage d’ordre sur une journée quand un profit minimum par jour a été atteint. J’utilise le code suivant :
if days<> days[1] then
myprofit=strategyprofit
achat=1
endif
if strategyprofit - myprofit > 875 then
achat=0
endif
Le code marche bien en backtest (j’utilise la condition achat = 1) mais il y a une différence en mode réel. Aujourd’hui, un ordre a été passé en réel mais pas dans le backtest, avec le même codage. J’avais atteint +1200 euros de profit à 7h05 ce matin (sur le Nasdaq) donc il n’y aurait pas dû avoir de nouvel ordre dans la journée.
Quelqu’un saurait il pourquoi (différence de passage d’ordre entre backtest et réel)? Ou y a t il un problème de codage?
Merci
Emmanuel
Strategyprofit change d’état uniquement lorsque un ordre ferme, peut-être est-ce là la différence ? Le code que tu as partagé est-il en tête du programme ? Le code étant lu de haut en bas, la variable “achat” devrait être modifiée avant le passe d’un nouvel ordre. Difficile de reproduire le problème sans le code complet.
ok. Merci Nicolas. Je te joins le code complet, construit au départ sur des croisements de moyennes mobiles. Je l’ai simplifié en supprimant pas mal de conditions d’achat et de vente que j’utilise aussi sur la base d’indicateurs. Sinon est ce qu’il pourrait s’agir d’une question de fuseau horaire, différent dans le mode Probacktest vs le mode réel?
Merci
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// 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
//declare the strategy on a different timeframe
timeframe(2 hour, default)
indicator01 = MACD[12,26,9](close)
c01 = (indicator01 >= -5.98)
timeframe(30 minute, default)
indicator15 = ExponentialAverage[20](close)
indicator16 = ExponentialAverage[5](close)
c15 = (indicator15 > indicator16)
// Conditions pour ouvrir une position acheteuse
timeframe(5 minute, default)
indicator1 = ExponentialAverage[1](close)
indicator2 = ExponentialAverage[21](close)
c1 = (indicator1 CROSSES OVER indicator2)
if days<> days[1] then
myprofit=strategyprofit
achat=1
endif
if strategyprofit - myprofit > 875 then
achat=0
endif
IF c01 and c15 AND c1 and achat = 1 and not daysForbiddenEntry THEN
BUY 0.5 CONTRACT AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
timeframe(5 minute, default)
indicator8 = RSI[14](close)
c4 = (indicator8 <= 24)
IF c4 THEN
SELL AT MARKET
ENDIF
// Stops et objectifs
nb = barindex - tradeindex
maxprice = highest[nb+1](High)
trailingstop = 45
StopdistanceBreakeven = 29
if not onmarket then
MAXPRICE = 0
priceexit = 0
endif
If longonmarket then
priceexit = maxprice - trailingstop
endif
if longonmarket then
If maxprice >= tradeprice + StopdistanceBreakeven and maxprice < tradeprice + trailingstop then
sell at tradeprice stop
elsif maxprice >= tradeprice + trailingstop then
sell at priceexit stop
endif
endif
SET STOP pLOSS 27
Sur quel timeframe est lancé la stratégie en “réel” et en backtest ? Par ailleurs, qu’appelles-tu “réel”, un ProOrder sur compte démo ou sur un compte réel ? Courtier IG ?
La ligne 37 est inutile.
La stratégie est lancé en UT 5 minutes. En réel, c’est à dire quand la stratégie est activée sur un compte réel. Mais d’ailleurs, je l’ai aussi activée sur compte démo et le passage d’ordre est identique au comte réel. La différence est avec le mode Probacktest.
J’essaie d’ajouter une image à mon message pour montrer les heures différentes de passage d’ordre mais l’image ne s’insère pas…
J’ai un comte IG.
Le poids de l’image est peut être trop important ?
Il faudrait s’assurer que les horaires personnalisées des graphiques sont ceux par défaut.
strategyprofit est dans la devise de l’instrument, la comparaison avec 875 devrait l’être également.
ok. Merci Nicolas. Je vais vérifier les horaires. C’est peut être une question de fuseau horaire entre celui de mon ordinateur (France), celui d’IG à Londres, et celui du Nasdaq aux Etats Unis…
Merci pour ton aide