Handelssystem mit dynamischem Support-Level und dualem Zeitrahmen

SMA EMA
Erstellungsdatum: 2024-12-05 16:44:56 zuletzt geändert: 2024-12-05 16:44:56
Kopie: 0 Klicks: 366
1
konzentrieren Sie sich auf
1617
Anhänger

Handelssystem mit dynamischem Support-Level und dualem Zeitrahmen

Überblick

Die Strategie ist ein dynamisches, auf doppelten Zeitrahmen basierendes, unterstützendes Positionshandelssystem, das durch die Kombination von SMA- und EMA-Gleichgewichts-Kreuzsignal auf den Wochen- und Tageszeitrahmen gehandelt wird. Das System nutzt die Unterstützung, die zwischen den Gleichgewichten entsteht, um Markttrends und Handelschancen zu identifizieren und die Genauigkeit des Handels durch die Bestätigung von Signalen in zwei verschiedenen Zeiträumen zu verbessern. Die Strategie verwendet eine prozentuale Positionsmanagementmethode und berücksichtigt die Kosten und Schlupffaktoren des Handels.

Strategieprinzip

Der Kern der Strategie besteht darin, Handelssignale zu ermitteln, indem die Kreuzung und Position der Mittellinie in zwei Zeiträumen überwacht wird:

  1. Lange Periode ((Kreislinie) mit 20 Wochen SMA und 21 Wochen EMA, kurze Periode ((Tageslinie) mit 50 Tage SMA und 51 Tage EMA
  2. In langen Perioden erzeugt die EMA ein Mehrwertsignal, wenn sie die SMA nach oben durchquert, und ein Negativsignal, wenn sie nach unten durchquert
  3. In kurzen Perioden erzeugt das Multi-Signal, wenn die EMA die SMA nach oben durchquert und die kurzzeitige EMA über der langzeitigen EMA liegt
  4. Wenn ein kurzfristiger Ausfallsignal oder ein langfristiger Durchschnittsschnitt nach unten auftritt, wird das System alle Polynomen ausgleichen.
  5. Die Strategie läuft innerhalb der angegebenen Zeitspanne und überschreitet die automatische Pause

Strategische Vorteile

  1. Mehrere Bestätigungsmechanismen: Signalbestätigung über zwei Zeiträume, um die Auswirkungen von Falschsignalen zu reduzieren
  2. Dynamische Unterstützungsbänder: Unterstützungsbänder, die sich zwischen Gleichungen bilden, können sich dynamisch an Marktveränderungen anpassen
  3. Gute Risikomanagement: Berücksichtigung von Transaktionskosten und Schlupfpunkten, Verwendung von Prozentpositionsmanagement
  4. Anpassungsfähigkeit: Die Stützbänder passen sich automatisch an Marktschwankungen an
  5. Klare Regeln: Ein- und Ausstiegsbedingungen sind klar, einfach durchzuführen und zu ermitteln

Strategisches Risiko

  1. Schwankungsrisiken: Häufige Falschsignale in schwankenden Märkten
  2. Rückstandsrisiko: Die Durchschnittswerte selbst sind etwas rückständig und können die besten Einstiegspunkte verpassen
  3. Parameter-Sensitivität: Die Wahl der Mittellinien-Periode hat einen größeren Einfluss auf die Strategie-Performance
  4. Marktumgebungsabhängigkeit: Strategie, die in Trendmärkten gut abschneidet, aber in stark schwankenden Märkten schlechter abschneidet
  5. Risikomanagement: Fixe Prozentsätze können unter bestimmten Marktbedingungen zu risikoreich sein

Richtung der Strategieoptimierung

  1. Einführung von Volatilitätsindikatoren: Erwägen Sie, Volatilitätsindikatoren wie ATR hinzuzufügen, um die Positionsgröße dynamisch anzupassen
  2. Optimierungsparameter-Auswahl: Systemleistung kann optimiert werden, indem die Durchschnittsparameter für verschiedene Zeiträume zurückgeprüft werden
  3. Erhöhung der Marktumgebungsfilterung: Hinzufügen von Trendstärkenindikatoren, um unpassende Marktumgebungen zu filtern
  4. Verbesserte Stop-Loss-Mechanismen: Erwägen Sie die Hinzufügung von beweglichen oder festen Stop-Losses zur weiteren Risikokontrolle
  5. Optimierte Positionsverwaltung: Positionsgröße kann dynamisch an Signalstärke und Marktbewegungen angepasst werden

Zusammenfassen

Die Strategie baut ein relativ stabiles Handelssystem auf, indem sie gleichlautende Kreuzsignale aus verschiedenen Zeitspannen kombiniert. Markttrends werden durch das Konzept der Leerbänder erkannt, und die Genauigkeit der Transaktionen wird durch die Verwendung von mehreren Bestätigungsmechanismen verbessert. Die Strategie wurde so konzipiert, dass verschiedene Faktoren des tatsächlichen Handels berücksichtigt werden, einschließlich der Transaktionskosten, der Gleitpunkte und des Zeitmanagements.

Strategiequellcode
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bull Market Support Band", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)

start_date = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")

lsmaLength = input.int(20, title="Long SMA Length", minval=1)
lemaLength = input.int(21, title="Long EMA Length", minval=1)
customLongTimeframe = input.timeframe("W", title="Long Timeframe")  // Khung thời gian dài
ssmaLength = input.int(50, title="Short SMA Length", minval=1)
semaLength = input.int(51, title="Short EMA Length", minval=1)
customShortTimeframe = input.timeframe("D", title="Short Timeframe")  // Khung thời gian ngắn

source = close

// Tính toán SMA và EMA cho khung thời gian dài
smaLong = ta.sma(source, lsmaLength)
emaLong = ta.ema(source, lemaLength)
outSmaLong = request.security(syminfo.tickerid, customLongTimeframe, smaLong)
outEmaLong = request.security(syminfo.tickerid, customLongTimeframe, emaLong)

// Tính toán SMA và EMA cho khung thời gian ngắn
smaShort = ta.sma(source, ssmaLength)
emaShort = ta.ema(source, semaLength)
outSmaShort = request.security(syminfo.tickerid, customShortTimeframe, smaShort)
outEmaShort = request.security(syminfo.tickerid, customShortTimeframe, emaShort)

// Plot các chỉ báo trên biểu đồ
smaPlotLong = plot(outSmaLong, color=color.new(color.red, 0), title='20w SMA (Long)')
emaPlotLong = plot(outEmaLong, color=color.new(color.green, 0), title='21w EMA (Long)')
smaPlotShort = plot(outSmaShort, color=color.new(color.red, 0), title='20d SMA (Short)')
emaPlotShort = plot(outEmaShort, color=color.new(color.green, 0), title='21d EMA (Short)')

// Fill vùng giữa các đường SMA và EMA
fill(smaPlotLong, emaPlotLong, color=color.new(color.orange, 75), fillgaps=true)
fill(smaPlotShort, emaPlotShort, color=color.new(color.orange, 75), fillgaps=true)

// Điều kiện long và short cho khung thời gian dài
longConditionLong = ta.crossover(outEmaLong, outSmaLong)
shortConditionLong = ta.crossunder(outEmaLong, outSmaLong)

// Điều kiện long và short cho khung thời gian ngắn
longConditionShort = ta.crossover(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong)
shortConditionShort = ta.crossunder(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong) // Điều kiện short khi EMA ngắn hạn cắt xuống dưới SMA ngắn hạn và EMA ngắn hạn cao hơn EMA dài hạn

// Kiểm tra điều kiện trong khoảng thời gian được chỉ định
inDateRange = true

// Nếu khung ngắn hạn xuất hiện tín hiệu short, ưu tiên đóng tất cả các lệnh Long
if shortConditionShort and inDateRange
    strategy.close_all()

// Nếu khung dài có tín hiệu short, đóng tất cả các lệnh Long
if shortConditionLong and inDateRange
    strategy.close_all()

// Nếu khung ngắn hạn có tín hiệu long và không có tín hiệu short từ khung dài, vào lệnh Long
if longConditionShort and not shortConditionLong and not shortConditionShort and inDateRange
    strategy.entry("Long", strategy.long)

// Đóng tất cả các lệnh khi không trong khoảng thời gian được chọn
if not inDateRange
    strategy.close_all()