Quantitative Handelsstrategie basierend auf Preis und SMA-Crossover


Erstellungsdatum: 2024-02-22 17:34:09 zuletzt geändert: 2024-02-22 17:34:09
Kopie: 0 Klicks: 572
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Handelsstrategie basierend auf Preis und SMA-Crossover

Überblick

Diese Strategie, die als “Quantitative Trading Strategy” bezeichnet wird, basiert auf der Quantifizierung von Kurs-SMA-Kreuzungen und erzeugt Handelssignale, indem sie die unterschiedlichen Zyklen der SMA berechnet und die Kurs-SMA-Kreuzungen verfolgt. Es wird ein Kaufsignal erzeugt, wenn der Preis den SMA von unten nach oben durchbricht; es wird ein Verkaufsignal erzeugt, wenn der Preis den SMA von oben nach unten durchbricht.

Strategieprinzip

Die Kernlogik der Strategie besteht darin, die Kreuzung des Preises mit dem 21-Tage-SMA zu verfolgen. Die Strategie berechnet auch den 50-Tage-SMA und den 200-Tage-SMA, um einen Trend zu bestimmen.

Die Strategie beantragt, den Schlusskurs der Aktie innerhalb des angegebenen Datumsbereichs zu erhalten und berechnet dann die unterschiedlichen SMAs basierend auf den eingegebenen SMA-Zyklen. Wenn der Preis von unten nach oben den 21st-SMA überschreitet, wird ein Kaufsignal gesetzt; wenn der Preis von oben nach unten den 21st-SMA überschreitet, wird ein Verkaufssignal gesetzt.

Die Strategie verfolgt den aktuellen Halt, während sie den SMA berechnet und die Kreuzung beurteilt. Wenn ein Kaufsignal ausgelöst wird, geht die Strategie in die Haltestelle; wenn ein Verkaufsignal ausgelöst wird, wird die Strategie ausgeglichen. Auf diese Weise wird der automatische Handel basierend auf dem SMA-Kreuzungssystem abgeschlossen.

Analyse der Stärken

Der größte Vorteil dieser Strategie ist die Einfachheit und Leichtigkeit des Handelns. SMA ist ein allgemein verwendeter Indikator für die technische Analyse, SMA-Kreuzungen sind eine der häufigsten Handelssignalen. Diese Strategie, die auf Indikatorkreuzungen basiert, kann leicht auf verschiedene Aktien und Zeitspannen angewendet werden und ist für den automatisierten Handel geeignet.

Ein weiterer Vorteil ist, dass die Strategie optimiert werden kann, indem die SMA-Parameter angepasst werden. Zum Beispiel kann verschiedene Kombinationen von SMA-Zyklen getestet werden, um die besten Parameter zu finden, die den Schwankungen bestimmter Aktien entsprechen. Darüber hinaus kann die Strategie durch das Hinzufügen weiterer Indikatoren bestätigt und optimiert werden.

Risiken und Lösungen

Die größte Gefahr dieser Strategie besteht darin, dass die Indikator-Strategie mehr falsche Signale erzeugt. Zum Beispiel können die Preise während der Schwingungsphase häufig unterirdisch durch die SMA gehen, was zu unnötigen Handelssignalen führt.

Häufige Lösungen umfassen die Einstellung von Stop-Loss, die Anpassung von Parametern oder das Hinzufügen von Filterbedingungen. Zum Beispiel kann die Maximalverlustquote eingestellt werden, um das Risiko zu begrenzen. Die SMA-Periode kann auch angepasst werden, um eine stabilere Kombination von Parametern zu wählen.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Testen und Auswahl der optimalen Kombination von SMA-Parametern. Verschiedene SMA-Längen können zurückverfolgt werden, um die am besten geeignete Periode zu finden.

  2. Zusätzliche FilterSignal confirmation, wie RSI, MACD usw. werden hinzugefügt. Dies kann einige falsche Signale herausfiltern.

  3. Die Einführung von Stop-Loss-Logik. Die Einrichtung von Maximalverlust-Toleranzen oder die Bewegung von Stop-Loss-Logiken können das Risiko kontrollieren.

  4. Optimierung der Eintrittszeit. Eintritt in der Nähe von wichtigen Durchbruchspunkten kann in Betracht gezogen werden, anstatt die SMA-Kreuzung streng zu verfolgen.

  5. Testung von kombinierten Strategien. Sie können mit anderen Arten von Strategien, wie z. B. Trend-Tracking, kombiniert werden.

Zusammenfassen

Die Strategie ermöglicht die Automatisierung des Handels durch einfache Kreuzung von SMA-Indikatoren. Die Vorteile sind einfach und leicht zu handhaben und zu verstehen; die Nachteile sind häufige Signale und leicht zu erfassen. Wir können die Effektivität der Strategie durch Parameteroptimierung, Hinzufügen von Filtern, Stop Loss usw. verbessern.

Strategiequellcode
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Price Cross Above/Below SMA Strategy", shorttitle="Tressy Strat", overlay=true)

// Define start and end year inputs
start_year = input.int(2022, title="Start Year")
end_year = input.int(2022, title="End Year")

// Define start and end month inputs
start_month = input.int(1, title="Start Month", minval=1, maxval=12)
end_month = input.int(12, title="End Month", minval=1, maxval=12)

// Define SMA length inputs
sma_length = input.int(21, title="SMA Length")
sma_length_50 = input.int(50, title="50 SMA Length")
sma_length_200 = input.int(200, title="200 SMA Length")

// Filter data within the specified date range
filter_condition = true
filtered_close = request.security(syminfo.tickerid, "D", close[0], lookahead=barmerge.lookahead_on)

// Define SMAs using the input lengths
sma = ta.sma(filtered_close, sma_length)
sma_50 = ta.sma(filtered_close, sma_length_50)
sma_200 = ta.sma(filtered_close, sma_length_200)

// Initialize position
var bool in_position = false

// Condition for a price cross above SMA within the date range
cross_above = filter_condition and ta.crossover(filtered_close, sma)

// Condition for a price cross below SMA within the date range
cross_below = filter_condition and ta.crossunder(filtered_close, sma)

// Buy condition
if cross_above
    in_position := true

// Sell condition
if cross_below
    in_position := false

// Strategy entry and exit
if cross_above
    strategy.entry("Buy", strategy.long)
if cross_below
    strategy.close("Buy")

// Plot the SMAs on the chart
plot(sma, color=color.blue, title="21 SMA")
plot(sma_50, color=color.red, title="50 SMA")
plot(sma_200, color=color.orange, title="200 SMA")

// Plot the Buy and Sell signals with "tiny" size
plotshape(cross_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal")
plotshape(cross_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal")