Stratégie de trading d'ouverture basée sur la gestion dynamique de l'ATR

BB EMA RSI ADX ATR
Date de création: 2024-11-12 14:26:23 Dernière modification: 2024-11-12 14:26:23
Copier: 1 Nombre de clics: 488
1
Suivre
1617
Abonnés

Stratégie de trading d’ouverture basée sur la gestion dynamique de l’ATR

Aperçu

La stratégie est un système de négociation d’ouvertures de marché basé sur plusieurs indicateurs techniques, principalement pour les heures d’ouverture des marchés allemand et américain. La stratégie identifie les phases de rattrapage à travers les bandes de Brin, confirme la direction de la tendance en combinaison avec les moyennes mobiles des indices à court et à long terme, filtre les signaux de négociation à l’aide d’indicateurs de tendance relativement faibles et de direction de tendance, et finit par gérer les positions dynamiquement avec l’indicateur d’amplitude réelle.

Principe de stratégie

La stratégie utilise les bandes de Brin de 14 cycles (la différence standard est de 1,5 fois) pour identifier les phases de basse volatilité, et est considérée comme un rattrapage lorsque le prix est proche de l’orbite médiane de la bande de Brin. En même temps, l’utilisation des moyennes mobiles de l’indice de 10 cycles et de 200 cycles est utilisée pour confirmer une tendance à plusieurs têtes, exigeant que le prix soit situé au-dessus de deux lignes égales. L’utilisation du RSI de 7 cycles assure que le marché n’est pas en survente (<30), l’ADX de 7 cycles confirme la force de la tendance (<10)

Avantages stratégiques

  1. Vérification croisée de multiples indicateurs techniques pour réduire efficacement les faux signaux
  2. Stop-loss dynamique basé sur l’ATR, adapté aux fluctuations du marché
  3. Concentrez-vous sur les opportunités de forte volatilité pendant la période d’ouverture
  4. Capturer les tendances les plus fortes par le biais d’un modèle de résumé et de rupture
  5. Des mécanismes de contrôle des risques

Risque stratégique

  1. La multiplication des indicateurs pourrait entraîner la perte de certaines opportunités commerciales
  2. Les fortes fluctuations de l’heure d’ouverture peuvent déclencher un arrêt.
  3. Un retournement rapide du marché pourrait entraîner des pertes importantes Il est recommandé d’adopter un contrôle raisonnable des positions, d’appliquer strictement la stratégie d’arrêt des pertes et d’éviter les transactions excessives.

Orientation de l’optimisation de la stratégie

  1. Les paramètres de l’indicateur peuvent être ajustés en fonction des caractéristiques du marché
  2. Considérer l’ajout d’indicateurs de transaction pour vérifier l’efficacité de la percée
  3. L’introduction d’autres indicateurs techniques pour améliorer la fiabilité du signal
  4. Optimiser le timing de l’entrée et réduire l’impact des points de glissement
  5. Améliorer le mécanisme d’arrêt des pertes et d’arrêt des pertes

Résumer

La stratégie utilise une méthode d’analyse technique multidimensionnelle pour capturer les opportunités de négociation pendant les heures d’ouverture et gérer les risques d’arrêt et de freinage dynamiques. La logique de la stratégie est claire, le contrôle du vent est parfait et a une bonne praticité.

Code source de la stratégie
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Post-Open Long Strategy with ATR-based Stop Loss and Take Profit (Separate Alerts)", overlay=true)

// Parametri per Bande di Bollinger ed EMA
lengthBB = 14
mult = 1.5  // Bande di Bollinger più strette per timeframe inferiori
emaLength = 10  // EMA più breve per una rilevazione di trend più rapida
emaLongLength = 200  // EMA a lungo termine per il filtraggio del trend

// Parametri per RSI
lengthRSI = 7
rsiThreshold = 30

// Parametri per ADX
adxLength = 7
adxSmoothing = 7
adxThreshold = 10

// Filtro temporale - Solo durante l'apertura dei mercati tedesco e USA
daxOpen = (hour >= 8 and hour < 12)
usOpen = (hour == 15 and minute >= 30) or (hour >= 16 and hour < 19)

