Stop suiveur par niveau de prix prédéfinie

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #133981 quote
    Michou973
    Participant
    New

    Bonjour à la communauté
    Je suis débutant en codage et grâce à ProRealCode j’ai pu composer ce petit bout de code. il fonctionne mais j’aimerais améliorer car je suis bloqué sur la modification du code de Nicolas trailing stop.
    J’ai un compte IG à risque limité.
    De la ligne 105 à 116, à pour but de déplacer le stop loss vers les niveaux de prix qui correspond aux différents résistance pivot.
    Pour mieux expliquer mon problème je vous invite à aller sur la journée du 18 mai 2020.
    Après multitude de recherche, je ne comprends pas pourquoi le niveau 2 s’élève à 21164, 80.
    En testant de nouveau sans le niveau 2. Le niveau 3 fonctionne correctement et le niveau 4 ne s’enclenche qu’après la 15ème période de son déclenchement prévu.
    Quelqu’un peut-il m’aider à résoudre ce problème.
    Merci par avance

     

    Ps: comment mettre le cite ProRealCode en français SVP

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = False // Cumul des positions désactivé
    // Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
    DEFPARAM FLATBEFORE = 000000
    // Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
    DEFPARAM FLATAFTER = 214500
    
    //TIMEFRAME(15 minute)      // Unité de Temps (15 minute)
    
    //-----------------------------------------------------------------------------------------------------------------------------------------
    IF dayofweek <> 1 THEN
    Ht = DHigh(1)
    Bs = DLow(1)
    C = DClose(1)
    ENDIF
    
    if dayofweek=5 then
    Htfriday=Dhigh(0)
    BsFriday=Dlow(0)
    CFriday=Dclose(0)
    endif
    if dayofweek=1 then
    Ht = Htfriday
    Bs = BsFriday
    C = CFriday
    endif
     
    Pivot = (Ht + Bs + C) / 3
     
    Res3 = Pivot + ((Ht - Bs)*2)
    ResM3 = Ht+3*((Pivot)-Bs)/2
    Res2 = Pivot + Ht - Bs
    ResM2 = 3*((Pivot)+Ht)/2-Bs
    Res1 = (2 * Pivot) - Bs
    ResM1 = (3*(Pivot)-Bs)/2
    //SupM1 = (3*(Pivot)-Ht)/2
    //Sup1 = (2 * Pivot) - Ht
    //SupM2 = 3*((Pivot)-Bs)/2-Ht
    //Sup2 = Pivot - (Ht - Bs)
    //SupM3 = Bs+3*((Pivot)-Ht)/2
    //Sup3 = Pivot - ((Ht - Bs)*2)
    
    
    //----------------------------------------------------------------------------------------------------------------------------------------
    MME = ExponentialAverage[200](close)  // moyenne mobile exponentielle (long terme)
    MME1 = ExponentialAverage[21](close) // moyenne mobile exponentielle (court terme)
    MME2 = ExponentialAverage[73](close) // moyenne mobile exponentielle (moyen terme)
    
    //************************************************************************
    // Condition pour ouverture
    C1 = (close >= ResM1 AND close[1] < ResM1) // si le prix de cloture est au-dessus de la ResM1 & le prix de la bougie precédante est au-dessous de la ResM1
    C2 = (close > MME)    // Détection tendance à la Hausse (si le prix est au-dessus de la MME 200)
    C3 = (MME1 > MME2)    // Si la moyenne mobile est superieure à la moyenne mobile moyen terme
    
    //  Condition pour fermeture
    niveau1 = ABS(Res1)   // 10581.80   niveau du 18 mai 20
    niveau2 = ABS(ResM2)  // 10617.30   niveau du 18 mai 20
    niveau3 = ABS(Res2)   // 10652.80   niveau du 18 mai 20
    niveau4 = ABS(ResM3)  // 10705.45   niveau du 18 mai 20
    //niveau5 = ABS(Res3)   // 10758.10 niveau du 18 mai 20
    //C30 = (close >= Res1)
    //C32 = (close >= ResM2)
    C31 = (close <= MME2)
    
    
    //************************************************************************
    // Conditions pour OUVRIR une position acheteuse
    IF C1 AND C2 AND C3 THEN  // Détection tendance à la Haussiere (si le prix est au-dessus de la MME 200)
    BUY 0.6 CONTRACT AT MARKET  // Lancer le trade à l'achat
    SET STOP PLOSS 35  // Stop loss au nombre de point
    //SET TARGET pPROFIT 70
    ENDIF
    
    //************************************************************************
    
    // Condition en cas de Gap
    //C4 = (low - high[1] > 0.0001)
    
    IF open>=ResM1 and open<Res1 and time >= 000000 and time <= 001500 THEN
    BUY 0.6 CONTRACT AT MARKET  // Lancer le trade à l'achat
    SET STOP PLOSS 35  // Stop loss au nombre de point
    ENDIF
    
    // Conditions pour FERMER une position acheteuse
    IF C31 THEN
    SELL AT MARKET
    ENDIF
    
    //trailing stop function
    trailingstart = 27 //trailing will start @trailinstart points profit
    trailingstep = 19 //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
    
    IF CLOSE >= ResM2 AND CLOSE < Res2 THEN
    newSL =  niveau1
    ENDIF
    IF CLOSE >= Res2 AND CLOSE < ResM3 THEN
    newSL = niveau2
    ENDIF
    IF CLOSE >= ResM3 AND CLOSE < Res3 THEN
    newSL = niveau3
    ENDIF
    IF CLOSE >= Res3 THEN
    newSL = niveau4
    ENDIF
    
    
    
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    GRAPH newSL as "trailing"
    #134166 quote
    Nicolas
    Keymaster
    Master

    Point pivot du Lundi (le 18/05), voir si données du Dimanche inclut ou non.

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

Stop suiveur par niveau de prix prédéfinie


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Michou973 @michou973 Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Nicolas
5 years, 9 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 05/31/2020
Status: Active
Attachments: No files
Logo Logo
Loading...