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

La valeur de l'échange de titres est calculée à partir de la valeur de l'échange de titres.

Auteur:ChaoZhang est là., Date: 2025-01-06 16:18:01 Je vous en prie.
Les étiquettes:DIDMIATRSMA- Je vous en prie.

img

Résumé

Cette stratégie est un système de suivi des tendances qui combine l'indice de mouvement directionnel (DMI) avec la plage moyenne vraie (ATR). Le mécanisme de base utilise les indicateurs DI + et DI- pour identifier la direction et la force de la tendance du marché, tout en utilisant l'ATR pour des ajustements dynamiques de stop-loss et de take-profit.

Principe de stratégie

La stratégie fonctionne sur la base des mécanismes de base suivants:

  1. Utilise les indicateurs DI+ et DI- pour mesurer la direction et la force de la tendance.
  2. Incorpore une moyenne mobile de filtration de tendance (SMA) comme outil de confirmation de tendance. Les signaux ne sont déclenchés que lorsque les positions de prix et de moyenne mobile se confirment mutuellement.
  3. Utilise l'indicateur ATR pour calculer dynamiquement les niveaux de stop-loss et de take-profit, ce qui garantit que la gestion des risques s'adapte aux différentes conditions du marché.
  4. Suivre strictement les restrictions de temps dans l'exécution des transactions afin d'éviter une fréquence de négociation excessive.

Les avantages de la stratégie

  1. Ajuster fortement la dynamique - réaliser une adaptation à la volatilité du marché grâce à l'ATR.
  2. Contrôle complet des risques - Mise en œuvre de mécanismes dynamiques de stop-loss et de prise de profit basés sur la volatilité.
  3. Haute fiabilité du signal - Réduit les faux signaux grâce à la validation croisée de multiples indicateurs.
  4. Paramètres flexibles - Les paramètres de la stratégie peuvent être optimisés pour différentes caractéristiques du marché.
  5. Logic d'exécution clair - Des conditions d'entrée et de sortie précises facilitent la mise en œuvre dans le monde réel.

Risques stratégiques

  1. Risque d'oscillation du marché - Peut entraîner des arrêts consécutifs sur les marchés à fourchette. Suggestion: ajouter des indicateurs d'oscillation pour filtrer ou ajuster les seuils de paramètres.

  2. Le risque de glissement - Risque de glissement significatif pendant les périodes de forte volatilité. Suggestion: élargir de manière appropriée les positions stop-loss pour tenir compte du glissement.

  3. Risque de fausse rupture - éventuelles erreurs d'appréciation à des points tournants de la tendance. Suggestion: intégrer des indicateurs de volume pour confirmer le signal.

  4. Sensibilité des paramètres - Les performances varient considérablement selon les combinaisons de paramètres. Suggestion: Trouver des plages de paramètres stables par le backtesting.

Directions d'optimisation de la stratégie

  1. Optimisation du signal - envisager l'introduction de l'indicateur ADX pour l'évaluation de la force de la tendance ou l'ajout de mécanismes de confirmation du volume.

  2. Gestion des positions - Mettre en œuvre une dimensionnement dynamique des positions basé sur la force de la tendance pour un contrôle des risques plus précis.

  3. Structure temporelle - Considérer l'analyse de plusieurs délais pour améliorer la fiabilité du signal.

  4. Adaptabilité au marché - Développer des mécanismes d'ajustement adaptatif des paramètres basés sur les différentes caractéristiques des instruments.

Résumé

Cette stratégie réalise un suivi dynamique des tendances et un contrôle des risques en combinant des indicateurs de direction et de volatilité. La conception de la stratégie met l'accent sur la praticité et l'opérabilité, démontrant une forte adaptabilité du marché.


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

//@version=5
strategy("使用 DI+ 和 DI- 的策略 (最終完整修正且含圖表止損止盈線)", overlay=true)

// 輸入參數
diLength = input.int(title="DI 長度", defval=14)
adxSmoothing = input.int(title="ADX Smoothing", defval=14)
trendFilterLength = input.int(title="趨勢過濾均線長度", defval=20)
strengthThreshold = input.int(title="趨勢強度門檻值", defval=20)
atrLength = input.int(title="ATR 長度", defval=14)
atrMultiplierStop = input.float(title="ATR 停損倍數", defval=1.5)
atrMultiplierTakeProfit = input.float(title="ATR 止盈倍數", defval=2.5)

// 計算 DI+ 和 DI-
[diPlus, diMinus, _] = ta.dmi(diLength, adxSmoothing)

// 計算趨勢過濾均線
trendFilterMA = ta.sma(close, trendFilterLength)

// 判斷趨勢方向和強度
strongUpTrend = diPlus > diMinus + strengthThreshold and close > trendFilterMA
strongDownTrend = diMinus > diPlus + strengthThreshold and close < trendFilterMA

// 計算 ATR
atr = ta.atr(atrLength)

// 追蹤止損止盈價格 (使用 var 宣告,只在進場時更新)
var float longStopPrice = na
var float longTakeProfitPrice = na
var float shortStopPrice = na
var float shortTakeProfitPrice = na

// 進場邏輯
longCondition = strongUpTrend
shortCondition = strongDownTrend

if (longCondition)
    strategy.entry("多單", strategy.long)
    longStopPrice := close - atr * atrMultiplierStop // 進場時計算並更新止損價
    longTakeProfitPrice := close + atr * atrMultiplierTakeProfit // 進場時計算並更新止盈價

if (shortCondition)
    strategy.entry("空單", strategy.short)
    shortStopPrice := close + atr * atrMultiplierStop // 進場時計算並更新止損價
    shortTakeProfitPrice := close - atr * atrMultiplierTakeProfit // 進場時計算並更新止盈價


// 出場邏輯 (使用 time 限制和 ATR)
inLongPosition = strategy.position_size > 0
inShortPosition = strategy.position_size < 0

lastEntryTime = strategy.opentrades.entry_bar_index(strategy.opentrades - 1)

if (inLongPosition and time > lastEntryTime)
    strategy.exit("多單出場", "多單", stop=longStopPrice, limit=longTakeProfitPrice)

if (inShortPosition and time > lastEntryTime)
    strategy.exit("空單出場", "空單", stop=shortStopPrice, limit=shortTakeProfitPrice)

// 繪製 DI+、DI- 和趨勢過濾均線
plot(diPlus, color=color.green, title="DI+")
plot(diMinus, color=color.red, title="DI-")
plot(trendFilterMA, color=color.blue, title="趨勢過濾均線")

// 繪製止損止盈線 (使用 plot 函數繪製)
plot(strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=2, title="多單停損")
plot(strategy.position_size > 0 ? longTakeProfitPrice : na, color=color.green, style=plot.style_linebr, linewidth=2, title="多單止盈")
plot(strategy.position_size < 0 ? shortStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=2, title="空單停損")
plot(strategy.position_size < 0 ? shortTakeProfitPrice : na, color=color.green, style=plot.style_linebr, linewidth=2, title="空單止盈")

Relationnée

Plus de