Momentum Dual Moving Average Crossover-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-20 16:44:30
Tags:

img

Übersicht

Diese Strategie verwendet gleitende Durchschnittsquerschnitte, um die Kursdynamikrichtung zu bestimmen, ergänzt durch goldene/Todesquerschnitte, um den Gesamttrend zu beurteilen, um den Trend zu verfolgen.

Strategie Logik

Die Strategie verwendet EMA und SMA-Kreuzungen, um die Kursmomentumsrichtung zu bestimmen. EMA reagiert schneller, während SMA stetiger reagiert. Wenn EMA über SMA überschreitet, wird beurteilt, dass die Aufwärtsdynamik stark ist, gehen Sie lang. Wenn EMA unter SMA überschreitet, wird beurteilt, dass die Abwärtsdynamik stark ist, gehen Sie kurz.

Darüber hinaus verwendet die Strategie auch die Kreuzung von schnellen SMA und langsamen SMA, um die allgemeine Trendrichtung zu bestimmen. Wenn der schnelle SMA über den langsamen SMA überschreitet, ist es ein goldenes Kreuz, was darauf hindeutet, dass der Markt in einem langfristigen Aufwärtstrend ist. Wenn der schnelle SMA unter dem langsamen SMA überschreitet, ist es ein Todeskreuz, was darauf hindeutet, dass der Markt in einem langfristigen Abwärtstrend ist.

Die Strategie identifiziert eine lange Gelegenheit, wenn die EMA über den SMA überschreitet. Wenn es sich zu diesem Zeitpunkt um ein goldenes Kreuz handelt, bedeutet dies, dass der Long-Trend sowohl durch kurzfristige Impulse als auch durch langfristige Trends unterstützt wird, was ein besseres Long-Timing ist. Wenn es sich um ein Death-Cross handelt, wird der Long-Trend nur durch kurzfristige Impulse unterstützt und gegen den Long-Term-Trend, der ein risikoreicheres Long-Timing ist.

Analyse der Vorteile

  • Verwenden Sie MA-Kreuzungen, um die Kursdynamik und -richtung zu beurteilen
  • Betrachtet sowohl die kurzfristige Dynamik als auch den langfristigen Trend
  • Die Bestätigung durch doppelte Indikatoren verbessert die Zuverlässigkeit
  • Anpassungsfähig an verschiedene Zeiträume durch Anpassung der MA-Parameter
  • Anpassbar, um spezifische Handelssignale anzuzeigen/zu verbergen

Risikoanalyse

  • MA-Kreuzfahrten haben Verzögerungen, können die besten Ein-/Ausgangspunkte verpassen
  • Festlaufzeit-SMA kann die Kursänderung nicht in Echtzeit widerspiegeln
  • Es kann zwischen langfristigen/kurzfristigen MA falsche Überschneidungen geben
  • Die langfristige Beteiligung kann das Kapitalrisiko erhöhen

Die Risiken können reduziert werden, indem andere Indikatoren zur Signalbestätigung kombiniert, MA-Perioden optimiert oder Stop-Loss festgelegt werden.

Optimierungsrichtlinien

  • Zusätzliche Filter wie Volumen, Bollinger Bands usw.
  • Hinzufügen einer Stop-Loss-Strategie
  • Optimierung der MA-Perioden
  • Optimierung des Kapitalmanagements
  • Betrachten Sie die dynamische Positionsgröße

Schlussfolgerung

Insgesamt ist dies eine relativ stabile und zuverlässige Trendfolgestrategie. Sie berücksichtigt sowohl die kurzfristige Preisdynamik als auch die langfristige Trendrichtung und erzeugt Handelssignale durch MA-Kreuzungen. Im Vergleich zu einzelnen MA-Strategien hat sie eine höhere Zuverlässigkeit, da sie zwei Indikatoren zur Bestätigung kombiniert. Aber als Trendfolgestrategie sind ihre Parameteroptimierung und Risikokontrolle sehr wichtig. Sie muss wiederholt getestet und abgestimmt werden, um ihr Potenzial wirklich zu realisieren. Mit kontinuierlichen Optimierungen und Verbesserungen kann diese Strategie zu einem wertvollen Bestandteil eines langfristigen quantitativen Anlageportfolios werden.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
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/
// © Cryptoluc1d

//@version=4
strategy("Equal-Length EMA/SMA Crossover Strategy", initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, commission_type=strategy.commission.percent, commission_value=0.2, overlay=true)

// Create inputs

mom_length = input(title="Momentum Length (EMA=SMA)", defval=50)
bias_length_fast  = input(title="Golden Cross Length (Fast)", defval=50)
bias_length_slow  = input(title="Golden Cross Length (Slow)", defval=100)

// Define MAs

ema = ema(close, mom_length) // EMA/SMA crossover of the same period for detecting trend acceleration/deceleration
sma = sma(close, mom_length)
bias_fast = sma(close, bias_length_fast) // golden/death cross for overall trend bias
bias_slow = sma(close, bias_length_slow)

// Define signal conditions

buy_trend = crossover(ema, sma) and bias_fast >= bias_slow // buy when EMA cross above SMA. if this happens during a bullish golden cross, buying is in confluence with the overall trend (bias).
buy_risky = crossover(ema, sma) and bias_fast < bias_slow // buy when EMA cross above SMA. if this happens during a bearish death cross, buying is early, more risky, and not in confluence with the overall trend (bias).
buy_late = crossover(sma, bias_slow) and ema > sma // the SMA crossing the Slow_SMA gives further confirmation of bullish trend, but signal comes later.
sell = crossunder(ema, sma) // sell when EMA cross under SMA.

// Enable option to hide signals, then plot signals

show_signal = input(title="Show Signals", defval=true)

plotshape(show_signal ? buy_trend : na, title='Trend Buy', style=shape.triangleup, location=location.belowbar, color=color.green, text='TREND BUY')
plotshape(show_signal ? buy_risky : na, title='Risky Buy', style=shape.triangleup, location=location.belowbar, color=color.olive, text='RISKY BUY')
plotshape(show_signal ? buy_late : na, title='Late Buy', style=shape.triangleup, location=location.belowbar, color=color.lime, text='LATE BUY')
plotshape(show_signal ? sell : na, title='Sell', style=shape.triangledown, location=location.abovebar, color=color.red, text='SELL')

// Define entry and exit conditions

longCondition = ema > sma and bias_fast >= bias_slow // LONG when EMA above SMA, and overall trend bias is bullish
if (longCondition)
    strategy.entry("BUY TREND", strategy.long)
exitLong = crossunder(ema, sma) // close LONG when EMA cross under SMA
strategy.close("BUY TREND", when=exitLong)

// // short conditions. turned off because up only.
// shortCondition = ema < sma and bias_fast <= bias_slow // SHORT when EMA under SMA, and overall trend bias is bearish
// if (shortCondition)
//     strategy.entry("SELL TREND", strategy.short)
// exitShort = crossover(ema, sma) // close SHORT when EMA cross over SMA
// strategy.close("SELL TREND", when=exitShort)

// Enable option to show MAs, then plot MAs

show_ma = input(title="Show MAs", defval=false)

plot(show_ma ? ema : na, title="Momentum EMA", color=color.green, linewidth=1)
plot(show_ma ? sma : na, title="Momentum SMA", color=color.yellow, linewidth=1)
plot(show_ma ? bias_fast : na, title="Golden Cross SMA (Fast)", color=color.orange, linewidth=2)
plot(show_ma ? bias_slow : na, title="Golden Cross SMA (Slow)", color=color.red, linewidth=2)

Mehr