Momentum-Doppel-Moving-Average-Crossover-Strategie


Erstellungsdatum: 2023-10-20 16:44:30 zuletzt geändert: 2023-10-20 16:44:30
Kopie: 1 Klicks: 618
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum-Doppel-Moving-Average-Crossover-Strategie

Überblick

Diese Strategie nutzt die Gleichungskreuzung, um die Richtung der Preisbewegung zu bestimmen, ergänzt durch die Gold- und die Todesfalle, um die Gesamttrend zu bestimmen und die Trendverfolgung zu ermöglichen.

Strategieprinzip

Die Strategie nutzt die Kreuzung der beiden Gleichlinien EMA und SMA, um die Richtung der Preisbewegung zu bestimmen. Die EMA reagiert schneller, die SMA reagiert stabiler. Wenn die EMA über die SMA ist, wird die Preisentwicklung als stark beurteilt und mehr gemacht. Wenn die EMA unter der SMA ist, wird die Preisentwicklung als stark beurteilt und weniger gemacht.

Die Strategie verwendet auch die Kreuzung von schnellen und langsamen SMAs, um die Richtung des Gesamttrends zu bestimmen. Wenn ein schneller SMA einen langsamen SMA durchläuft, ist es ein Goldfork und wird als langfristig steigender Trend beurteilt. Wenn ein schneller SMA einen langsamen SMA durchläuft, ist es ein toter Fork und wird als langfristig fallender Trend beurteilt.

Die Strategie wird als Überschlagsmöglichkeit beurteilt, wenn sie die EMA durchschreitet. Wenn es sich um eine Goldforke handelt, ist es eine gute Überschlagsmöglichkeit, nicht nur kurzfristige dynamische Unterstützung zu haben, sondern auch mit dem langfristigen Trend übereinzustimmen. Wenn es sich um eine tote Forke handelt, ist es eine riskantere Überschlagsmöglichkeit, nur kurzfristige dynamische Unterstützung zu haben und nicht mit dem langfristigen Trend übereinzustimmen.

Analyse der Stärken

  • Durchschnittliche Linie-Kreuzung zur Beurteilung der Preisbewegung und -richtung
  • Gleichzeitige Betrachtung der kurzfristigen Dynamik und der langfristigen Trends
  • Hoch zuverlässige Bestätigungssignale in Kombination mit doppelten Indikatoren
  • Anpassung an unterschiedliche Perioden durch Anpassung der Mittellinienparameter
  • Konfigurierbar, ob spezifische Handelssignale angezeigt werden, Anpassung der Schnittstelle

Risikoanalyse

  • Der Kursverlauf ist zurückgeblieben und es kann zu Verlusten an den besten Kauf- und Verkaufspunkten kommen.
  • Fixed-Cycle-SMAs können keine Preisänderungen in Echtzeit abbilden.
  • Lang- und kurzperiodische Durchschnittslinien können ein falsches Kreuzungssignal erzeugen
  • Langfristige Risikobereitschaft

Das Risiko kann durch die Bestätigung von Signalen in Kombination mit anderen Indikatoren, die Optimierung der Parameter der Mittellinienzyklus oder die Einstellung von Stop-Losses verringert werden.

Optimierungsrichtung

  • Das Unternehmen hat auch die Möglichkeit, andere Indikatoren zu filtern, wie z. B. Transaktionsvolumen, Brin-Band usw.
  • Erhöhung der Stop-Loss-Strategie
  • Optimierung der Parameter für die Durchschnittslinie
  • Optimierung der Kapitalverwaltung
  • Erwägen Sie eine Realzeit-Anpassung des Positionsanteils

Zusammenfassen

Diese Strategie ist insgesamt eine stabilere und zuverlässigere Trend-Tracking-Strategie. Sie berücksichtigt sowohl die kurzfristige Preisbewegung als auch die langfristige Trendrichtung und erzeugt Handelssignale durch die Kreuzung von Mittellinien. Im Vergleich zu einer einzigen Mittellinien-Strategie ist sie in Kombination mit einer Doppelindikatorbestätigung zuverlässig.

Strategiequellcode
/*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)