Passage d'ordre différent en Backtest et Réel sur profit minimum par jour

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #79263 quote
    Man1012
    Participant
    Junior

    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

    #79279 quote
    Nicolas
    Keymaster
    Master

    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.

    #79295 quote
    Man1012
    Participant
    Junior

    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
    
    
    #79296 quote
    Nicolas
    Keymaster
    Master

    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.

    #79298 quote
    Man1012
    Participant
    Junior

    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.

    #79303 quote
    Nicolas
    Keymaster
    Master

    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.

    #79309 quote
    Man1012
    Participant
    Junior

    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

Viewing 7 posts - 1 through 7 (of 7 total)
  • You must be logged in to reply to this topic.

Passage d'ordre différent en Backtest et Réel sur profit minimum par jour


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Man1012 @man1012 Participant
Summary

This topic contains 6 replies,
has 2 voices, and was last updated by Man1012
7 years, 6 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 08/28/2018
Status: Active
Attachments: No files
Logo Logo
Loading...