Die gleitende Durchschnitts-Crossover-Handelsstrategie ist eine relativ verbreitete quantitative Handelsstrategie. Diese Strategie erzeugt Handelssignale, indem sie gleitende Durchschnitte verschiedener Perioden und entsprechend ihren Crossover-Situationen berechnet. Insbesondere berechnet sie die exponentiellen gleitenden Durchschnitte (EMA) von 4 Perioden, 8 Perioden und 20 Perioden. Wenn die kurzfristige EMA über die langfristige EMA überschreitet, gehen Sie lang; wenn die kurzfristige EMA unter die langfristige EMA überschreitet, gehen Sie kurz.
Die Kernlogik dieser Strategie lautet:
Durch diese Methode nutzen wir das Crossover zwischen verschiedenen Perioden gleitenden Durchschnitten, um Marktsignale zu beurteilen, und verwenden die Richtung des längsten Perioden gleitenden Durchschnitts, um falsche Signale zu filtern und eine stabile Handelsstrategie zu konstruieren.
Die wichtigsten Vorteile dieser Strategie sind:
Diese Strategie birgt auch einige Risiken:
Die wichtigsten Lösungen sind:
Die Strategie kann in folgenden Aspekten optimiert werden:
Periodenoptimierung: Bestimmung der optimalen Kombination von MA-Perioden für verschiedene Sorten.
Stop-Loss-Optimierung: Grundsätzliche Festlegung von Stop-Loss-Punkten zur Kontrolle einzelner Verluste.
Parameteroptimierung: Dynamische Optimierung von Parametern mit Hilfe von genetischen Algorithmen, Markov-Ketten usw.
Modellfusion: Integration mit LSTM, RNN und anderen Deep-Learning-Modellen, um mehr Alpha zu extrahieren.
Optimierung des Portfolios: Kombination mit anderen Strategien für technische Indikatoren zur Erstellung von Strategieportfolios.
Im Allgemeinen ist die gleitende Durchschnitts-Crossover-Strategie eine relativ klassische und häufig verwendete quantitative Handelsstrategie. Diese Strategie hat eine einfache Logik und ist leicht zu verstehen und zu implementieren, mit einer gewissen Stabilität. Aber es gibt auch einige Probleme, wie die Erzeugung falscher Signale, die Unfähigkeit, sich an Marktveränderungen anzupassen, usw. Diese Probleme können durch Parameteroptimierung, Stop-Loss-Optimierung, Modellfusion und andere Methoden verbessert werden. Insgesamt kann die gleitende Durchschnittsstrategie als Grundmodul in der Strategie-Toolbox verwendet werden, kombiniert mit komplexeren Strategien, um robuste komplexe Strategien zu erstellen.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2.05) //stock strategy strategy(title = "stub", overlay = true) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.0,default_qty_value=10000) testStartYear = input(1900, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2018, "Backtest Start Year") testEndMonth = input(12, "Backtest Start Month") testEndDay = input(1, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true ema1 = ema(close,4) ema2 = ema(close,8) ema3 = ema(close,20) go_long = ema1[0] > ema2[0] and ema3[0] > ema3[1] exit_long = ema1[0] < ema2[0] or ema3[0] < ema3[1] go_short = ema1[0] < ema2[0] and ema3[0] < ema3[1] exit_short = ema1[0] > ema2[0] or ema3[0] > ema3[1] if testPeriod() strategy.entry("simpleBuy", strategy.long, when=go_long) strategy.exit("simpleBuy", "simpleSell",when=exit_long) strategy.entry("simpleSell", strategy.short,when=go_short) strategy.exit("simpleSell", "simpleSell",when=exit_short)