Quantitative Handelsstrategie, die Trendverfolgung über mehrere Zeiträume und Auftragsblöcke kombiniert

EMA SMA OB
Erstellungsdatum: 2024-07-29 13:57:12 zuletzt geändert: 2024-07-29 13:57:12
Kopie: 0 Klicks: 533
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Handelsstrategie, die Trendverfolgung über mehrere Zeiträume und Auftragsblöcke kombiniert

Überblick

Es handelt sich um eine komplexe quantitative Handelsstrategie, die mehrere technische Indikatoren und Handelsideen kombiniert. Die Strategie basiert hauptsächlich auf Orderblock, Trendveränderungserkennung, Moving Average-Crossing und Multi-Time-Frame-Analyse, um Handelssignale zu erzeugen. Die Kernidee der Strategie ist die Verwendung von Preisverhalten und technischen Indikatoren für die präzise Ein- und Ausstiegsphase in Richtung der Trends in den größeren Zeiträumen (eine Stunde) und in den kleineren Zeiträumen (fünf Minuten).

Strategieprinzip

  1. Orderblock: Die Strategie berechnet mit einer benutzerdefinierten Funktion den Orderblock, eine wichtige Preisstufe, die normalerweise die Konzentration von Orders großer Institutionen darstellt.

  2. Trendwechsel-Erkennung: Eine Kreuzung mit einem einfachen Moving Average (SMA) wird verwendet, um potenzielle Trendwechsel zu erkennen.

  3. Multi-Zeitrahmen-Analyse: Berechnung eines Index-Moving Averages (EMA) mit 50 und 200 Zyklen auf einem 1-Stunden-Zeitrahmen, um größere Markttrends zu ermitteln.

  4. Teilnahmebedingungen:

    • Multi-Head: Wenn ein Aufwärts-Trendsignal auf dem 5-Minuten-Chart auftritt, der Preis den Auftragsblock durchbricht, und der 50 EMA auf dem 1-Stunden-Chart oberhalb der 200 EMA liegt.
    • Blank: Wenn ein Abwärtstrendsignal auf dem 5-Minuten-Chart auftritt, der Preis den Auftragsblock überschreitet, und der 50-EMA auf dem 1-Stunden-Chart unter dem 200-EMA liegt.
  5. Exit-Strategie: Die Verwendung von Stop-Loss-Levels mit festen Prozentsätzen zur Risikomanagement und Gewinnschließung.

Strategische Vorteile

  1. Multidimensionelle Analyse: Die Kombination von mehreren Zeitrahmen und technischen Indikatoren bietet einen umfassenderen Marktblick.

  2. Trend-Tracking: Erhöht die Gewinnwahrscheinlichkeit durch den Handel in Richtung der großen Trends.

  3. Genauere Eintrittszeit: Optimierung der Eintrittszeit durch die Nutzung von Auftragsblöcken und kurzfristigen Trendänderungen.

  4. Risikomanagement: Die Verwendung von vorgegebenen Stop-Loss-Prozentsätzen zur effektiven Kontrolle des Risikos pro Transaktion.

  5. Anpassungsfähigkeit: Strategieparameter können angepasst werden, um sich an unterschiedliche Marktbedingungen anzupassen.

Strategisches Risiko

  1. Übertriebenheit: In einem stark schwankenden Markt kann es zu häufigen Handelssignalen kommen, die die Kosten für den Handel erhöhen.

  2. Rutschrisiko: In weniger liquiden Märkten kann der tatsächliche Ausführungspreis von dem idealen Preis abweichen.

  3. Trendwechselrisiko: In der Nähe des Trendwechselpunkts kann die Strategie einen fortlaufenden Verlust erleiden.

  4. Parameter-Sensitivität: Die Strategie-Performance kann sehr sensibel auf die Parameter-Einstellungen reagieren und muss ständig optimiert werden.

  5. Abhängigkeit von der Marktumgebung: Eine Strategie kann in schlechten oder schnell schwankenden Märkten nicht wirken.

