Utilisation de différents timeframes

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

    Bonjour,

    J’ai un code qui fonctionne bien en UT 5 minutes et que j’aimerais transférer en UT 1 min pour rajouter des conditions de fermeture d’ordre en 1 minute (les différents timeframes utilisés devant être des multiples de l’UT utilisées pour la stratégie)

    La stratégie est basée sur un break out du plus haut atteint le matin entre 8h00 et 9h25 sur le Dax (1 seul ordre par jour)

    Ma question est: quand je transfère mon code en UT 1 min en rajoutant l’indication du timeframe, je n’obtiens pas du tout le même nombre d’ordres passés. Voir le code ci-joint. J’aimerais conserver les conditions d’achat en UT 5 min.

    J’obtiens 71 ordres passés en UT 5 min sur les 5 derniers mois, contre 3 ordres seulement quand j’utilise le même code en UT 1 min avec indication du timeframe.

    Je n’arrive pas à comprendre pourquoi.

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    
    // 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 = 092500
    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 = 213000
    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
    timeframe(5 minute, updateonclose)
    if time = 092500 then
    Maxbox = highest[17](High)
    endif
    
    Jour = barindex - intradaybarindex
    if tradeindex(1) <  Jour then
    achat = 1
    elsif tradeindex(1) >= Jour then
    achat = 0
    endif
    
    if close > maxbox and timeEnterBefore and timeEnterAfter and not daysForbiddenEntry and achat = 1 THEN
    BUY 2 CONTRACT AT market
    endif
    
    
    // Stops et objectifs
    nb = barindex - tradeindex
    maxprice = highest[nb+1](High)
    trailingstop = 25
    StopdistanceBreakeven = 22
    
    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 target pprofit 77
    SET STOP pLOSS 68
    

    Auriez-vous une explication?

    Merci!

    #80145 quote
    Nicolas
    Keymaster
    Master

    Pour débugger sous ProBacktest, il faut utiliser l’instruction GRAPH :

    graph close > maxbox and timeEnterBefore and timeEnterAfter and not daysForbiddenEntry and achat = 1

    ici je graph la condition qui lance un ordre au marché dans la stratégie, on constate qu’il n’y a en effet que peu d’ordres en timeframe 1 minute (voir image).

    Une des variables booléennes de cette chaîne conditionnelle doit bloquer la condition complète. Je te rejoins dans le fait que cette différence notable est incohérente à première vue. Je te laisse regarder qu’elle est la variable qui bloque en les graphant une à une (un peu de pédagogie 😉 )

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

Utilisation de différents timeframes


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Man1012 @man1012 Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Nicolas
7 years, 6 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 09/10/2018
Status: Active
Attachments: 1 files
Logo Logo
Loading...