Handelsstrategie basierend auf drei aufeinanderfolgenden schwarzen Kerzen und doppelten gleitenden Durchschnitten

SMA SMA200
Erstellungsdatum: 2024-05-14 17:30:35 zuletzt geändert: 2024-05-14 17:30:35
Kopie: 3 Klicks: 506
1
konzentrieren Sie sich auf
1617
Anhänger

Handelsstrategie basierend auf drei aufeinanderfolgenden schwarzen Kerzen und doppelten gleitenden Durchschnitten

Überblick

Die Strategie ist eine Handelsstrategie, die auf drei aufeinanderfolgenden Negative und zwei Negative basiert. Die Hauptidee der Strategie ist: Wenn drei Negative in Folge auftreten und der aktuelle Schlusskurs über dem 200-Tage-Mittelwert liegt, eröffnen Sie eine Position.

Strategieprinzip

  1. Berechnen Sie die Anzahl der aufeinanderfolgenden Wurzeln. Wenn der Schlusskurs sinkt, wird die Anzahl der aufeinanderfolgenden Wurzeln mit 1 addiert; andernfalls wird die Anzahl der aufeinanderfolgenden Wurzeln auf 0 umgesetzt.
  2. Berechnen Sie die 10-Tages- und die 200-Tages-Mittelwerte.
  3. Der aktuelle Schlusskurs ist höher als der 10-Tage-Mittelwert.
  4. Um zu beurteilen, ob die Einstiegsvoraussetzungen erfüllt sind: drei aufeinanderfolgende Negative, die aktuelle Zeit liegt im angegebenen Bereich und der aktuelle Schlusskurs liegt über dem 200-Tagesdurchschnitt.
  5. Beurteilung, ob die Ausstiegsvoraussetzungen erfüllt sind: Die 10-Tage-Mittellinie kreuzt mit dem Preis oder der Preis erreicht den Stop-Loss-Punkt.
  6. Wenn die Einstiegsvoraussetzungen erfüllt sind und keine Position vorhanden ist, wird eine weitere Position eröffnet.
  7. Wenn die Ausstiegsvoraussetzungen erfüllt sind und eine aktuelle Position besteht, wird die Position platziert.

Strategische Vorteile

  1. Der Trend- und Schwankungsfaktor wird berücksichtigt, um die Chancen bei Trends und Schwankungen zu nutzen.
  2. Die Einrichtung von Stop-Loss-Systemen ermöglicht eine effektive Risikokontrolle.
  3. Die Zeiträume, in denen die Strategie ausgeführt wird, sind begrenzt, um zu vermeiden, dass zu hohe Risiken in bestimmten Zeiten eingegangen werden.
  4. Die Code-Logik ist klar, lesbar, leicht zu verstehen und zu optimieren.

Strategisches Risiko

  1. Bei einer fortlaufenden Strömung ist das Urteilsvermögen zu einfach und kann zu Fehlsignalen führen.
  2. Die Stop-Loss-Einstellungen sind möglicherweise nicht flexibel genug, was zu häufigen Geschäften oder verpassten Gelegenheiten führen kann, wenn die Marktlage stark schwankt.
  3. Unerwartete Ereignisse, wichtige Nachrichten und andere außergewöhnliche Ereignisse sind nicht ausreichend berücksichtigt und können zusätzliche Risiken mit sich bringen.

Richtung der Strategieoptimierung

  1. Es kann in Betracht gezogen werden, mehr technische Indikatoren wie RSI, MACD usw. einzuführen, um eine robustere Signalentscheidungslogik zu erstellen.
  2. Die Einstellungen für Stop-Loss können optimiert werden, indem ein dynamischer Stop-Loss oder ein Stop-Loss auf Basis von Volatilitätsindikatoren wie ATR eingeführt wird.
  3. Die Auswirkungen verschiedener Parameter-Einstellungen auf die Strategie können untersucht werden, z. B. die Folge der Negativwurzel, die Durchschnittsphase usw., um die optimale Kombination von Parametern zu finden.
  4. Positionsverwaltung kann eingesetzt werden, um Positionen entsprechend der Dynamik der verschiedenen Marktbedingungen anzupassen und die Effizienz der Kapitalnutzung zu verbessern.

Zusammenfassen

Die Strategie erstellt ein einfaches und verständliches Handelsmodell durch eine Kombination aus einer Reihe von Schatten- und Doppel-Even-Linien. Die Strategie erfasst Trendchancen und bietet gleichzeitig eine Reihe von Risikokontrollmaßnahmen. Die Strategie kann jedoch durch die Einführung von mehr technischen Kennzahlen, optimierten Parameter-Einstellungen, dynamischen Stop-Loss- und Positionsmanagement-Maßnahmen weiter optimiert werden.

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

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)