La stratégie de suivi des tendances multiples utilise de manière complète les quatre indicateurs MACD, RSI, ATR et DEMA pour identifier les tendances à long et à court terme des actions et effectuer le trading de suivi des tendances.
Le MACD est l'abréviation de Moving Average Convergence Divergence, qui est un indicateur de suivi de tendance. Le MACD se compose d'une ligne moyenne mobile rapide et d'une ligne moyenne mobile lente, utilisant généralement des paramètres de 12 jours EMA pour la ligne rapide, 26 jours EMA pour la ligne lente et ligne de signal comme EMA de 9 jours du MACD. Lorsque le MACD traverse au-dessus de la ligne de signal, c'est un signal d'achat, et lorsqu'il traverse en dessous, c'est un signal de vente.
L'indice de résistance relative (RSI) reflète le statut de surachat et de survente d'un stock, en comparant le gain moyen et la perte moyenne sur une période donnée.
Cette stratégie utilise de manière complète quatre indicateurs MACD, RSI, ATR et DEMA, en tenant compte à la fois du suivi de tendance et du trading de rupture, qui peuvent trouver de meilleurs points d'entrée dans la tendance.
Le MACD permet d'identifier efficacement la direction et les points tournants des tendances à moyen et long terme des cours des actions.
Le RSI peut juger si un stock est suracheté ou survendu à court terme pour éviter de courir après des sommets et de vendre des sommets aux points d'inversion de tendance.
L'ATR ajuste dynamiquement la position d'arrêt des pertes pour contrôler efficacement les pertes individuelles.
Le DEMA sert d'indicateur de jugement auxiliaire pour filtrer le bruit.
La combinaison de plusieurs indicateurs peut améliorer la fiabilité des signaux de négociation.
Cette stratégie comporte également certains risques:
Une divergence peut se produire avec plusieurs combinaisons d'indicateurs, conduisant à des signaux de trading erronés.
L'ATR, en tant qu'indicateur dynamique de stop loss, est susceptible d'être détérioré par de fortes fluctuations entraînant des pertes.
DEMA comme filtre de tendance peut filtrer certaines opportunités de trading à court terme plus fortes.
Des paramètres de stratégie inappropriés peuvent entraîner des transactions fréquentes, une augmentation des coûts de transaction et des pertes par glissement.
Pour contrôler les risques, les paramètres des indicateurs peuvent être ajustés en conséquence. Plus d'indicateurs de jugement auxiliaires peuvent également être introduits pour la confirmation. Développer des stratégies de trading quantitatives nécessite une analyse méticuleuse des données historiques, un backtesting robuste et une gestion prudente des risques. Je ne peux pas recommander des actions spécifiques, mais je peux suggérer de me concentrer sur des principes de développement de stratégie sains.
La stratégie peut également être optimisée dans les aspects suivants:
Testez différentes combinaisons de paramètres pour trouver les paramètres optimaux.
Ajouter des stratégies de stop loss comme le stop loss mobile, le stop loss moyen, etc. pour contrôler davantage les risques.
Introduire plus d'indicateurs de jugement auxiliaires tels que KDJ, bandes de Bollinger, etc. pour améliorer la précision du signal.
Optimiser les sélections de temps d'entrée en combinant des stratégies de rupture pour trouver de meilleurs points d'entrée.
Paramètres différenciés pour les marchés haussiers et baissiers.
Construire des modèles basés sur les caractéristiques des stocks pour améliorer leur adaptabilité.
La stratégie de suivi de tendance multiple intègre quatre indicateurs MACD, RSI, ATR et DEMA, réalisant une combinaison organique de suivi de tendance et de rupture de tendance. Par rapport aux stratégies à indicateur unique, cette stratégie peut fournir des signaux de trading plus fiables et éviter certains faux signaux. Grâce à l'optimisation des paramètres, des stratégies de stop loss, des jugements auxiliaires, etc., la performance de la stratégie peut être encore améliorée. Cette stratégie est adaptée au trading quantitatif nécessitant des capacités de commutation de tendance plus élevées et est une idée stratégique prometteuse qui vaut le suivi et l'optimisation à long terme.
/*backtest start: 2022-11-10 00:00:00 end: 2023-11-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © prim722 // © OTS Music //@version=4 strategy("Atrend by OTS", overlay=true) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD if (crossover(delta, 0)) strategy.entry("MACD buy", strategy.long, comment="MACD buy") if (crossunder(delta, 0)) strategy.entry("MACD sell", strategy.short, comment="MACD sell") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr) length = input( 18 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = rsi(price, length) co = crossover(vrsi, overSold) cu = crossunder(vrsi, overBought) if (not na(vrsi)) if (co) strategy.entry("RSI buy", strategy.long, comment="RSI buy") if (cu) strategy.entry("RSI sell", strategy.short, comment="RSI sell") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr) Periods = input(title="ATR Period", type=input.integer, defval=10) src = input(hl2, title="Source") Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0) changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true) showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false) highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=false) atr2 = sma(tr, Periods) atr= changeATR ? atr(Periods) : atr2 up=src-(Multiplier*atr) up1 = nz(up[1],up) up := close[1] > up1 ? max(up,up1) : up dn=src+(Multiplier*atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? 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 upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.white) buySignal = trend == 1 and trend[1] == -1 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="", text="", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.white, textcolor=color.white, transp=0) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.gray) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0) plotshape(sellSignal and showsignals ? dn : na, title="", text="", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.white : color.white) : color.white shortFillColor = highlighting ? (trend == -1 ? color.gray : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor) alertcondition(buySignal, title="ATrend Buy", message="ATrend Buy!") alertcondition(sellSignal, title="ATrend Sell", message="ATrend Sell!") changeCond = trend != trend[1] alertcondition(changeCond, title="ATrend Direction Change", message="ATrend has changed direction!") length1 = input(25, minval=1) srcb = input(close, title="Source") e1 = ema(srcb, length1) e2 = ema(e1, length) dema = 2 * e1 - e2 plot(dema, "DEMA", color.red)