Stratégie de percée en micro-retracement basée sur le momentum quantitatif

ATR SMA OCA VOLUME
Date de création: 2025-02-19 16:32:46 Dernière modification: 2025-02-19 17:25:25
Copier: 0 Nombre de clics: 335
2
Suivre
319
Abonnés

Stratégie de percée en micro-retracement basée sur le momentum quantitatif Stratégie de percée en micro-retracement basée sur le momentum quantitatif

Aperçu

La stratégie est un système de négociation basé sur la dynamique des prix et le volume des transactions, qui se concentre sur l’identification de petites opportunités de reprise après une forte hausse. La stratégie est basée sur la surveillance de la reprise à court terme après une hausse importante de la ligne verte, et la négociation est activée lorsque des signaux de reprise apparaissent. Le système utilise plusieurs conditions de filtrage, y compris le volume des transactions, les fluctuations ATR et les limites de la marge de reprise, pour améliorer la précision des transactions.

Principe de stratégie

La logique centrale de la stratégie est basée sur le principe de la continuité de la dynamique du marché et comprend principalement les éléments clés suivants:

  1. Une forte augmentation des transactions identifiée par le volume et le multiplicateur ATR, nécessitant un volume de transactions supérieur à 1,5 fois la moyenne et supérieur à 200 000
  2. Surveiller le processus de réinitialisation après la dépendance, limiter le nombre maximum de rouge à lèvres consécutives à 3
  3. Réglez la marge de rétractation maximale à 50% et renoncez à la transaction si elle est supérieure
  4. Après la reprise, un signal de multiplication est déclenché lorsque le prix dépasse le sommet précédent.
  5. Gestion de portefeuille de commandes OCO avec des objectifs de stop-loss et de profit
  6. Le stop loss est placé sous le trou de régression et le profit est 2 fois le risque.

Avantages stratégiques

  1. La double confirmation de la dynamique des prix et du volume des transactions améliore la fiabilité du signal
  2. Filtrage par conditions de rétroaction strictes pour éviter les pièges de faux-sauts
  3. L’utilisation d’indicateurs techniques objectifs réduit l’influence du jugement subjectif
  4. Des mécanismes de contrôle des risques clairs, avec des réglages fixes du rapport risque/bénéfice
  5. Système hautement automatisé pour le commerce en gros de plusieurs variétés
  6. Bonne extensibilité et facilité d’ajout de nouvelles conditions de filtrage

Risque stratégique

  1. Les signaux de fausse alerte peuvent être déclenchés fréquemment lors de fortes fluctuations du marché.
  2. La hausse des cours des actions pourrait dépasser les limites prévues
  3. Les conditions de livraison nécessitent une adaptation dynamique dans différents environnements de marché
  4. Le placement du stop loss est proche et peut être affecté par le bruit du marché.
  5. Les objectifs de profit peuvent être trop radicaux pour être pleinement atteints
  6. Une plus grande quantité d’échantillons est nécessaire pour vérifier la stabilité de la stratégie.

Orientation de l’optimisation de la stratégie

  1. Introduction de filtres de tendance, tels que le système de ligne uniforme ou les indicateurs de tendance, pour assurer la négociation dans la direction de la tendance dominante
  2. Adaptation dynamique de la dépréciation des volumes d’expédition aux différentes cycles de marché
  3. Optimiser les paramètres de la position de stop-loss et envisager d’utiliser le multiplicateur ATR
  4. Ajout d’un filtre temporel pour éviter les fluctuations de l’ouverture et de la fermeture du marché
  5. Introduction d’une confirmation à plusieurs cycles de temps, améliorant la fiabilité du signal
  6. Développer un système de paramètres adaptatifs pour ajuster les paramètres stratégiques en fonction des conditions du marché

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle, capable de capturer des opportunités de trading de qualité sur le marché grâce à un filtrage de conditions et à une gestion des risques rigoureux. La clé du succès de la stratégie réside dans l’optimisation des paramètres et l’adaptation à l’environnement du marché. Il est recommandé de procéder à une vérification de retour adéquate avant la négociation en direct et d’ajuster les paramètres en fonction des caractéristiques de la variété de transaction spécifique.

