Stop sous la bougie d'ouverture de position

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #74358 quote
    Guillaume
    Participant
    New

    Bonjour,

    Je cherche à positionner un stop 1 points sous la bougie précédent l’ouverture d’une position. Je souhaite également utiliser l’écart entre le stop et l’ouverture de la position pour dimensionner mon objectif via un coefficient.

    J’ai essayé la chose suivante sans succès :

    // Stops et objectifs : entrez vos stops et vos objectifs ici
    a=(close[tradeindex+1] -low[tradeindex+1])+1
    
    SET STOP pLOSS a
    SET TARGET pPROFIT 1.25*a

    L’idée étant que la fonction tradeindex permettrait de “fixer” le stop et d’éviter qu’il se déplace à chaque nouvelle bougie.

    Quelque chose doit m’échapper car cela ne fonctionne pas du tout !

    Merci par avance,

    Bien cordialement,

    Guillaume

    #74369 quote
    Nicolas
    Keymaster
    Master

    tradeindex est le numéro de la barre dans l’historique, hors l’instruction Close dans ton cas présent attendrait plutôt un offset (décalage) depuis la barre courante, donc en faisant une différence entre barindex et tradeindex, celui s’incrémentera donc à chaque nouvelle bougie:

     

    offset = barindex-(tradeindex+1)
    a=(close[offset] -low[offset])+1*pointsize

    Ne sachant pas quel instrument est tradé, j’ai également adapté la valeur du point automatique avec une multiplication avec “pointsize”.

    Je n’ai pas testé, confirme nous  que cela fonctionne ! Merci.

    #74380 quote
    Guillaume
    Participant
    New

    Nicolas, merci pour ta réponse. Malheureusement le problème persiste : les stops et targets déclenchés lors du backtest semblent être déterminés de façon “aléatoire”… Je ne parviens pas à déceler la nature de l’erreur.

    Bien cordialement,

    Guillaume

    #74382 quote
    Nicolas
    Keymaster
    Master

    Et en graphant “a”? Cela permet de debugger facilement ses variables lors d’un backtest :

    GRAPH a
    #74392 quote
    Guillaume
    Participant
    New

    J’ai graphé “a” (au passage merci pour l’astuce) et je me suis aperçu que “a” n’est pas constant pendant le trade.

    Se pourrait-il que “offset” ne soit pas offset mais qu’un décalage ait lieu ? Ce serait surprenant mais c’est ma seule piste pour le moment…

    À toute fins utiles, voici mon code :

    DEFPARAM CumulateOrders=false
    
    // Conditions pour ouvrir une position acheteuse
    IF close>open AND close[1]<open[1] AND close[2]<open[2] AND open[2]>open[1] AND open<=close[1] AND close>high[2] THEN
    BUY 1 CONTRACT AT MARKET
    
    ENDIF
    
    // Stops et objectifs : entrez vos stops et vos objectifs ici
    offset = barindex-(tradeindex+1)
    a=(close[offset]-open[offset])
    
    set stop ploss a
    Set target pprofit a*1.25
    
    //graph "a"
    graph a

    Cordialement,

    Guillaume

    #74400 quote
    Nicolas
    Keymaster
    Master

    J’ai volontairement modifié les multiplicateurs dans cet exemple, pour donner du “mou” au trade 🙂

    DEFPARAM CumulateOrders=false
    
    // Conditions pour ouvrir une position acheteuse
    IF close>open AND close[1]<open[1] AND close[2]<open[2] AND open[2]>open[1] AND open<=close[1] AND close>high[2] THEN
    BUY 1 CONTRACT AT MARKET
    
    ENDIF
    
    // Stops et objectifs : entrez vos stops et vos objectifs ici
    offset = max(1,barindex-(tradeindex+1))
    a=(close[offset]-open[offset])
    
    set stop loss a*2
    Set target profit a*4
    
    //graph "a"
    graph a

    On voit que ça fonctionne sur cet ordre par exemple, la valeur du stoploss “a” est correctement calculé et reste identique durant la vie de l’ordre:

    [attachment file=”stoploss offset.png”]

    Cette façon de poser un stoploss est intéressante si on utilise des ordres conditionnels et que l’on ne sait pas quand ils seront envoyés au marché. Cependant dans ton cas, tu aurais également pu faire ainsi (beaucoup plus simple) :

    DEFPARAM CumulateOrders=false
    
    // Conditions pour ouvrir une position acheteuse
    IF close>open AND close[1]<open[1] AND close[2]<open[2] AND open[2]>open[1] AND open<=close[1] AND close>high[2] THEN
     BUY 1 CONTRACT AT MARKET
     set stop loss abs(close[1]-open[1])
     set target profit abs(close[1]-open[1])*1.25
    ENDIF
    
    
    stoploss-offset.png stoploss-offset.png
    #74517 quote
    Guillaume
    Participant
    New

    Merci pour ta réponse, je vais regarder ça !

    Guillaume

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

Stop sous la bougie d'ouverture de position


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Guillaume @guillaume Participant
Summary

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

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