stop à multiple niveaux

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #196088 quote
    ThonyM
    Participant
    New

    Bonjour je suis très nouveau  sur prorealtime et j’ai besoin d’aide pour finir et continuer à améliorer mon système.

    (simple croisement sur un TF.20 secondes)

    mon objectif est de viser petit mais profitable j’ai encore assez de bons résultats mais ma condition de sortie me fait perdre énormément

    C’est pour quoi je me tourne vers vous car je suis à la recherche d’un stop à multiples palier

    (si 5$ de profit déplacement du stop à 1$) si 15=5 / 25=15 / 40=30 etc…

    Ou ci vous avez une autre idée comme conditions de sortie je suis au preneur

    Je vous partage mon code si cela peut aider

    merci énormément pour avoir pris le temps de lire ce poste et merci à celui qui pourra m’aider

    ps. excusez-moi si je ne suis pas dans le bon groupe

    // 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 = 060000
    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 = 223000
    timeEnterAfter = time < noEntryAfterTime
    
    
    // simple croisement
    
    
    // Conditions pour ouvrir une position en vente à découvert
    indicator1 = HullAverage[800](close)
    indicator2 = Average[600](close)
    c1 = (indicator1 CROSSES UNDER indicator2)
    
    IF c1 AND timeEnterBefore AND timeEnterAfter THEN
    SELLSHORT 0.5 CONTRACT AT MARKET
    ENDIF
    
    // Conditions pour fermer une position en vente à découvert
    indicator3 = HullAverage[800](close)
    c2 = (close CROSSES OVER indicator3)
    
    IF c2 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    // Stops et objectifs
    SET STOP pLOSS 20
    
    
    
    
    //--------------------------------------------------------    DAX TF.20 secondes     MAA le 25.06.22
    // ---------------Simple stratégie de croisement
    //
    // 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 ==> timeEnterBefore ==>  06h00
    //
    // 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 ==> timeEnterAfter  ==>  22h30
    //
    //
    // Indicateur N°1 ==> Moyenne Mobile HULL  ==> 800 Périodes
    // Indicateur N°2 ==> Moyenne Mobile Simple   ==> 600 Périodes
    //
    //
    //---------------  Conditions pour ouvrir une position en vente taille 0.5
    //
    // Moyenne Mobile HULL  ==> 800 Périodes
    //   Croise à la hausse
    // Moyenne Mobile Simple   ==> 600 Périodes
    //
    //
    //---------------  Conditions pour fermer une position en vente
    // Quant le prix Croise à la hausse  L'indicateur N°3 ==> Moyenne Mobile HULL  ==> 800 Périodes
    //
    //Stop Loss 10$
    
    DAX-20seg..itf
    #196109 quote
    ThonyM
    Participant
    New

    Je tiens à préciser que le graf est en heikin-ashi

    #196254 quote
    Nicolas
    Keymaster
    Master

    Je n’ai pas bien compris les paliers pour modifier le stoploss, mais voici un exemple pour modifier celui-ci en fonction du gain de ton ordre (+5 points, passer l’ordre à breakeven).

    if traceprice-close >= 5*pointsize then 
     set stop breakeven
    endif
    #196355 quote
    ThonyM
    Participant
    New

    Merci énormément pour m’avoir répondu mais voilà mon objectif serai une évolution du stop façon stop suiveur mais avec IG ce n’est pas possible alors au lieu de suivre à la traîne le prix mon objectif serai que a différents niveaux de profit je puisse déplacer mon stop alors oui une mise à BE et si une évolution serait favorable redéplacer le stop à plus 15$ de profit si le gain est a 25 et continuer le déplacement à 35$ si le gain est a 50 etc.

    Ou si vous avez un bout de code que je puisse le copier et modifier suivent les différents objectifs je suis preneur

    Merci énormément de prendre le temps de me répondre Salutations à vous et à la communauté

    #196380 quote
    Nicolas
    Keymaster
    Master

    (si 5$ de profit déplacement du stop à 1$) si 15=5 / 25=15 / 40=30 etc…

    Ok essayons avec ce type de code:

    defparam cumulateorders=false 
    
    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
    
    if not onmarket then
     newsl = 0
    endif
    
    if rsi[14] crosses over 50 then 
     buy 1.5 contract at market 
     set stop ploss 50
    endif 
    
    if longonmarket then
     ivalue = (abs(countofposition)*pointvalue)*pointsize
     if floatingprofit>=15 then
      newsl = max(newsl,tradeprice+ivalue*5)
     endif
     if floatingprofit>=25 then
      newsl = max(newsl,tradeprice+ivalue*15)
     endif
     if floatingprofit>=40 then
      newsl = max(newsl,tradeprice+ivalue*30)
     endif
    endif
    
    if longonmarket and newsl>0 then
     set stop price newsl
    endif
    
    graphonprice newsl
    #196501 quote
    ThonyM
    Participant
    New

    Bonjour excusez-moi de ne pas vous avoir répondu plutôt mais hélas ça ne fonctionne pas je reste avec des pertes au stop loss même si le prix est dépassé les paliers

    #196524 quote
    Nicolas
    Keymaster
    Master

    ça fonctionne pour moi, il faut pour cela que la condition soit testée bien entendu, vu que le code est lu une seule fois par bougie, il est possible que le stoploss soit tapé car inscrit dans le carnet d’ordres avant que le code ai pu tester les différents niveaux de profit.

    Sur quelle unité de temps as-tu testé ?

    Dans cette version, j’ai ajouté la variable “step” qui est graphé, on voit bien que les différents niveaux qui s’enclenche: 1 puis 2 puis 3, selon l’évolution du gain, bien sûr ça peut être très rapide.

    defparam cumulateorders=false
    
    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
    
    if not onmarket then
    newsl = 0
    step=0
    endif
    
    if rsi[14] crosses over 50 then
    buy 1.5 contract at market
    set stop ploss 50
    endif
    
    if longonmarket then
    ivalue = (abs(countofposition)*pointvalue)*pointsize
    if floatingprofit>=15 then
    newsl = max(newsl,tradeprice+ivalue*5)
    step=1
    endif
    if floatingprofit>=25 then
    newsl = max(newsl,tradeprice+ivalue*15)
    step=2
    endif
    if floatingprofit>=40 then
    newsl = max(newsl,tradeprice+ivalue*30)
    step=3
    endif
    endif
    
    if longonmarket and newsl>0 then
    set stop price newsl
    endif
    
    graphonprice newsl
    graph step
    trailing-profit-palier.png trailing-profit-palier.png
    #196917 quote
    ThonyM
    Participant
    New

    Bonjour / bonsoir elas je ne comprends pas pourquoi je reste avec des positions perdantes alors que de base elle était en gain ( je test le stop à multiples palier avec une simple stratégie de croisement des moyennes possibilité de le faire avec tout les TF) ceci a pour but d’avoir ce bout de code qu il me manque pour mes différentes stratégies

    #196945 quote
    Nicolas
    Keymaster
    Master

    Quel instrument, timeframe et période afin de répliquer le problème stp?

    Ton image n’a pas été uploadé, la taille était trop importante.

    #196972 quote
    ThonyM
    Participant
    New

    je test sur un graf

    DAX

    TF.5min

    150’000 unités

    le trade part sur un gain et fini par une perte

    #196974 quote
    Nicolas
    Keymaster
    Master

    Je vois, j’ai modifié le code pour utiliser la nouvelle instruction SET STOP $PROFIT pour placer un stop profit en monnaie:

    defparam cumulateorders=false
    
    floatingprofit = (((close-positionprice)*pointvalue)*countofposition)/pipsize //actual trade gains
    
    if not onmarket then
    newsl = 0
    step=0
    endif
    
    if rsi[14] crosses over 50 then
    buy 1.5 contract at market
    set stop ploss 50
    endif
    
    if longonmarket then
    if floatingprofit>=15 then
    newsl = 5
    step=1
    endif
    if floatingprofit>=25 then
    newsl = 15
    step=2
    endif
    if floatingprofit>=40 then
    newsl = 30
    step=3
    endif
    endif
    
    if longonmarket and newsl>0 then
    set stop $profit newsl
    endif
    
    
Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.

stop à multiple niveaux


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
ThonyM @thonym Participant
Summary

This topic contains 10 replies,
has 2 voices, and was last updated by Nicolas
3 years, 8 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 06/25/2022
Status: Active
Attachments: 2 files
Logo Logo
Loading...