Stratégie de swing trading dynamique avec plusieurs indicateurs techniques

EMA MACD RSI ADX ATR
Date de création: 2025-02-18 17:13:58 Dernière modification: 2025-02-18 17:13:58
Copier: 1 Nombre de clics: 405
1
Suivre
1617
Abonnés

Stratégie de swing trading dynamique avec plusieurs indicateurs techniques

Aperçu

Il s’agit d’une stratégie de trading dynamique basée sur plusieurs indicateurs techniques, qui combine principalement les caractéristiques du suivi de la tendance et de l’opération de la bande. La stratégie recherche des opportunités de négociation à haut rendement sur le marché grâce à la collaboration de plusieurs indicateurs techniques tels que l’EMA, l’ADX, le RSI et le MACD. Le système utilise des arrêts de perte et des arrêts par lots dynamiques pour gérer les risques et les bénéfices.

Principe de stratégie

La logique centrale de la stratégie repose sur les éléments clés suivants:

  1. Détermination de la tendance: la direction de la tendance du marché est déterminée à l’aide de la relation croisée entre EMA55 et EMA144 et la confirmation de la tendance est effectuée en combinaison avec la force de l’indicateur ADX (la dépréciation 30).
  2. Temps d’entrée: les zones de survente sont identifiées par l’indicateur RSI ((supersold45,supersold55)), qui est utilisé pour juger des opportunités de reprise d’achat et de reprise de la position.
  3. Le stop loss est basé sur l’ATR, et peut être ajusté en fonction des fluctuations du marché.
  4. Stratégie de profit: utilisez le prix le plus élevé/le plus bas de 50 cycles comme cible de stop-loss, en utilisant un stop-loss par lots de 50% des positions.

Avantages stratégiques

  1. Vérification multi-indicateurs: l’utilisation combinée de plusieurs indicateurs tels que l’EMA, l’ADX et le RSI améliore la fiabilité des signaux de négociation.
  2. Gestion dynamique des risques: la gestion dynamique des pertes basée sur l’ATR peut s’adapter à différents environnements de marché et offrir une meilleure maîtrise des risques.
  3. Le profit progressif: le blocage par lots permet de bloquer une partie des bénéfices et de ne pas se retirer prématurément d’une situation dynamique.
  4. Confirmation de la tendance: ajouter un filtre à l’indicateur ADX pour éviter de négocier fréquemment sur des marchés à basse volatilité.

Risque stratégique

  1. Risque de fausse rupture: il est recommandé d’augmenter la confirmation de transaction, car il peut y avoir des erreurs de jugement lorsque les fluctuations du marché augmentent.
  2. Perte de points de glissement: les stop-loss dynamiques peuvent être confrontés à des points de glissement plus importants lorsque le marché fluctue rapidement.
  3. Les pertes horizontales: malgré les filtres ADX, il est possible de subir des pertes mineures consécutives sur des marchés en turbulence.
  4. Décalage du signal: une combinaison de plusieurs indicateurs peut entraîner un décalage du signal d’entrée et un manque de temps optimal pour la mise en position.

Orientation de l’optimisation de la stratégie

  1. Optimisation des paramètres de l’indicateur: il est recommandé d’optimiser les paramètres tels que les cycles EMA, les valeurs minimales du RSI.
  2. Optimisation du stop loss: il est possible d’envisager d’augmenter le stop loss mobile afin de mieux protéger les bénéfices.
  3. Gestion des positions: Il est recommandé d’introduire un système de gestion des positions qui s’adapte à la volatilité.
  4. Adaptabilité au marché: il est possible d’ajouter une classification des environnements de marché, en utilisant différentes combinaisons de paramètres dans différentes conditions de marché.

Résumer

La stratégie est un système de négociation intégré qui utilise la synergie de multiples indicateurs techniques. La stratégie est axée sur la saisie de tendances et la maîtrise des risques, équilibrant les risques et les bénéfices par des arrêts de perte dynamiques et des arrêts de lots. Bien qu’il existe une certaine marge d’optimisation, dans l’ensemble, c’est une stratégie de négociation logiquement rigoureuse et pratique.

Code source de la stratégie
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("专业级交易系统", overlay=true, max_labels_count=500)
// ===== 参数设置 =====
x1 = input.float(1.5,"atr倍数",step=0.1)
x2 = input.int(50,"k线数量",step=1)
// EMA参数
ema55_len = input.int(55, "EMA55长度")
ema144_len = input.int(144, "EMA144长度")
// ADX参数
adx_len = input.int(14, "ADX长度")
adx_threshold = input.float(30.0, "ADX趋势过滤")
// RSI参数
rsi_len = input.int(14, "RSI长度")
rsi_oversold = input.float(45.0, "RSI超卖阈值")
rsi_overbuy = input.float(55.0, "RSI超买阈值")
// MACD参数
macd_fast = input.int(12, "MACD快线")
macd_slow = input.int(26, "MACD慢线")
macd_signal = input.int(9, "MACD信号线")
// ===== 指标计算 =====
// EMA计算
ema55 = ta.ema(close, ema55_len)
ema144 = ta.ema(close, ema144_len)
// ADX计算(使用标准函数)
[di_plus, di_minus, adx] = ta.dmi(adx_len, adx_len)
// RSI计算
rsi = ta.rsi(close, rsi_len)
// MACD计算(修正参数顺序)
[macdLine, signalLine, histLine] = ta.macd(close, macd_fast, macd_slow, macd_signal)
// ===== 信号逻辑 =====
// 趋势条件:EMA55 > EMA144 且 ADX > 30
trendCondition = ema55 > ema144 and adx > adx_threshold
trendConditions = ema55 < ema144 and adx > adx_threshold
// 回调条件:RSI < 45 且 MACD柱状线 > -0.002
pullbackCondition = rsi < rsi_oversold 
pullbackConditions = rsi > rsi_overbuy 
// 综合信号
entrySignal = trendCondition and pullbackCondition
entrySignals = trendConditions and pullbackConditions

// ===== 可视化 =====
// 绘制EMA
plot(ema55, "EMA55", color=color.new(#FFA500, 0))
plot(ema144, "EMA144", color=color.new(#008000, 0))
//plotshape(series=entrySignal,title="买入信号",location=location.belowbar,color=color.new(color.green, 0),style=shape.labelup,text="BUY",textcolor=color.new(color.white, 0))
s = strategy.position_avg_price ,s1 = strategy.position_size
le = false
le := low < ema144 and low[1] > ema144 and ema55 > ema144 ? true : s1 > 0 ? false : le[1] 
se = false
se := high > ema144 and high[1] < ema144 and ema55 < ema144 ? true : s1 < 0 ? false : se[1]
if entrySignal and low < ema144 and close > ema144
    strategy.entry("l",strategy.long)
strategy.exit("止盈一半","l",limit= ta.highest(x2),qty_percent = 50)
if s1 > 0 and low < (close - x1*ta.atr(12))[1]
    strategy.close_all("动态止损")

if entrySignals and high > ema144 and close < ema144
    strategy.entry("s",strategy.short)   
strategy.exit("止盈一半","s",limit = ta.lowest(x2),qty_percent = 50)
if s1 < 0 and high > (close + x1*ta.atr(12))[1]
    strategy.close_all("动态止损")

//plotshape(series=entrySignal,title="买入信号",location=location.belowbar,color=color.new(color.green, 0),style=shape.labelup,text="BUY",textcolor=color.new(color.white, 0))
//plot(close+x1*ta.atr(12))
//plot(close-x1*ta.atr(12))
//bgcolor(le ? color.red:na)