// Calcolo delle Bande di Bollinger
smaBB = ta.sma(close, lengthBB)
basis = smaBB
dev = mult * ta.stdev(close, lengthBB)
upperBand = basis + dev
lowerBand = basis - dev

// Calcolo delle EMA (breve e lungo termine)
ema = ta.ema(close, emaLength)  // EMA più breve
emaLong = ta.ema(close, emaLongLength)  // EMA a lungo termine per il filtraggio del trend

// Calcolo RSI
rsi = ta.rsi(close, lengthRSI)

// Calcolo ADX
[plusDI, minusDI, adx] = ta.dmi(adxLength, adxSmoothing)

// Calcolo ATR per Stop Loss e Take Profit dinamici
atrLength = 14
atrStopLossMultiplier = 2.0  // Moltiplicatore per Stop Loss
atrTakeProfitMultiplier = 4.0  // Moltiplicatore per Take Profit modificato a 4.0
atrValue = ta.atr(atrLength)  // Valore ATR calcolato qui

// Condizione di lateralizzazione - Prezzo vicino alla SMA delle Bande di Bollinger
lateralization = math.abs(close - smaBB) < (0.01 * close) and (daxOpen or usOpen)

// Identificazione della resistenza e del breakout
var float resistanceLevel = na
resistanceTouches = 0

for i = 1 to 20
    if high[i] > high[i+1] and high[i] > high[i-1]
        resistanceLevel := high[i]
        resistanceTouches := resistanceTouches + 1

// Condizione di Breakout: Il prezzo attuale supera la resistenza identificata
breakoutCondition = close > resistanceLevel and resistanceTouches >= 2

// Filtro di mercato rialzista a lungo termine - Entrare solo se il prezzo è sopra la EMA a 200 periodi
bullMarket = close > emaLong

// Filtro di trend a breve termine
trendFilter = ta.ema(close, emaLength)  // Filtro di trend a breve termine
trendDown = close < trendFilter  // Condizione di downtrend basata sul trend a breve termine

// Evitare l'entrata durante un pullback - Verifica se le due candele precedenti sono rosse
firstRedCandle = close[1] < open[1]  // La prima candela precedente è rossa
secondRedCandle = close[2] < open[2]  // La seconda candela precedente è rossa
avoidPullbackCondition = not (firstRedCandle and secondRedCandle)  // Entrare solo se non entrambe sono rosse

// Condizione Panic Candle - La candela deve chiudere negativa
panicCandle = close < open and (daxOpen or usOpen)

// Condizione di Entrata Long
longCondition = breakoutCondition and lateralization and close > ema and rsi > rsiThreshold and adx > adxThreshold and not trendDown and avoidPullbackCondition and bullMarket and panicCandle

// Stop Loss e Take Profit dinamici basati su ATR
atrStopLoss = close - (atrValue * atrStopLossMultiplier)  // Stop Loss dinamico usando ATR con moltiplicatore 2.0
atrTakeProfit = close + (atrValue * atrTakeProfitMultiplier)  // Take Profit dinamico usando ATR con moltiplicatore 4.0

// Entrata Long: Ordine eseguito alla chiusura della candela
if (longCondition and strategy.opentrades == 0 and barstate.isconfirmed)
    strategy.entry("Long", strategy.long)

// Disegna linee per Stop Loss e Take Profit
// line.new(x1=bar_index, y1=atrStopLoss, x2=bar_index + 1, y2=atrStopLoss, color=color.red, width=2, style=line.style_solid)  // Linea di Stop Loss (rossa)
// line.new(x1=bar_index, y1=atrTakeProfit, x2=bar_index + 1, y2=atrTakeProfit, color=color.green, width=2, style=line.style_solid)  // Linea di Take Profit (verde)

// Uscita: Stop Loss o Take Profit raggiunti
if (strategy.opentrades > 0)
    strategy.exit("Exit Long", "Long", stop=atrStopLoss, limit=atrTakeProfit)

// Alert: Differenziati per Entrata e Uscita utilizzando strategy.order.action
alert_message = "Azione: {{strategy.order.action}}, Prezzo: {{close}}, Dimensione Posizione: {{strategy.position_size}}"