Transformer un stop pLoss en Stop Profit

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #81546 quote
    fxbravo
    Participant
    Average

    Bonjour à tous,

    J’ai une stratégie basée sur un indicateur sur UT 4H, avec un SL à 35 points et un TP à 100 points.

    La position se ferme par 3 critères:

    • SL touché
    • TP touché
    • Next Bougie 4H qui ne respecte pas l’indicateur (sortie AT MARKET)

    Ma demande est la suivante:

    Je souhaiterais que si la position est en gain de X points (20 par exemple), le SL remonte automatiquement à +Y points (+3 points par exemple).

    Est-il possible de le faire tel quel dans l’UT 4H, où bien est-il possible de se baser sur une autre UT (MTF inside ;)) comme l’UT 15min par exemple, pour exécuter cette condition (du style, IF UT15 = +20 points Then SL=+3)?

    Ci-dessous le code que j’utilise:

    indicator1 = CALL "Signal"(close)
    c1 = (indicator1 = 1)
    
    IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    
    // Conditions pour ouvrir une position en vente à découvert
    indicator3 = CALL "Signal"(close)
    c2 = (indicator3 = -1)
    
    IF c2 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    
    SET stop ploss 35
    set target pprofit 100

     

    Merci d’avance pour votre retour.

     

    Excellente journée.

    #81651 quote
    Nicolas
    Keymaster
    Master

    En effet, on peut le faire dans un timeframe plus petit, pour éviter d’attendre la fin de la bougie de 4 heures pour le faire. Dans ce cas, il faudra lancer la stratégie dans le timeframe le plus petit, ci-dessous le code de ta stratégie modifiée, incluant le breakeven (non testé).

    timeframe(4 hours,updateonclose)
    indicator1 = CALL "Signal"(close)
    c1 = (indicator1 = 1)
    
    IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    
    // Conditions pour ouvrir une position en vente à découvert
    indicator3 = CALL "Signal"(close)
    c2 = (indicator3 = -1)
    
    IF c2 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    
    SET stop ploss 35
    set target pprofit 100
    
    timeframe(1 minute)
    startBreakeven = 20 //how much pips/points in gain to activate the breakeven function?
    PointsToKeep = 3 //how much pips/points to keep in profit above of below our entry price when the breakeven is activated (beware of spread)
    
    //reset the breakevenLevel when no trade are on market
    IF NOT ONMARKET THEN
    breakevenLevel=0
    ENDIF
    
    // --- BUY SIDE ---
    //test if the price have moved favourably of "startBreakeven" points already
    IF LONGONMARKET AND close-tradeprice(1)>=startBreakeven*pipsize THEN
    //calculate the breakevenLevel
    breakevenLevel = tradeprice(1)+PointsToKeep*pipsize
    ENDIF
    
    //place the new stop orders on market at breakevenLevel
    IF breakevenLevel>0 THEN
    SELL AT breakevenLevel STOP
    ENDIF
    // --- end of BUY SIDE ---
    
    // --- SELL SIDE ---
    //test if the price have moved favourably of "startBreakeven" points already
    IF SHORTONMARKET AND tradeprice(1)-close>=startBreakeven*pipsize THEN
    //calculate the breakevenLevel
    breakevenLevel = tradeprice(1)-PointsToKeep*pipsize
    ENDIF
    
    //place the new stop orders on market at breakevenLevel
    IF breakevenLevel>0 THEN
    EXITSHORT AT breakevenLevel STOP
    ENDIF
    // --- end of SELL SIDE ---
    #81656 quote
    fxbravo
    Participant
    Average

    Merci pour ton retour Nicolas!

    Je vais bien essayer de comprendre le code.

    D’ailleurs, j’ai une autre question qui est un peu en rapport avec celle du dessus:

    • J’ai une stratégie sur UT 4H qui à un signal de déclenchement au bout de 1h par exemple. Dans un code classique, le code se déclenchera à la clôture de la bougie si le signal est toujours OK (enfin, il me semble que c’est cette logique qui s’applique). Or, est-il possible de déclencher, via le MTF, la stratégie UT 4H sur l’UT1 Min par exemple?

    Si ça pollue la file, je créerai une autre file pour les réponses.

    Excellente journée à toi.

    #81675 quote
    Nicolas
    Keymaster
    Master

    Oui c’est possible en utilisant les variables/conditions du timeframe 4h dans un timeframe plus petit, tout simplement.

    #81683 quote
    fxbravo
    Participant
    Average

    Merci pour ton retour Nicolas.

     

    Du coup, ça donnerai ça? J’ai bon?

    timeframe(4 hours,updateonclose)
    indicator1 = CALL "Signal"(close)
    c1 = (indicator1 = 1)
     
    IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
     
     
    // Conditions pour ouvrir une position en vente à découvert
    indicator3 = CALL "Signal"(close)
    c2 = (indicator3 = -1)
     
    IF c2 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
     
    timeframe(1 minute,updateonclose) 
    indicator1 = CALL "Signal"(close) c1 = (indicator1 = 1) 
    IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry 
    THEN BUY 1 CONTRACT AT MARKET 
    ENDIF 
    
    // Conditions pour ouvrir une position en vente à découvert 
    indicator3 = CALL "Signal"(close) c2 = (indicator3 = -1) 
    IF c2 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry 
    THEN SELLSHORT 1 CONTRACT AT MARKET 
    ENDIF
     
    SET stop ploss 35
    set target pprofit 100
    
    #81688 quote
    fxbravo
    Participant
    Average

    Autre question subsidière 😉

    • quel est l’UT minimum avec laquelle ProOrder fonctionne parfaitement? Toto le Heros m’avait parlé de UT 1 min. Impossible mettre en 10 Ticks par exemple?
    #81730 quote
    Nicolas
    Keymaster
    Master

    Du coup, ça donnerai ça? J’ai bon?

    Difficile de répondre, je ne connais pas du tout la stratégie, à quoi correspond “signal”, etc..

    ProOrder fonctionne à partir du timeframe 1 sec. Les graphiques en ticks, ça n’est pas encore possible.

    #81738 quote
    fxbravo
    Participant
    Average

    Salut Nicolas,

     

    Merci pour ton retour. Sais-tu quand les sticks seront disponibles pour ProOrder?

     

    Sinon, concernant signal, c’est une stratégie que j’ai codé qui m’envoie juste un “-1” ou “1” en fonction de certains critères.

    Mon besoin est donc:

    • dès que le signal est donné (1 ou -1) sur l’UT 4H (par exemple au bout de 1h21 de durée de la bougie 4H en cours) cela déclenche la stratégie (à la seconde près donc, et pas à la prochaine bougie 4H).

    Pour le moment, cela se déclenche sur la nouvelle bougie 4H, et pas en “temps réel”, ce qui fait perdre en efficacité 😉

    Quand j’ai écrit le code “J’ai Bon?”, je voulais savoir su j’étais sur la bonne piste, à savoir: mettre les conditions d’activation de la stratégie basée sur le signal 1 ou -1 sur l’UT 4H et 1s.

    N’hésite pas à me dire si je n’ai pas été clair sur le besoin que j’ai exprimé.

    #81742 quote
    Nicolas
    Keymaster
    Master

    Ok, sans avoir testé voilà à quoi ça pourrait ressembler:

    timeframe(4 hours)
    indicator1 = CALL "Signal"(close)
     
    timeframe(1 second,updateonclose) 
    IF indicator1=1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN 
     BUY 1 CONTRACT AT MARKET 
    ENDIF 
    
    IF indicator1=-1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN 
     SELLSHORT 1 CONTRACT AT MARKET 
    ENDIF
     
    SET stop ploss 35
    set target pprofit 100

    Dans ce cas de figure, et puisqu’on attend pas la clôture de la bougie de 4h pour prendre un signal, il est fort probable qu’il y ai une multitude de signaux dans ce laps de temps de 4h.

    La stratégie est donc à lancer sur un timeframe de 1 seconde.

    #81828 quote
    fxbravo
    Participant
    Average

    Merci pour ton retour Nicolas.

    Pour éviter le cumul des positions comme tu l’as relevé, il est donc conseillé de rajouter la ligne suivante en début de code je suppose?

    DEFPARAM CumulateOrders = False
    #81865 quote
    fxbravo
    Participant
    Average

    Salut Nicolas, après relecture de mon dernier message, je m’aperçois que je n’avais pas compris ce que tu m’avais dit 😉

     

    Du coup, 2 autres questions me viennent:

    • comment faire pour limiter à X positions consécutives dans la même timeframe UT4h?
    • si la première solution n’est pas faisable, comment faire pour limiter la stratégie à 1 fois par jour? (et le must: si elle est en gain?)

     

    Merci d’avance pour ton retour.

    Excellente fin de journée.

    #81907 quote
    Nicolas
    Keymaster
    Master
    1. incrémenter une variable à chaque prise de position et tester cette quantité avant de rentrer en position
    2. tu trouveras un nombre incalculable de sujet qui en parle, l’outil de recherche est ton ami (j’ai du répondre à ce type de demande .. 100 fois déjà 😉 )
    #81918 quote
    fxbravo
    Participant
    Average

    Bonjour Nicolas,

     

    Merci pour ton retour. Je vais faire chauffer la fonction recherche 😉

     

    Excellente journée.

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

Transformer un stop pLoss en Stop Profit


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
fxbravo @fxbravo Participant
Summary

This topic contains 12 replies,
has 2 voices, and was last updated by fxbravo
7 years, 5 months ago.

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