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

Stratégie de suivi multi-tendance basée sur ATR avec système d'optimisation du bénéfice et du stop-loss

Auteur:ChaoZhang est là., Date: 2024-11-12 16:14:11 Je vous en prie.
Les étiquettes:ATRSMATP/SLL'OHLC- Je vous en prie.

img

Résumé

Cette stratégie est un système de trading de suivi des tendances basé sur l'indicateur Average True Range (ATR), qui identifie les tendances du marché grâce au calcul dynamique des plages de volatilité des prix et intègre des mécanismes adaptatifs de prise de profit et de stop-loss pour la gestion des risques.

Principes de stratégie

La stratégie de base est basée sur des calculs ATR dynamiques, en utilisant un paramètre de période (défaut 10) pour calculer la vraie plage du marché.

  1. Utilise l'ASM ou l'ATR standard pour le calcul de la volatilité de référence
  2. Calcule dynamiquement les canaux supérieur et inférieur en tant que références de tendance
  3. Détermine la direction de la tendance par le biais de croisements de prix et de canaux
  4. Déclencheur des signaux de négociation aux points de renversement de tendance
  5. Mise en œuvre d'un système dynamique de prise de profit et de stop-loss basé sur le pourcentage

Les avantages de la stratégie

  1. Une grande adaptabilité: s'adapte dynamiquement à la volatilité du marché grâce à l'ATR
  2. Risque contrôlé: les mécanismes intégrés de prise de profit et de stop-loss basés sur les pourcentages contrôlent efficacement le risque par transaction.
  3. Flexibilité des paramètres: les principaux paramètres tels que la période ATR et le multiplicateur peuvent être ajustés en fonction des caractéristiques du marché
  4. Claireté visuelle: offre une interface graphique complète comprenant des marqueurs de tendance et des alertes de signaux
  5. Gestion du temps: Prend en charge les fenêtres de temps de négociation personnalisées, améliorant l'applicabilité de la stratégie

Risques stratégiques

  1. Risque d'inversion de tendance: peut générer de fréquents faux signaux sur des marchés variés
  2. Sensitivité des paramètres: le choix de la période ATR et du multiplicateur a une incidence significative sur la performance de la stratégie
  3. Dépendance de l'environnement du marché: il peut y avoir un glissement plus important pendant les périodes de forte volatilité
  4. Paramètres d'arrêt des pertes: les paramètres d'arrêt en pourcentage fixe peuvent ne pas convenir à toutes les conditions du marché

Directions d'optimisation de la stratégie

  1. Introduction d'une analyse sur plusieurs délais pour améliorer la précision de l'identification des tendances
  2. Ajouter la confirmation de l'indicateur de volume pour améliorer la fiabilité du signal
  3. Développer des mécanismes adaptatifs de prise de profit et de stop-loss qui s'adaptent dynamiquement à la volatilité du marché
  4. Inclure des filtres de force de tendance pour réduire les faux signaux
  5. Intégrer des indicateurs de volatilité pour optimiser le calendrier d'entrée

Résumé

Il s'agit d'une stratégie de suivi des tendances bien conçue qui permet un suivi précis de la volatilité du marché grâce à l'indicateur ATR, combiné à des mécanismes de prise de profit et de stop-loss pour la gestion des risques. Les atouts de la stratégie résident dans son adaptabilité et son risque contrôlé, bien que l'impact de l'environnement du marché sur la performance de la stratégie doive être noté.


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

//@version=5
strategy("Custom Buy BID Strategy", overlay=true, shorttitle="Buy BID by MR.STOCKVN")

// Cài đặt chỉ báo
Periods = input.int(title="ATR Period", defval=10)
src = input.source(hl2, title="Source")
Multiplier = input.float(title="ATR Multiplier", step=0.1, defval=3.0)
changeATR = input.bool(title="Change ATR Calculation Method?", defval=true)
showsignals = input.bool(title="Show Buy Signals?", defval=false)
highlighting = input.bool(title="Highlighter On/Off?", defval=true)
barcoloring = input.bool(title="Bar Coloring On/Off?", defval=true)

// Tính toán ATR
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2

// Tính toán mức giá mua bán dựa trên ATR
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up

dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Vẽ xu hướng
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1

// Hiển thị tín hiệu mua
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)

// Cài đặt màu cho thanh nến
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)

// Điều kiện thời gian giao dịch
FromMonth = input.int(defval=9, title="From Month", minval=1, maxval=12)
FromDay = input.int(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input.int(defval=2018, title="From Year", minval=999)
ToMonth = input.int(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input.int(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input.int(defval=9999, title="To Year", minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)

// Cửa sổ thời gian giao dịch
window() => (time >= start and time <= finish)

// Điều kiện vào lệnh Buy
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when=window())

// Điều kiện chốt lời và cắt lỗ có thể điều chỉnh
takeProfitPercent = input.float(5, title="Take Profit (%)") / 100
stopLossPercent = input.float(2, title="Stop Loss (%)") / 100

// Tính toán giá trị chốt lời và cắt lỗ dựa trên giá vào lệnh
if (strategy.position_size > 0)
    strategy.exit("Take Profit", "BUY", limit=strategy.position_avg_price * (1 + takeProfitPercent), stop=strategy.position_avg_price * (1 - stopLossPercent))

// Màu nến theo xu hướng
buy1 = ta.barssince(buySignal)
color1 = buy1[1] < na ? color.green : na
barcolor(barcoloring ? color1 : na)


Relationnée

Plus de