Stratégie de trading de rupture de support et de résistance dynamique combinée à un système de filtrage des tendances et de gestion des risques

SMA MA RR RATIO risk management
Date de création: 2025-02-20 15:51:23 Dernière modification: 2025-02-27 17:33:24
Copier: 1 Nombre de clics: 347
2
Suivre
319
Abonnés

Stratégie de trading de rupture de support et de résistance dynamique combinée à un système de filtrage des tendances et de gestion des risques Stratégie de trading de rupture de support et de résistance dynamique combinée à un système de filtrage des tendances et de gestion des risques

Aperçu

Il s’agit d’une stratégie de négociation basée sur la rupture des zones de résistance des supports, combinée à un filtrage de tendance et à un système de gestion des risques. La stratégie identifie les opportunités de négociation potentielles en identifiant dynamiquement les niveaux de prix critiques et utilise des moyennes mobiles pour confirmer la direction des tendances du marché.

Principe de stratégie

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

  1. Utilisation des hauts et des bas de l’axe pour identifier les zones de résistance potentielles au support
  2. Création d’une zone de résistance de soutien en définissant un pourcentage de décalage des prix
  3. Utilisation de la moyenne mobile à 200 jours comme filtre de tendance
  4. Confirmation de la validité de la percée par la forme de l’image
  5. La mise en place de règles strictes de gestion des fonds et le contrôle des risques de chaque transaction Le système ouvre des positions de plusieurs têtes lorsque le prix franchit la zone de résistance et tend vers le haut; le système ouvre des positions de tête vide lorsque le prix franchit la zone de soutien et tend vers le bas.

Avantages stratégiques

  1. Identifier la structure dynamique du marché - les stratégies permettent d’identifier et de mettre à jour automatiquement les niveaux de prix importants pour s’adapter aux changements du marché
  2. Mécanisme de confirmation multiple - confirmation combinée de filtrage de tendance et de filtrage pour réduire le risque de fausse percée
  3. Une bonne gestion des risques - des règles de risques fixes pour protéger les fonds du compte
  4. Objectif de profit clair - Risque de profit de 2:1 par rapport à la position de stop
  5. Signaux de négociation visualisés - affichage des zones de résistance et des lignes de stop-loss sur le graphique

Risque stratégique

  1. Risque de fluctuation du marché - des points de glissement peuvent survenir pendant les périodes de forte volatilité et affecter l’efficacité des transactions réelles
  2. Risque de renversement de tendance - après une percée, le marché peut se retourner rapidement, entraînant une sortie de stop loss
  3. Risque d’optimisation des paramètres - des paramètres sur-optimisés peuvent entraîner une suradaptation
  4. Risques de gestion des fonds - les arrêts de paiement en continu peuvent affecter la croissance des comptes Il est recommandé de gérer ces risques en repensant aux différentes conditions du marché et en ajustant les paramètres.

Orientation de l’optimisation de la stratégie

  1. Adaptation dynamique de la largeur de la zone de résistance au support - Adaptation automatique de la zone en fonction des fluctuations du marché
  2. Augmentation de la confirmation de transaction - ajout d’une condition de filtrage de transaction dans le signal de rupture
  3. Optimiser les filtres de tendance - envisagez d’utiliser la confirmation de tendance à cycles multiples
  4. Améliorer la stratégie de stop-loss - réaliser un stop-loss dynamique en ajustant les objectifs de profit en fonction de la situation du marché
  5. Ajout de filtres temporels - évitez de négocier pendant les périodes de forte volatilité du marché

Résumer

Il s’agit d’une stratégie de trading bien structurée qui offre une méthode de trading systématisée par la combinaison de l’analyse technique et des principes de gestion des risques. L’avantage de la stratégie réside dans ses règles de trading complètes et ses contrôles rigoureux des risques, mais elle nécessite également que les traders comprennent ses limites et les optimisent et les ajustent de manière appropriée en fonction des conditions de trading réelles.

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

