Momentum Moving Average Crossover Quant Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-26 11:39:26
Tags:

img

Übersicht

Diese Strategie kombiniert die gleitenden Durchschnitts- und Handelsvolumenindikatoren, um die Regeln für den langen und kurzen Ein- und Ausstieg zu erstellen und eine vollständige quantitative Handelsstrategie zu bilden.

Strategieprinzip

Schlüsselindikatoren

  1. Gleitende Durchschnitte: Schnelle (blaue) und langsame (rote) Wechselkurse
  2. Volumen: 24-Stundenvolumen (violett) und 7-Tage-Durchschnittsvolumen (orange)

Strategiebedingungen

Lange Eintrittsbedingungen:

  1. Schnelle MA überschreitet langsame MA
  2. 24-Stunden-Volumen unter 50% des 7-Tage-Durchschnittsvolumens

Kurzzeitige Zulassungsbedingungen:

Schnelle MA unter der langsamen MA

Ein- und Ausgänge

Langer Eintrag:Wenn lange Bedingungen erfüllt sind, gehen Sie lang

Kurzer Eintrag:Kurzzeitgeschäft, wenn kurze Bedingungen erfüllt sind

Gewinn machen und Verlust stoppen:Anzeige der Gewinn- und Stop-Loss-Level für die Long-Position

Analyse der Vorteile

  1. Kombination von Preis und Volumen verhindert einen falschen Ausbruch
  2. Klare Ein- und Ausstiegsregeln
  3. Gewinn und Stop-Loss zur Risikokontrolle

Risikoanalyse

  1. Häufiger Handel mit einer gleitenden Durchschnittsstrategie
  2. Unzuverlässige Volumendatenqualität
  3. Überoptimierung beim Parameter-Tuning

Verbesserungen

  1. Anpassung der MA-Parameter zur Verringerung der Handelshäufigkeit
  2. Überprüfen Sie Signale mit mehreren Datenquellen
  3. Strenge Rückprüfung zur Verhinderung von Überoptimierung

Optimierungsrichtlinien

  1. Hinzufügen anderer Indikatoren zu Filtersignalen
  2. Dynamische Gewinn- und Stop-Loss-Verfahren
  3. Mehrfache Zeitrahmenanalyse zur Verbesserung der Stabilität

Zusammenfassung

Diese Strategie integriert MA und Volumenindikatoren, um eine vollständige Quant-Strategie mit klaren Einstiegsbedingungen zu entwerfen, Gewinn/Stop-Loss zu nehmen, einfach zu bedienen.


/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA and Volume Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")
volumePercentageThreshold = input(50, title="Volume Percentage Threshold")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Calculate 24-hour volume and weekly volume average
dailyVolume = request.security(syminfo.tickerid, "D", volume)
weeklyVolumeAvg = ta.sma(request.security(syminfo.tickerid, "W", volume), 7)

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA) and dailyVolume < (weeklyVolumeAvg * volumePercentageThreshold / 100)
shortCondition = ta.crossunder(fastMA, slowMA)

// Set take profit and stop loss levels
takeProfitLong = close * 1.50
stopLossLong = close * 0.90

// Strategy orders
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Plot 24-hour volume and weekly volume average
plot(dailyVolume, color=color.purple, title="24-Hour Volume", transp=0)
plot(weeklyVolumeAvg, color=color.orange, title="Weekly Volume Average")

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

// Plot take profit and stop loss levels only when a valid trade is active
plotshape(series=longCondition, title="Take Profit Long", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=longCondition, title="Stop Loss Long", color=color.red, style=shape.triangledown, size=size.small)


Mehr