Prise en compte de volatilité sur Trailing SL ATR

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #214896 quote
    aldtrading
    Participant
    New

    Bonjour, je regardais une vidéo (https://youtu.be/wI462PMq1R0?t=359) qui parle de stratégie de trailing stop loss avec l’ATR qui m’a fait recherché si personne ne s’y était déjà attelé et il semblerait que DocTrading, entre autres, l’ait fait : https://www.prorealcode.com/prorealtime-indicators/atr-trailing-stop/

    Dans la vidéo il explique une version améliorée de l’ATR trailing stop qui semble être de pouvoir prendre en compte la volatilité dans les calculs de l’ATR, est-ce que vous auriez une petite idée de la façon par laquelle ce serait implémentable ?

    #214903 quote
    GraHal
    Participant
    Master

    Vous pouvez essayer ci-dessous

    ATRx = AverageTrueRange[p](close) * (HistoricVolatility[p](close)*200 //remplace la ligne 5 dans le code Docs
    #214907 quote
    aldtrading
    Participant
    New

    Merci mais ça n’a pas l’air d’être ça, pourquoi *200?

    #214908 quote
    GraHal
    Participant
    Master

    pourquoi *200

    Vous pouvez optimiser ci-dessus pour obtenir les meilleurs résultats avec le code Doc, mais ci-dessus doit être un grand nombre car la volatilité historique est, la plupart du temps, un très petit nombre, par exemple 0,01.    

    #214909 quote
    Nicolas
    Keymaster
    Master

    Selon le document auquel il se réfère dans son analyse:

    2.3.7. Conseiller expert MACD avec zone de barrière ATR glissante et variable
    Le prix d’un actif peut présenter une variabilité plus ou moins importante au fil du temps, ce qui reflète la valeur de l’ATR. Dans les cas précédents, les barrières ATR étaient d’une portée constante, calculée avec la valeur ATR au moment de l’ouverture d’une position. L’utilisation de la dernière valeur ATR pour former une fenêtre ATR avec une plage variable dans le temps pourrait empêcher le conseiller expert de sortir prématurément d’une position dans les périodes où la variabilité atteint des sommets et l’aider à suivre les tendances du prix, comme le montre la figure 5 (voir image jointe).

    Donc en gros, c’est un canal de Keltner autour non pas d’une moyenne mobile, mais autour du prix qui a vu le croisement avec le haut ou le bas du canal.

    Ci-dessous le code:

    atrp = 14
    coeff = 2
    
    if barindex>atrp then 
    once iprice=close
    
    if close crosses over hh then 
    r=0
    g=255
    iprice=close
    endif 
    if close crosses under ll then
    r=255
    g=0
    iprice=close
    endif
    
    hh=iprice+AverageTrueRange[atrp](close)*coeff
    ll=iprice-AverageTrueRange[atrp](close)*coeff
    endif
    
    return hh style(dottedline,2)coloured(r,g,0),ll style(dottedline,2)coloured(r,g,0)
    GraHal and aldtrading thanked this post
    jrfm-11-00056-g005.png jrfm-11-00056-g005.png fixed-keltner.png fixed-keltner.png
    #214914 quote
    aldtrading
    Participant
    New

    Super, merci !

    Par contre, en l’essayant je remarque qu’il arrive que le prix sorte du range comme dans la photo ci-jointe.

     

    Est-ce que l’implémentation suivante ne serait pas plus juste ? Elle semble régler le problème :

    atrp = Period
    coef = Multiplicateur
     
    IF BarIndex > atrp THEN
      ONCE iprice = close
     
      IF close > hh THEN
        r = 0
        g = 255
        iprice = close
      ENDIF
    
      IF close < ll THEN
        r = 255
        g = 0
        iprice = close
      ENDIF
     
      hh = iprice + AverageTrueRange[atrp](close)*coef
      ll = iprice - AverageTrueRange[atrp](close)*coef
    ENDIF
     
    RETURN hh style(dottedline,2)coloured(r,g,0), ll style(dottedline,2)coloured(r,g,0)
    

     

    J’ai juste remplacé CROSSES OVER par > et CROSSES UNDER par <

    Capture.png Capture.png
    #214916 quote
    JS
    Participant
    Veteran

    Je dis probablement la même chose que Nicolas mais il semble que le SL recalcule maintenant chaque barre en fonction du prix de la position (PositionPrice of crossing MACD) plus/moins l’ATR au lieu d’une valeur ATR fixe…

    If MACDSignal[27,280,28](close) Crosses Over MACDline[27,280,28](close) then
    Buy 1 contract at Market
    EndIf
    If MACDSignal[27,280,28](close) Crosses Under MACDline[27,280,28](close) then
    SellShort 1 contract at Market
    EndIf
    
    ATRPSL=PositionPrice + 3*AverageTrueRange[24](Close)
    ATRMSL=PositionPrice - 3*AverageTrueRange[24](Close)
    
    GRAPHONPRICE(ATRPSL)Coloured("RED")
    GRAPHONPRICE(ATRMSL)Coloured("RED")
    aldtrading thanked this post
    Scherm­afbeelding-2023-05-19-om-12.58.11.png Scherm­afbeelding-2023-05-19-om-12.58.11.png
    #214922 quote
    aldtrading
    Participant
    New
    Il me semblait avoir compris aussi quelque chose comme ça après avoir lu le papier mais je pensais que la prise en compte de la volatilité était quelque chose de plus complexe que juste recalculer avec la position actuelle et l’ATR.. Il faut croire que je cherchais trop compliqué
    #214923 quote
    JS
    Participant
    Veteran

    C’est vrai, c’est tout ce que c’est… recalculer le SL sur la base de l’ATR introduit une forme de volatilité… (ATR est une forme spécifique de volatilité)

    #215000 quote
    Nicolas
    Keymaster
    Master
    Je viens de re survoler le papier et on y parle uniquement de l’ATR pour mesure la volatilité. Soit la moyenne de la taille des bougies. Le  code la stratégie de JS est correct selon moi.
    aldtrading thanked this post
Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.

Prise en compte de volatilité sur Trailing SL ATR


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
aldtrading @aldtrading Participant
Summary

This topic contains 9 replies,
has 4 voices, and was last updated by Nicolas
2 years, 9 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/18/2023
Status: Active
Attachments: 4 files
Logo Logo
Loading...