//@version=5
strategy("支撑/阻力区域突破策略(2倍止盈 + 蜡烛确认 + 趋势过滤)", overlay=true, initial_capital=10000, currency=currency.USD, pyramiding=0, calc_on_order_fills=true, calc_on_every_tick=true)

// 用户输入设置
pivotLen = input.int(title="枢轴识别窗口长度", defval=5, minval=1)
zoneOffsetPercent = input.float(title="区域偏移百分比 (%)", defval=0.1, step=0.1)
maLength = input.int(200, title="移动平均线周期")

// 趋势指标: 简单移动平均线(SMA)
trendMA = ta.sma(close, maLength)

// 识别高点和低点(枢轴高点/低点)
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)

// 存储最近的阻力位和支撑位
var float resistanceLevel = na
var int resistanceBar = na
if not na(ph)
    resistanceLevel := ph
    resistanceBar := bar_index - pivotLen

var float supportLevel = na
var int supportBar = na
if not na(pl)
    supportLevel := pl
    supportBar := bar_index - pivotLen

// 将阻力和支撑区域绘制为区域框
if not na(resistanceLevel)
    resOffset = resistanceLevel * (zoneOffsetPercent / 100)
    resTop = resistanceLevel + resOffset
    resBottom = resistanceLevel - resOffset


if not na(supportLevel)
    supOffset = supportLevel * (zoneOffsetPercent / 100)
    supTop = supportLevel + supOffset
    supBottom = supportLevel - supOffset


// 风险管理: 定义资金、风险百分比和计算风险金额
riskCapital = 10000.0
riskPercent = 0.01
riskAmount = riskCapital * riskPercent   // 1% of $10,000 = $100

// activeStop变量用于显示止损位
var float activeStop = na
if strategy.position_size == 0
    activeStop := na

// 确定趋势方向
isUptrend = close > trendMA   // 上升趋势(价格在MA之上)
isDowntrend = close < trendMA  // 下降趋势(价格在MA之下)

// 定义突破蜡烛和确认蜡烛
var bool breakoutUp = false
var bool breakoutDown = false

if not na(resistanceLevel) and close[1] > resistanceLevel and open[1] < resistanceLevel
    breakoutUp := true
else
    breakoutUp := false

if not na(supportLevel) and close[1] < supportLevel and open[1] > supportLevel
    breakoutDown := true
else
    breakoutDown := false

// 突破确认: 下一根蜡烛必须在突破方向收盘
confirmLong = breakoutUp and close > close[1] and strategy.position_size == 0 and isUptrend
confirmShort = breakoutDown and close < close[1] and strategy.position_size == 0 and isDowntrend

// 做多入场: 确认蜡烛 + 在突破蜡烛低点设置止损
if confirmLong
    entryPrice = close
    stopLevelLong = low[1]
    riskPerUnit = entryPrice - stopLevelLong
    if riskPerUnit > 0
        qty = riskAmount / riskPerUnit
        activeStop := stopLevelLong
        takeProfitLong = entryPrice + (riskPerUnit * 2)  // 止盈设为止损的2倍
        strategy.entry("Long", strategy.long, qty=qty)
        strategy.exit("Exit Long", from_entry="Long", stop=stopLevelLong, limit=takeProfitLong)

// 做空入场: 确认蜡烛 + 在突破蜡烛高点设置止损
if confirmShort
    entryPrice = close
    stopLevelShort = high[1]
    riskPerUnit = stopLevelShort - entryPrice
    if riskPerUnit > 0
        qty = riskAmount / riskPerUnit
        activeStop := stopLevelShort
        takeProfitShort = entryPrice - (riskPerUnit * 2)  // 止盈设为止损的2倍
        strategy.entry("Short", strategy.short, qty=qty)
        strategy.exit("Exit Short", from_entry="Short", stop=stopLevelShort, limit=takeProfitShort)

// 当有持仓时在图表上显示止损线(水平线)
plot(strategy.position_size != 0 ? activeStop : na, title="止损线", color=color.red, linewidth=2, style=plot.style_line)

// 在图表上显示移动平均线
plot(trendMA, title="趋势MA", color=color.blue, linewidth=2)