Stratégie Dax en fonction niveau close de la veille

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #260948 quote
    LifenLifen
    Participant
    Senior

    Bonjour,


    Merci de votre aide par avance pour coder l’algo avec les paramètres suivants. J’ai tenté mais j’ai des bugs !


    Marché dax.

    On définit le niveau de sell : (racine carrée de la close de 17h35 du jour précédent – 0,05) le tout élevé au carré

    On définit le niveau de buy : : (racine carrée de la close de 17h35 du jour précédent + 0,05) le tout élevé au carré

    Tp1 sell = 40 points

    Tp2 sell = 80 points

    Tp3 sell = 120 points


    Tp1 buy = 40 points

    Tp2 buy = 80 points

    Tp3 buy = 120 points


    Sl = 40 points


    Avec une condition en 5 mn :

    Vente : le macd 12,26,9 doit être <0 en cas de vente et il doit être décroissant sur 3 bougies précédentes

    Achat : le macd 12,26,9 doit être >0 en cas d’achat et il doit être croissant sur 3 bougies précédentes


    Peut-on mettre un trailing stop dès que l’ordre est positif de 10 points ?


    Peux-on faire des sorties partielles ? 50% de l’ordre au Tp1 et 25% au tp2 et 25% au tp3 ?


    Cet algo doit se réajuster tous les jours en fonction de la close de la veille


    #260949 quote
    NicolasNicolas
    Keymaster
    Legend

    Voici un premier jet, pas mal pour un Dimanche, à tester et valider point par point:

    Quelques points importants à comprendre avant de l’utiliser :

    • Le système utilise 4 contrats pour permettre les sorties partielles exactes (2 au TP1 = 50%, 1 au TP2 = 25%, 1 au TP3 = 25%). Adapte ce nombre si ton broker impose un minimum ou si tu veux trader en multiples de 4.
    • La close de 17h35 est capturée via OpenTime = 173500. Si ton graphique est en UTC et non en heure locale, tu devras ajuster cette heure (16h35 UTC en été, 15h35 en hiver selon le broker).
    // ============================================================
    // STRATEGIE DAX - NIVEAUX CARRE DE CLOSE 17H35 J-1
    // Timeframe chart : 5 minutes
    // Taille de position : 4 contrats (50% + 25% + 25%)
    // ============================================================
    
    
    DEFPARAM CumulateOrders = False
    
    
    // ------------------------------------------------------------
    // PARAMETRES
    // ------------------------------------------------------------
    SLpts     = 40    // Stop Loss en points
    TP1pts    = 40    // Prise de profit 1 (50% de la position)
    TP2pts    = 80    // Prise de profit 2 (25%)
    TP3pts    = 120   // Prise de profit 3 (25% restant)
    TStrigger = 10    // Trailing stop actif apres +10 pts de profit
    
    
    // ------------------------------------------------------------
    // CAPTURE DE LA CLOSE 17H35 DE LA VEILLE
    // Memorise la close de la bougie 17h35 une seule fois par jour
    // ------------------------------------------------------------
    IF OpenTime = 173500 AND OpenDay <> refDay THEN
        refClose = close
        refDay   = OpenDay
    ENDIF
    
    
    // Calcul des niveaux : sell = (sqrt(refClose) - 0.05)^2
    //                       buy  = (sqrt(refClose) + 0.05)^2
    IF refClose > 0 THEN
        sqrtRef   = sqrt(refClose)
        sellLevel = (sqrtRef - 0.05) * (sqrtRef - 0.05)
        buyLevel  = (sqrtRef + 0.05) * (sqrtRef + 0.05)
    ENDIF
    
    
    // ------------------------------------------------------------
    // MACD 12,26,9 SUR LE TIMEFRAME DU CHART (5 mn)
    // ------------------------------------------------------------
    myMacd = MACD[12,26,9](close)
    
    
    // MACD < 0 et decroissant sur 3 bougies consecutives
    macdBearish = (myMacd < 0) AND (myMacd < myMacd[1]) AND (myMacd[1] < myMacd[2]) AND (myMacd[2] < myMacd[3])
    
    
    // MACD > 0 et croissant sur 3 bougies consecutives
    macdBullish = (myMacd > 0) AND (myMacd > myMacd[1]) AND (myMacd[1] > myMacd[2]) AND (myMacd[2] > myMacd[3])
    
    
    // ------------------------------------------------------------
    // RESET DES FLAGS A LA FERMETURE DE CHAQUE POSITION
    // ------------------------------------------------------------
    IF NOT OnMarket THEN
        tp1Done     = 0
        tp2Done     = 0
        trailActive = 0
        trailSL     = 0
    ENDIF
    
    
    // ------------------------------------------------------------
    // PROFIT COURANT EN POINTS (mis a jour a chaque barre)
    // ------------------------------------------------------------
    IF LongOnMarket THEN
        currentProfit = close - PositionPrice
    ELSIF ShortOnMarket THEN
        currentProfit = PositionPrice - close
    ENDIF
    
    
    // Activation du trailing stop des que le trade est positif de 10 pts
    IF OnMarket AND currentProfit >= TStrigger * PointSize THEN
        trailActive = 1
    ENDIF
    
    
    // ------------------------------------------------------------
    // GESTION DE LA POSITION LONGUE
    // ------------------------------------------------------------
    IF LongOnMarket THEN
    
    
        // Trailing stop : le SL remonte avec le cours, jamais en arriere
        IF trailActive = 1 THEN
            IF trailSL = 0 THEN
                trailSL = PositionPrice + TStrigger * PointSize
            ENDIF
            trailSL = MAX(trailSL, close - TStrigger * PointSize)
            SET STOP PRICE trailSL
        ELSE
            // Stop loss fixe initial de 40 pts
            SET STOP PRICE (PositionPrice - SLpts * PointSize)
        ENDIF
    
    
        // TP1 : 50% = 2 contrats fermes a +40 pts
        IF tp1Done = 0 AND close >= PositionPrice + TP1pts * PointSize THEN
            SELL 2 CONTRACTS AT MARKET
            tp1Done = 1
        ENDIF
    
    
        // TP2 : 25% = 1 contrat ferme a +80 pts
        IF tp1Done = 1 AND tp2Done = 0 AND close >= PositionPrice + TP2pts * PointSize THEN
            SELL 1 CONTRACTS AT MARKET
            tp2Done = 1
        ENDIF
    
    
        // TP3 : 25% restant = 1 contrat ferme a +120 pts
        IF tp2Done = 1 AND close >= PositionPrice + TP3pts * PointSize THEN
            SELL 1 CONTRACTS AT MARKET
        ENDIF
    
    
    ENDIF
    
    
    // ------------------------------------------------------------
    // GESTION DE LA POSITION COURTE
    // ------------------------------------------------------------
    IF ShortOnMarket THEN
    
    
        // Trailing stop : le SL descend avec le cours, jamais en arriere
        IF trailActive = 1 THEN
            IF trailSL = 0 THEN
                trailSL = PositionPrice - TStrigger * PointSize
            ENDIF
            trailSL = MIN(trailSL, close + TStrigger * PointSize)
            SET STOP PRICE trailSL
        ELSE
            // Stop loss fixe initial de 40 pts
            SET STOP PRICE (PositionPrice + SLpts * PointSize)
        ENDIF
    
    
        // TP1 : 50% = 2 contrats fermes a -40 pts
        IF tp1Done = 0 AND close <= PositionPrice - TP1pts * PointSize THEN
            EXITSHORT 2 CONTRACTS AT MARKET
            tp1Done = 1
        ENDIF
    
    
        // TP2 : 25% = 1 contrat ferme a -80 pts
        IF tp1Done = 1 AND tp2Done = 0 AND close <= PositionPrice - TP2pts * PointSize THEN
            EXITSHORT 1 CONTRACTS AT MARKET
            tp2Done = 1
        ENDIF
    
    
        // TP3 : 25% restant = 1 contrat ferme a -120 pts
        IF tp2Done = 1 AND close <= PositionPrice - TP3pts * PointSize THEN
            EXITSHORT 1 CONTRACTS AT MARKET
        ENDIF
    
    
    ENDIF
    
    
    // ------------------------------------------------------------
    // ENTREES : declenchement au croisement des niveaux calcules
    // ------------------------------------------------------------
    IF sellLevel > 0 AND buyLevel > 0 AND NOT OnMarket THEN
    
    
        // SHORT : le close passe sous le niveau sell + MACD bearish
        IF close[1] >= sellLevel AND close < sellLevel AND macdBearish THEN
            SELLSHORT 4 CONTRACTS AT MARKET
            trailSL     = 0
            tp1Done     = 0
            tp2Done     = 0
            trailActive = 0
        ENDIF
    
    
        // LONG : le close passe au-dessus du niveau buy + MACD bullish
        IF close[1] <= buyLevel AND close > buyLevel AND macdBullish THEN
            BUY 4 CONTRACTS AT MARKET
            trailSL     = 0
            tp1Done     = 0
            tp2Done     = 0
            trailActive = 0
        ENDIF
    
    
    ENDIF
    

    Quelques remarques pratiques importantes :

    • Le premier jour de lancement, refClose sera à 0 et aucun trade ne se déclenchera. C’est voulu : il faut qu’une bougie 17h35 soit passée pour initialiser les niveaux.
    • Le trailing stop à 10 points est très serré sur le DAX. Si le trade atteint +10 pts et que le cours revient de 10 pts, il sort immédiatement. Tu peux ajuster TStrigger librement.
    • Les TP partiels sont exécutés au market sur la close de la bougie en backtest. En live ils s’exécuteront sur la prochaine ouverture disponible.
    • Après le TP1 il reste 2 contrats. Le SL et trailing continuent de protéger le reste de la position normalement puisque SET STOP PRICE s’applique à l’ensemble de la position ouverte.
    #260950 quote
    LifenLifen
    Participant
    Senior

    Quelle réactivité ! Un super grand merci Nicolas !! Je vais tester et reviendrai sans doute vers toi avec des questions ou des ajustements !! Bonne fin de dimanche

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

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Stratégie Dax en fonction niveau close de la veille


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Lifen @lifen Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by LifenLifen
4 months, 4 weeks ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 05/10/2026
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...