Les ressources ont été chargées... Je charge...

Stratégie de négociation après rupture ouverte avec gestion dynamique des positions basée sur ATR

Auteur:ChaoZhang est là., Date: 2024-11-12 14h26 et 23h
Les étiquettes:BBLe taux d'intérêtIndice de résistanceADXATR

img

Résumé

Cette stratégie est un système de trading d'ouverture de marché basé sur de multiples indicateurs techniques, ciblant principalement les séances d'ouverture du marché allemand et américain. Il identifie les phases de consolidation à l'aide de bandes de Bollinger, confirme la direction de la tendance avec des moyennes mobiles exponentielles à court et à long terme, filtre les signaux de trading à l'aide du RSI et de l'ADX et gère les positions dynamiquement à l'aide de l'ATR.

Principes de stratégie

La stratégie utilise des bandes de Bollinger de 14 périodes (1,5 écarts types) pour identifier les phases de faible volatilité, en considérant la consolidation lorsque le prix est proche de la bande moyenne. Elle utilise des EMA de 10 et 200 périodes pour confirmer les tendances haussières, nécessitant un prix supérieur aux deux moyennes. Un RSI de 7 périodes garantit des conditions de non-survente (> 30), tandis qu'un ADX de 7 périodes confirme la force de la tendance (> 10).

Les avantages de la stratégie

  1. La validation croisée de plusieurs indicateurs techniques réduit les faux signaux
  2. L'établissement de la banque doit être en mesure d'assurer la liquidité de la banque en tenant compte de la volatilité du marché.
  3. Se concentre sur les séances d'ouverture à forte volatilité
  4. Capture des tendances fortes par le biais de modèles de consolidation et de rupture
  5. Mécanismes complets de contrôle des risques

Risques stratégiques

  1. Plusieurs indicateurs pourraient manquer certaines opportunités de négociation
  2. Les séances d'ouverture volatiles peuvent déclencher des stop-loss
  3. Des renversements rapides du marché pourraient entraîner des pertes importantes Il est recommandé de mettre en œuvre une dimensionnement approprié des positions, une exécution stricte des stop-loss et d'éviter les surtrades.

Directions d'optimisation

  1. Ajuster les paramètres des indicateurs pour les différents marchés
  2. Considérer l'ajout d'indicateurs de volume pour vérifier la validité de la rupture
  3. Incorporer des indicateurs techniques supplémentaires pour la fiabilité du signal
  4. Optimiser le calendrier d'entrée pour réduire l'impact du glissement
  5. Améliorer la gestion des profits et pertes pour améliorer les ratios risque/rendement

Résumé

Cette stratégie capte les opportunités de trading lors des séances d'ouverture du marché grâce à une analyse technique multidimensionnelle, en utilisant un stop-loss dynamique et un take-profit pour la gestion des risques.


/*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}}"


Relationnée

Plus de