Black Swan-Volatilität und Moving Average Crossover Momentum Tracking-Strategie

EMA SMA ATR
Erstellungsdatum: 2024-12-13 11:52:51 zuletzt geändert: 2024-12-13 11:52:51
Kopie: 0 Klicks: 458
1
konzentrieren Sie sich auf
1617
Anhänger

Black Swan-Volatilität und Moving Average Crossover Momentum Tracking-Strategie

Überblick

Die Strategie ist ein dynamisches Tracking-Trading-System, das auf Preisschwankungen und Durchschnittskursen basiert. Die Strategie wird hauptsächlich durch die Überwachung von außergewöhnlichen Schwankungen von Preisschwankungen von mehr als 1,91% (“Black Swan Events”) ausgelöst, während die EMA144- und EMA169-Kreuzung kombiniert wird, um die Richtung des Trends und den Zeitpunkt des Ausstiegs zu bestätigen. Die Strategie ist besonders geeignet für kurze 1-3-Minuten-Perioden, um scharfe Marktfluktuationen schnell zu erfassen.

Strategieprinzip

Die Kernlogik der Strategie besteht aus zwei Hauptteilen:

  1. Volatilitäts-Monitoring: Die Absolute Differenz zwischen dem Schlusskurs und dem Eröffnungskurs im Verhältnis zum Schlusskurs wird berechnet, um die Preisschwankungen zu messen, und ein Handelssignal wird ausgelöst, wenn der Verhältnis über 1,91% liegt.
  2. Trendbestätigung: Die Kreuzung von EMA144 und EMA169 wird verwendet, um die Richtung des Trends zu bestätigen, wobei die Kreuzung nach oben mehr macht und die Kreuzung nach unten leer. SMA60 und SMA20 werden als Hilfsindikatoren eingeführt.

Die Strategie wird übertrieben, wenn eine Aufwärtsbewegung von mehr als 1,91% erkannt wird, und wird bei einer Abwärtsbewegung ausgeschlossen. Wenn eine Rückwärtskreuzung der Kurslinie auftritt, wird die Strategie automatisch platziert, um das Risiko zu kontrollieren.

Strategische Vorteile

  1. Schnelle Reaktion: Die Strategie kann die starken Schwankungen des Marktes rechtzeitig erfassen und eignet sich besonders für kurzfristige Geschäfte.
  2. Risikokontrolle: Die Risikokontrolle der Positionshaltung wird durch die Durchschnittslinie gekreuzt, um die Position als “flat” zu bezeichnen.
  3. Hohe Flexibilität: Die Strategie erlaubt die Einstellung von Rücklaufzeiten und Parameter-Anpassungen, die je nach Marktbedingungen optimiert werden können.
  4. Perfekte Positionsverwaltung: Positionskontrolle mit einem Prozentsatz des Konto-Netzwerts und Unterstützung von bis zu 3-fachen Pyramiden.

Strategisches Risiko

  1. Falsche Durchbruch-Risiken: Falsche Signale können in einem sehr schwankenden Markt auftreten, was zu unnötigen Transaktionen führt.
  2. Ausrutschrisiko: Da die Strategie in kurzen Zeiträumen betrieben wird, kann es zu einem größeren Ausrutschverlust kommen.
  3. Trend-Umkehr-Risiko: Ein schneller Trendwechsel nach starken Schwankungen.
  4. Parameter-Sensitivität: Strategieeffekte sind sehr sensibel für Parameter-Einstellungen, die unter verschiedenen Marktbedingungen häufig angepasst werden müssen.

Richtung der Strategieoptimierung

  1. Einführung von Schwankungsfilter: Es wird empfohlen, den ATR-Wert zu erhöhen, um Marktlärm zu filtern und die Signalqualität zu verbessern.
  2. Optimierung der Einreisezeit: Erwägen Sie, die Anzahl der Einreise zu erhöhen, um die Genauigkeit der Einreise zu verbessern.
  3. Dynamische Anpassungsparameter: Es wird empfohlen, ein System anpassungsfähiger Parameter zu entwickeln, die automatisch die Trigger-Höhepunkte an die Marktbedingungen anpassen.
  4. Verbesserte Stop-Loss-Mechanismen: Es wird empfohlen, die Stop-Loss-Funktion zu erweitern, um bestehende Gewinne besser zu schützen.

Zusammenfassen

Die Strategie ermöglicht eine schnelle Reaktion und Trendverfolgung auf ungewöhnliche Marktschwankungen durch die Kombination von Volatilitätsüberwachung und Mittellinienüberschreitung. Die Strategie ist vernünftig ausgelegt und verfügt über eine gute Risikokontrolle, erfordert aber immer noch eine Parameteroptimierung und Risikomanagement durch den Händler in Abhängigkeit von den tatsächlichen Marktbedingungen. Es wird empfohlen, mit kleinen Positionen im Live-Handel zu beginnen und die Strategie schrittweise in verschiedenen Marktumgebungen zu überprüfen.

Strategiequellcode
/*backtest
start: 2024-12-05 00:00:00
end: 2024-12-12 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

//黑天鹅警报器,作者():道格拉斯机器人
//适合1分钟-3分钟的k线,发生波动超过百分之二时,自动报警
strategy('黑天鹅警报', overlay=true, initial_capital=10000, currency='USD', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, pyramiding=3)
//-------------------------------------------
//-------------------------------------------
timecondition = timeframe.period == '480' or timeframe.period == '240' or timeframe.period == 'D' or timeframe.period == '720'
// Make input options that configure backtest date range
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31)
startMonth = input.int(title='Start Month', defval=11, minval=1, maxval=12)
startYear = input.int(title='Start Year', defval=2018, minval=1800, maxval=2100)
endDate = input.int(title='End Date', defval=1, minval=1, maxval=31)
endMonth = input.int(title='End Month', defval=11, minval=1, maxval=12)
endYear = input.int(title='End Year', defval=2031, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange = time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)



// Inputs
a = input(1, title='Key Vaule. \'This changes the sensitivity\'')
c = input(10, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')


ma60 = ta.sma(close, 60)
ema144 = ta.ema(close, 144)

ema169 = ta.ema(close, 169)
ma20 = ta.sma(close, 20)


plot(ema144, color=color.new(color.yellow, 0), title='144')
plot(ema169, color=color.new(color.orange, 0), title='169')


heitiane = close - open
heitiane := math.abs(heitiane)
heitiane /= close

if inDateRange and heitiane > 0.0191 and close < open  //  and close>f3
    strategy.entry('botsell20', strategy.short, comment='黑天鹅追空' + str.tostring(heitiane))

if ta.crossover(ema144, ema169)
    strategy.close('botsell20', comment='平空')
if inDateRange and heitiane > 0.0191 and close > open  //  and close>f3
    strategy.entry('botbuy20', strategy.long, comment='白天鹅追多' + str.tostring(heitiane))

if ta.crossunder(ema144, ema169)
    strategy.close('botbuy20', comment='平多')