Diese Strategie verwendet die Überschneidung von zwei gleitenden Durchschnitten, um Veränderungen der Markttrends zu bestimmen und Kauf-/Verkaufsentscheidungen auf der Grundlage der Trendrichtung zu treffen.
Der Kern dieser Strategie besteht aus zwei gleitenden Durchschnitten: einem schnellen MA (Standardperiode 32) und einem langsamen MA (auch Standardperiode 32), der über Parameter angepasst werden kann.
Durch diese MA-Crossover-Methode kann die Strategie dem Trend folgen und bei Aufwärtstrends Long-Positionen und bei Abwärtstrends Short-Positionen halten, bis ein Umkehrsignal erscheint.
Um diesen Risiken entgegenzuwirken, können geeignete Filter wie ATR- oder Durchschnittswahrheitsbereichsfilter hinzugefügt werden, um den Überhandel auf den unterschiedlichen Märkten zu reduzieren; angemessene Stop-Losses festgelegt werden, um Einzelhandelsverluste zu kontrollieren; und die Parameter kontinuierlich optimiert werden, um sich an den Markt anzupassen.
Die oben genannten Optimierungen können die Fähigkeit der Strategie zur Bewältigung komplexer Märkte verbessern, aber es muss darauf geachtet werden, eine Überoptimierung zu vermeiden, die zu Kurvenanpassung und schlechter zukünftiger Leistung führen kann.
Die doppelte MA-Trend-Folge-Strategie erfasst Trends durch MA-Crossovers. Sie ist einfach, einfach zu bedienen und weit verbreitet.
Die Strategie kann optimiert werden, indem mehr Filterindikatoren, dynamische Stop-Losses, Positionsgrößen, Multi-Timeframe-Analyse und adaptive Parameter eingeführt werden.
Insgesamt kann diese Strategie als grundlegende Trendstrategie dienen, ist aber schwierig, allein zu stehen und ist besser als Teil eines Portfolios von Strategien geeignet.
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //study(title="Demo - SSL Basic", shorttitle="Demo - SSL Basic", overlay=true) strategy(title='Demo - SSL Basic', shorttitle='Demo - SSL Basic', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.15) // Backtest Date Range start_date_long = input(title='Backtest Long Start Date', defval=timestamp('01 Jan 2018 00:00 +0530')) end_date_long = input(title='Backtest Long End Date', defval=timestamp('25 Jan 2030 00:00 +0530')) backtest_range = true // Inputs maType = input.string(title='SSL MA Type', options=['SMA', 'EMA', 'WMA'], defval='SMA') sslLen = input(title='SSL Length', defval=32) showCross = input(title='Show Crossover?', defval=true) showEntry = input(title='Show Entry?', defval=true) showTrend = input(title='Show Trend Colors?', defval=true) // Calc MA for SSL Channel calc_ma(close, len, type) => float result = 0 if type == 'SMA' // Simple result := ta.sma(close, len) result if type == 'EMA' // Exponential result := ta.ema(close, len) result if type == 'WMA' // Weighted result := ta.wma(close, len) result result // Add SSL Channel maHigh = calc_ma(high, sslLen, maType) maLow = calc_ma(low, sslLen, maType) Hlv = int(na) Hlv := close > maHigh ? 1 : close < maLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? maHigh : maLow sslUp = Hlv < 0 ? maLow : maHigh ss1 = plot(sslDown, title='Down SSL', linewidth=2, color=showTrend ? na : color.red) ss2 = plot(sslUp, title='Up SSL', linewidth=2, color=showTrend ? na : color.lime) // Conditions longCondition = ta.crossover(sslUp, sslDown) shortCondition = ta.crossover(sslDown, sslUp) // Strategy if shortCondition strategy.close('Long', comment='Long Exit', alert_message='JSON') if longCondition strategy.close('Short', comment='Short Exit', alert_message='JSON') if backtest_range and longCondition strategy.entry('Long', strategy.long, comment='Long Entry', alert_message='JSON') if backtest_range and shortCondition strategy.entry('Short', strategy.short, comment= 'Short Entry', alert_message='JSON') // Plots fill(ss1, ss2, color=showTrend ? sslDown < sslUp ? color.new(color.lime, transp=75) : color.new(color.red, transp=75) : na, title='Trend Colors')