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

Stratégie améliorée de dynamique de la tendance prix-volume

Auteur:ChaoZhang est là., Date: 2025-01-10 15h40 et 37 min
Les étiquettes:Le MACDATR- Je vous en prie.Le taux d'intérêtSMA

 Enhanced Price-Volume Trend Momentum Strategy

Résumé

Cette stratégie est un système de négociation basé sur l'indicateur MACD et la relation prix-volume, qui identifie les points d'inversion de la tendance du marché en observant les changements dans les modèles de l'histogramme MACD.

Principe de stratégie

La logique de base de la stratégie est basée sur les changements de couleur de l'histogramme MACD, combiné avec les systèmes doubles EMA et SMA. 1. Calculer les valeurs MACD en utilisant les moyennes mobiles rapides (12) et lentes (26) 2. MACD lisse avec une ligne de signal à 9 périodes 3. Surveillez les changements de profondeur de couleur dans l'histogramme MACD Définir des objectifs de bénéfices dynamiques et arrêter les pertes à l'aide d'ATR à 14 périodes

Les avantages de la stratégie

  1. Combinaison scientifique d'indicateurs, avec MACD captant efficacement les tendances et ATR adapté à la volatilité
  2. Des paramètres de prise de profit et de stop-loss flexibles réglables par des paramètres de multiplicateur pour différentes caractéristiques du marché
  3. Signaux de trading clairs avec un calendrier d'entrée intuitif basé sur les changements de couleur de l'histogramme
  4. Accueille à la fois les transactions longues et courtes, augmentant la polyvalence de la stratégie et les opportunités de profit

Risques stratégiques

  1. Le MACD en tant qu'indicateur en retard peut manquer les points d'entrée optimaux dans les mouvements rapides du marché
  2. Peut générer de faux signaux sur différents marchés, conduisant à des transactions fréquentes
  3. Les paramètres incorrects du multiplicateur ATR peuvent entraîner des arrêts trop lâches ou trop serrés.
  4. Requiert une bonne gestion de l'argent pour éviter des pertes excédentaires pour une seule transaction

Directions d'optimisation de la stratégie

  1. Incorporer des signaux de confirmation du volume pour améliorer la fiabilité du signal
  2. Ajouter des filtres de tendance pour réduire les faux signaux sur les marchés variés
  3. Optimiser les multiplicateurs de prise de profit et de stop-loss avec un ajustement dynamique basé sur différents délais
  4. Inclure un filtrage de volatilité pour réduire la fréquence des opérations pendant les périodes de forte volatilité
  5. Considérez la mise en œuvre de filtres temporels pour éviter les transactions pendant les périodes défavorables

Résumé

Il s'agit d'une stratégie complète combinant l'indicateur d'analyse technique classique MACD avec des méthodes modernes de contrôle des risques. Il capture les changements de dynamique du marché en observant les changements de modèle d'histogramme MACD tout en utilisant ATR pour le contrôle dynamique des risques. La stratégie est bien conçue avec une logique opérationnelle claire et une valeur pratique.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy(title="軒割MACD 空心量能不足策略", shorttitle="軒割MACD 空心量能不足策略", overlay=true)

//=== 1) 參數 ===//
fast_length   = input.int(title="Fast Length",        defval=12)
slow_length   = input.int(title="Slow Length",        defval=26)
src           = input.source(title="MACD Source",     defval=close)
signal_length = input.int(title="Signal Smoothing",   defval=9,  minval=1, maxval=50)
sma_source    = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA","EMA"])
sma_signal    = input.string(title="Signal MA Type",     defval="EMA", options=["SMA","EMA"])

// 啟用多單 / 空單
useLong       = input.bool(title="啟用多單?(底部紅色)", defval=true)
useShort      = input.bool(title="啟用空單?(頂部綠色)", defval=true)

// 止盈倍數 (1~10倍 ATR)
tpATRmult     = input.int(title="止盈 ATR 倍數 (1~10)", defval=10, minval=1, maxval=500)
// 止損倍數 (1~10倍 ATR)
slATRmult     = input.int(title="止損 ATR 倍數 (1~10)", defval=3, minval=1, maxval=500)

//=== 2) MACD 計算 ===//
fast_ma  = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma  = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd     = fast_ma - slow_ma
signal   = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist     = macd - signal

//=== 3) 判斷深色/淺色(用於變化訊號)===//
darkGreen  = hist >= 0 and hist <= hist[1]   // 上方,柱子縮小或持平
lightGreen = hist >= 0 and hist >  hist[1]   // 上方,柱子變大
darkRed    = hist <  0 and hist <= hist[1]   // 下方,柱子(絕對值)變大或持平
lightRed   = hist <  0 and hist >  hist[1]   // 下方,柱子(絕對值)變小

// 由「深 → 淺」是否發生在上一根
colorChangeToLightGreen = darkGreen[1] and lightGreen
colorChangeToLightRed   = darkRed[1]   and lightRed

//=== 4) ATR 計算 (用於止盈止損) ===//
atrPeriod  = 14
atrValue   = ta.atr(atrPeriod)

//=== 5) 多單策略:深紅 → 淺紅 (底部紅色) ===//
if useLong and colorChangeToLightRed
    // 以當前 K 線 low - ATR倍數 作為多單止損
    longStopLoss   = low - (slATRmult * atrValue)
    // 以當前 close + ATR倍數 作為多單止盈
    longTakeProfit = close + (tpATRmult * atrValue)

    // 進多單
    strategy.entry("Long Entry", strategy.long, comment="多", qty=1)
    strategy.exit("平多", "Long Entry", stop=longStopLoss, limit=longTakeProfit)

//=== 6) 空單策略:深綠 → 淺綠 (頂部綠色) ===//
if useShort and colorChangeToLightGreen
    // 以當前 K 線 high + ATR倍數 作為空單止損
    shortStopLoss   = high + (slATRmult * atrValue)
    // 以當前 close - ATR倍數 作為空單止盈
    shortTakeProfit = close - (tpATRmult * atrValue)

    // 進空單
    strategy.entry("Short Entry", strategy.short, comment="空", qty=1)
    strategy.exit("平空", "Short Entry", stop=shortStopLoss, limit=shortTakeProfit)

//=== 7) 繪製 MACD 與直方圖 ===//
hline(0, "Zero Line", color=color.new(#787B86, 50))

// 長條圖顏色:
//   - 上方 (hist >= 0) 時:hist 比前一根大 (淺綠) 或小 (深綠)
//   - 下方 (hist < 0)  時:hist 比前一根大 (淺紅) 或小 (深紅)
plot(hist,title="Histogram",style=plot.style_columns,color = hist >= 0? (hist > hist[1]  ? #26A69A : #B2DFDB)   : (hist > hist[1]  ? #FFCDD2 : #FF5252)  )

// 繪製 MACD 與 Signal
plot(macd,   title="MACD",   color=#2962FF)
plot(signal, title="Signal", color=#FF6D00)


Relationnée

Plus de