Richtung der Strategieoptimierung

  1. Dynamische Parameter-Anpassung: Berücksichtigen Sie die automatische Anpassung des Stop-Loss-Prozentsatzes an die Marktschwankungen.

  2. Hinzufügen von Filtern: Einführung von zusätzlichen technischen Indikatoren oder Marktstimmungsindikatoren, um falsche Signale zu reduzieren.

  3. Zeit-Filter: Einschränkung der Zeitfenster für den Handel, um schlechte Zeiten zu vermeiden.

  4. Positionsmanagement: Implementierung von komplexeren Positionsmanagementstrategien, wie Positionsanpassungen basierend auf Volatilität.

  5. Rückverfolgung und Optimierung: Erstellen Sie eine umfassendere Rückverfolgung der historischen Daten, um die optimale Kombination von Parametern zu finden.

  6. Erhöhung der Marktumfelderkennung: Entwicklung von Algorithmen, die verschiedene Marktzustände erkennen und die Strategie entsprechend anpassen.

Zusammenfassen

Es ist eine umfassende, logisch komplexe, quantitative Handelsstrategie, die Multi-Time-Framework-Analyse, Order-Block-Theorie und Trend-Tracking-Technologien kombiniert. Die Strategie zielt darauf ab, die Erfolgsrate des Handels durch die Suche nach exakten Einstiegspunkten in der Richtung des großen Trends zu erhöhen. Aufgrund ihrer Komplexität sind die Strategien jedoch auch mit Über-Fitness und Parameter-Sensitivität konfrontiert.

Strategiequellcode
/*backtest
start: 2024-06-28 00:00:00
end: 2024-07-28 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("S&P 500", overlay=true)
// Parámetros
length = input(14, "Longitud")
src = input(close, "Fuente")
profit_percent = input.float(0.08955, "Porcentaje de ganancia", step=0.00001, minval=0)
stop_loss_percent = input.float(0.04477, "Porcentaje de stop loss", step=0.00001, minval=0)
// Función para calcular el Order Block
order_block(src, len) =>
    highest = ta.highest(high, len)
    lowest = ta.lowest(low, len)
    mid = (highest + lowest) / 2
    ob = src > mid ? highest : lowest
    ob
// Cálculo del Order Block
ob = order_block(src, length)
// Función para detectar cambios de tendencia
trend_change(src, len) =>
    up = ta.crossover(src, ta.sma(src, len))
    down = ta.crossunder(src, ta.sma(src, len))
    [up, down]
// Detectar cambios de tendencia
[trend_up, trend_down] = trend_change(src, length)
// Calcular EMA 50 y EMA 200 en timeframe de 1 hora
ema50_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 50))
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
// Condiciones de EMA
ema_buy_condition = ema50_1h > ema200_1h
ema_sell_condition = ema50_1h < ema200_1h
// Señales de compra y venta
buy_signal = trend_up and close > ob and ema_buy_condition
sell_signal = trend_down and close < ob and ema_sell_condition
// Ejecutar la estrategia
if (buy_signal)
    strategy.entry("Compra", strategy.long)
if (sell_signal)
    strategy.entry("Venta", strategy.short)
// Calcular precios de toma de ganancias y stop loss
if (strategy.position_size != 0)
    entry_price = strategy.position_avg_price
    is_long = strategy.position_size > 0
    take_profit = entry_price * (1 + (is_long ? 1 : -1) * profit_percent / 100)
    stop_loss = entry_price * (1 + (is_long ? -1 : 1) * stop_loss_percent / 100)
    strategy.exit(is_long ? "Long TP/SL" : "Short TP/SL", limit=take_profit, stop=stop_loss)
// Visualización
plot(ob, "Order Block", color.purple, 2)
plot(ta.sma(src, length), "SMA", color.blue)
plot(ema50_1h, "EMA 50 1h", color.yellow)
plot(ema200_1h, "EMA 200 1h", color.white)
bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)