Comprendre : Stop suiveur ProRealTime code

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #19816 quote
    HC
    Participant
    Average

    Bonjour,

    Je recherche à comprendre le stop suiveur sur la plateforme ProRealTime en automatique.

    Suite à un précédent message, j’ai bien été orienté (et en remercie encore) vers :

    http://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/

    Ayant beaucoup de lagunes en anglais et meme avec un traducteur, j’essaie de comprendre ce code (que je reproduis ici)

    defparam cumulateorders = false
    
    //order launch (example) would be set to any other entry conditions
    //c1 = close>close[1]
    c2 = close<close[1]
    
    //if c1 then
    //BUY 1 LOT AT MARKET
    //SET STOP PLOSS 50
    //endif
    
    if c2 then
    SELLSHORT 1 LOT AT MARKET
    SET STOP PLOSS 50
    endif
    
    //************************************************************************
    //trailing stop function
    trailingstart = 20 //trailing will start @trailinstart points profit
    trailingstep = 5 //trailing step to move the "stoploss"
    
    //reset the stoploss value
    IF NOT ONMARKET THEN
     newSL=0
    ENDIF
    
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
     IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
      newSL = tradeprice(1)+trailingstep*pipsize
     ENDIF
    //next moves
     IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
      newSL = newSL+trailingstep*pipsize
     ENDIF
    ENDIF
    
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
     IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
      newSL = tradeprice(1)-trailingstep*pipsize
     ENDIF
    //next moves
     IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
      newSL = newSL-trailingstep*pipsize
     ENDIF
    ENDIF
    
    //stop order to exit the positions
    IF newSL>0 THEN
     SELL AT newSL STOP
     EXITSHORT AT newSL STOP
    ENDIF

    J’ai bien compris la variable “trailingstart”, le “trailingstep”

    Mais je ne comprends pas ce à partir des lignes 27 à 37, et surtout où placer les conditions, par exemple :

    // Conditions pour ouvrir une position acheteuse
    indicator1 = MACDline[12,26,9](close)
    indicator2 = ExponentialAverage[9](MACDline[12,26,9](close))
    c1 = (indicator1 CROSSES OVER indicator2)
    
    IF c1 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Conditions pour ouvrir une position en vente à découvert
    indicator1 = MACDline[12,26,9](close)
    indicator2 = ExponentialAverage[9](MACDline[12,26,9](close))
    c1 = (indicator1 CROSSES under indicator2)
    
    IF c1 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    

    La meilleure façon pour apprendre, est de comprendre ce que l’on fait.
    Merci, si il en a qui peuvent me ‘traduire’ le code en langage parlé.

    #19817 quote
    Nicolas
    Keymaster
    Master

    La fonction de trailing stop que j’ai posté dans le blog est “plug and play”, c’est à dire que dans la majorité des cas, un simple copier/coller de l’ensemble de cette fonction, à la fin du code d’une stratégie, suffit à la rendre opérationnelle.

    Dans ce code, tout tourne autour de la variable “newSL” (soit “nouveau stoploss” pour les réfractaires à l’anglais). Le code de décompose selon s’il s’agit d’une ordre d’achat ou de vente (mais je pense que tu l’aurais compris), puisque le stoploss (newSL) ne se placera pas, bien entendu, au même niveau de prix, dans un sens ou dans l’autre. Si tu regardes attentivement ligne par ligne, comment on “joue” avec cette variable (les valeurs qu’on lui donne et les tests que l’on fait avec), je pense que tu devrais arriver à comprendre 🙂 Sinon, appel le 18 (Nicolas le pompier).

    #19973 quote
    HC
    Participant
    Average

    Je vous remercie pour ces explications.

    Je comprends mieux comment positionner les conditions en Haut, puis ce code en copier/coller en fin de stratégie.

    Je comprends maintenant le fonctionnement du code et de la variable NewSL

    Ce code sert aussi bien en position Long que en position Courte

    Je pense qu’on peut traduire la derniere partie par un ” si NewSL est supérieur à 0 alors vendre à newSL, sortir de position short à newSL”

    //stop order to exit the positions
    IF newSL>0 THEN
     SELL AT newSL STOP
     EXITSHORT AT newSL STOP
    ENDIF
Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.

Comprendre : Stop suiveur ProRealTime code


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
HC @hc Participant
Summary

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

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 01/04/2017
Status: Active
Attachments: No files
Logo Logo
Loading...