Code source de la stratégie
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/

//@version=6
strategy(title="Micropullback Detector w/ Stop Buy & Exits", shorttitle="MicroPB Det+Exits", overlay=true)

// USER INPUTS
volLookback = input.int(20, "Volume SMA Period", minval=1)
volMultiplier = input.float(1.5, "Volume Multiplier for High Volume", minval=1.0)
largeCandleATR = input.float(0.5, "Fraction of ATR to define 'Large Candle'", minval=0.1)
maxRedPullback = input.int(3, "Max Consecutive Red Candles in Pullback")
maxRetracementPc = input.float(50, "Max Retracement % for pullback", minval=1.0, maxval=100.0)

// CALCULATIONS
fastAtr = ta.atr(14)
avgVolume = ta.sma(volume, volLookback)
isLargeGreenCandle = (close > open) and ((close - open) > fastAtr * largeCandleATR) and (volume > avgVolume * volMultiplier) and (volume > 200000)

// HELPER FLAGS
isGreen = close >= open
isRed   = close < open

// STATE VARIABLES
var int   state = 0
var float waveStartPrice   = na
var float waveHighestPrice = na
var float largestGreenVol  = na
var int   consecutiveRedPulls = 0
var bool  triggerSignal    = false
var float wavePullbackLow  = na

if barstate.isnew
    triggerSignal:=false
    if state==0
        wavePullbackLow:=na
        if isLargeGreenCandle
            state:=1
            waveStartPrice:=open
            waveHighestPrice:=high
            largestGreenVol:=volume
            consecutiveRedPulls:=0
    else if state==1
        if isGreen
            waveHighestPrice:=math.max(waveHighestPrice,high)
            if volume>largestGreenVol
                largestGreenVol:=volume
        else
            state:=2
            consecutiveRedPulls:=1
            wavePullbackLow:=low
    else if state==2
        if isRed
            if volume>largestGreenVol
                state:=0
            consecutiveRedPulls+=1
            if consecutiveRedPulls>=maxRedPullback+1
                state:=0
            retracementLevel=waveStartPrice+(maxRetracementPc/100.0)*(waveHighestPrice-waveStartPrice)
            wavePullbackLow:=math.min(wavePullbackLow,low)
            if close<retracementLevel
                state:=0
        else
            consecutiveRedPulls:=0
            if high>high[1]
                triggerSignal:=true
                state:=3
    else if state==3
        state:=0

// Plot shapes for signals (last 1440 bars ~ 1 day at 1-min TF)
plotshape(isLargeGreenCandle, title="Large Green Candle", style=shape.diamond, location=location.belowbar, color=color.new(color.blue, 0), offset=0, size=size.small, show_last=1440)
plotshape(triggerSignal, title="MicroPB Entry", style=shape.arrowdown, location=location.abovebar, color=color.new(color.green, 0), offset=0, size=size.large, show_last=1440)

// ENTRY & EXITS
if triggerSignal
    // Stop Buy above the previous bar's high
    entryPrice = high[1]
    strategy.order("MicroPullback Long", strategy.long, limit=entryPrice, oca_name="MicroPullback")

    // Stoploss slightly below pullback low
    stopPrice = wavePullbackLow - 2*syminfo.mintick

    // Risk & take-profit calculations
    risk = entryPrice - stopPrice
    tpPrice = entryPrice + 2 * risk

    // Exit: stop or TP
    strategy.exit("SL+TP", "MicroPullback Long", stop=stopPrice, limit=tpPrice, qty_percent=100)

// ALERT
alertcondition(triggerSignal, title="MicroPullback LONG", message="Micropullback Long Signal Detected!")