Quantitative Handelsstrategie basierend auf gleitendem Durchschnitt-Crossover und Intraday-K-Linien-Muster


Erstellungsdatum: 2024-02-29 12:07:21 zuletzt geändert: 2024-02-29 12:07:21
Kopie: 0 Klicks: 636
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Handelsstrategie basierend auf gleitendem Durchschnitt-Crossover und Intraday-K-Linien-Muster

Überblick

Diese Strategie basiert auf der Kreuzung von 9-Tage- und 15-Tage-Moving Averages und einigen typischen intraday-K-Line-Formen, um ein Handelssignal zu erzeugen. Wenn Sie die langsame Linie auf der schnellen Linie durchlaufen und bestimmte Winkelbedingungen und spezifische K-Line-Formen erfüllen, machen Sie mehr; wenn Sie die langsame Linie unter der schnellen Linie durchlaufen, machen Sie leer.

Strategieprinzip

Wenn der kurzfristige gleitende Durchschnitt (die 9-Tage-Linie) über dem langfristigen gleitenden Durchschnitt (die 15-Tage-Linie) gehalten wird, bedeutet dies, dass die kurzfristigen Preise stärker ansteigen und mehr tun; wenn der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt gehalten wird, bedeutet dies, dass die kurzfristigen Preise stärker fallen und leer sind. Der Winkel des gleitenden Durchschnitts muss größer als 30 Grad sein, um sicherzustellen, dass genügend Auf- oder Abwärtsbewegungen vorhanden sind.

Diese Strategie nutzt vor allem die Trend-Tracking-Funktion von Moving Averages und die Eigenschaften einiger K-Line-Formen, die durch Parameter-Anpassung an die verschiedenen Marktorten angepasst werden können.

Analyse der Stärken

Die Strategie kombiniert die Bewegungsmittel mit der intraday-K-Linien-Form-Bestimmung, um einen Teil des Geräusches zu filtern und die Handelssignale zuverlässiger zu machen. Insbesondere wurde die Einschätzung der Winkel-Trench-Werte hinzugefügt, um sicherzustellen, dass die Signale nur dann ausgegeben werden, wenn die Preisbewegung groß genug ist, um unnötige Falschsignale zu vermeiden. Darüber hinaus wurde die Strategie mit Stop-Loss- und Stop-Stop-Levels eingerichtet, um die maximalen Verluste der Einheit automatisch zu reduzieren und einen profitablen Rückzug zu erzielen. Diese Maßnahmen erhöhen die Stabilität und die Profitabilität der Strategie.

Der Moving Average ist ein Trend-Tracking-Indikator, der die mittelfristigen Preisentwicklungen erfasst. Die intraday K-Line-Form spiegelt die Kräfteverhältnisse der Marktteilnehmer in der kurzfristigen Zeit wider. In Kombination mit der Verwendung können Handelstipps auf verschiedenen Zeitskalen erhalten.

Risikoanalyse

Die Risiken, die mit dieser Strategie verbunden sind, sind:

  1. False-Breakout-Risiken. Wenn der Markt in einem Schock-Sortierungs-Zustand ist, können sich die Moving Averages mehrmals kreuzen, wobei die Signale, die aufgrund der Kreuzung ausgegeben werden, meistens falsche Signale sind. Es ist nicht möglich, zu diesem Zeitpunkt einen Gewinn zu erzielen, sondern kann stattdessen eingestellt werden.

  2. Trendwechselrisiko. Der Moving Average ist ein Trend-Tracking-Indikator, der keine Vorwarnung gibt, wenn sich der Trend umkehrt. In diesem Fall kann der Inhaber einer Position einen erheblichen Verlust erleiden.

  3. Parameteroptimierungsrisiken. Unterschiedliche Marktvarianten haben unterschiedliche Anpassungen an die Parameter-Einstellungen. Die direkte Verwendung einer bestimmten Parameterkombination kann auch zu Verlusten führen, wenn keine Anpassungen vorgenommen werden. Dies erfordert die Suche nach den optimalen Parametern durch Rückmeldung und Simulation der Festplatte.

Insgesamt kann diese Strategie in Abwesenheit von Marktumfeld-Urteilen zu einem gewissen Risiko von Fehlsignalen und Auf- und Abwärtsjagden führen. Diese Risiken können durch die Hinzufügung von Urteilen über große Trends und Preismerkmale weiter optimiert und verringert werden.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Erhöhung der Beurteilung von Trends auf einer großen Ebene. Zum Beispiel, ob die lange Linie in einem Auf- oder Abwärtstrand ist, um einen Gegenhandel zu vermeiden.

  2. Hinzu kommt die Analyse von Quantitätsindikatoren. Zum Beispiel kann der Tarifindikator von Communicator die Kauf- und Verkaufskraft bestimmen, um zu vermeiden, dass Aktien mit hohen Tarifen oder mit sehr niedrigen Tarifen einfach abgeschrieben werden.

  3. In Kombination mit den Fundamentaldaten der Aktien. Die Auswahl bestimmter Aktien mit positiven Ergebniserwartungen und stabilen Ergebniszuwächsen kann die Gewinnquote erhöhen.

  4. Optimierung der Parameterkombination eines Moving Average-Systems. Es ist möglich, ein Mittelwert mit unterschiedlichen Periodenlängen auszuprobieren oder ein Dreier- oder Fünfer-Mittelwert hinzuzufügen, um ein größeres Handelssystem zu erstellen, in dem die Parameter angepasst werden können.

  5. Verschiedene Stop-Loss- und Stop-Stop-Parameter werden getestet. Nach den Rückmeldungen wird ein Zins- und Gewinnkoeffizient festgelegt, um das optimale Risiko-Gewinn-Verhältnis zu erzielen.

Durch die Optimierung in den oben genannten Bereichen ist zu erwarten, dass sich die Rentabilität und Stabilität der Strategie deutlich verbessern werden.

Zusammenfassen

Insgesamt integriert diese Strategie die Vorteile des Moving Average-Indikators und der K-Line-Form für einige Tage. Die Bedingungen sind strenger, wenn ein Handelssignal ausgegeben wird, und es kann viel Geräusch gefiltert werden, wodurch die Qualität des Signals, das durchläuft, erheblich verbessert wird. Gleichzeitig wird der maximale Verlust und der erzielte Gewinn durch die Einrichtung von Stop-Loss und Stop-Stops kontrolliert.

Der nächste Schritt ist die Optimierung der Parameter, um die Gewinnrate und die Profitabilität der Strategie weiter zu verbessern. Die Hinzufügung von mehr Indikatoren kann auch die Gesundheit des gesamten Handelssystems stärken. Nach strengen Simulationen in der Praxis wird die Strategie zu einem effektiven Quantifizierungswerkzeug mit stabilen Gewinnen werden.

Strategiequellcode
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)

// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.25, "Stop Loss (%)")
target_percent = input(0.25, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Define candlestick patterns
is_pin_bar() =>
    pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
    high_tail = max(open, close) - high > abs(open - close) * 1.5
    low_tail = low - min(open, close) > abs(open - close) * 1.5
    pin_bar and high_tail and low_tail

is_marubozu() =>
    marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
    no_upper_shadow = high == max(open, close)
    no_lower_shadow = low == min(open, close)
    marubozu and no_upper_shadow and no_lower_shadow

is_full_body() =>
    full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
    full_body

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

// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))

// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)

// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)

// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)

// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)