Strategie für einen doppelten gleitenden Durchschnittsbruch

Schriftsteller:ChaoZhang, Datum: 2024-02-04 16:06:46
Tags:

img

Übersicht

Die doppelte gleitende Durchschnitts-Breakout-Strategie ist ein typischer Trend nach einer quantitativen Handelsstrategie. Sie erzeugt Handelssignale, indem sie einfache gleitende Durchschnitte verschiedener Perioden berechnet und überprüft, ob der Preis durch sie bricht, um Positionen zu bestimmen. Diese Strategie verwendet 20-Tage- und 60-Tage-gleitende Durchschnitte als Handelssignale.

Strategie Logik

Die Kernlogik der Dual-MA-Strategie besteht darin,Verwendung gleitender Durchschnitte verschiedener Zeiträume zur Erfassung von Kursentwicklungen und Erzeugung von Handelssignalen, wenn der Preis die gleitenden Durchschnitte durchbricht.

Diese beiden gleitenden Durchschnitte können als Werkzeuge angesehen werden, um kurzfristige und mittelfristige Trends zu erfassen. Wenn der kurzfristige Preis den mittelfristigen Preis durchbricht, signalisiert dies, dass der Markt in einem Aufwärtstrend ist und somit lang gehen sollte. Wenn der kurzfristige Preis unter den mittelfristigen Preis fällt, signalisiert dies, dass der Markt in einem Abwärtstrend ist und somit Positionen reduziert werden sollten.

Der Code verwendetta.crossoverundta.crossunderUm zu bestimmen, ob der Kurs einen gleitenden Durchschnitt durchbrochen oder unter einen gleitenden Durchschnitt gefallen hat, werden Handelssignale für eine Long- oder Reduktionsposition entsprechend ausgestrahlt, wenn ein Breakout eintritt.

Vorteile

Die doppelte gleitende Durchschnittsbreakout-Strategie hat folgende Vorteile:

  1. Das Konzept ist einfach und leicht zu verstehen und umzusetzen.
  2. Es kann Markttrends effektiv verfolgen und Lärminterferenzen vermeiden.
  3. Wenige Strategieparameter und leicht zu optimieren.
  4. Flexibilität bei der Auswahl von gleitenden Durchschnittsperioden zur Anpassung der Marktempfindlichkeit.

Risiken

Die Strategie birgt auch einige Risiken:

  1. Sie ist anfällig für Whipsaws, wenn der Markt schwankt, und kann durch eine längere Aufbewahrungsdauer gelindert werden.
  2. Wirksam bei der Erfassung schneller Marktumkehrungen, andere Indikatoren können als Filter hinzugefügt werden.
  3. Die Bewegungsdurchschnittswerte sind von Natur aus zurückgeblieben und können keine Preisänderungen frühzeitig signalisieren.

Verbesserungsbereiche

Die Strategie kann in folgenden Dimensionen verbessert werden:

  1. Optimieren Sie gleitende Durchschnittsperioden, um die besten Parametermengen zu finden.
  2. Hinzufügen anderer Indikatoren, um falsche Signale zu filtern, z. B. MACD, KD usw.
  3. Fügen Sie Stop-Loss-Logik hinzu.
  4. Einbeziehung einer mehrjährigen Analyse der Robustheit.

Zusammenfassung

Die doppelte gleitende Durchschnitts-Breakout-Strategie ist eine einfache und praktische Trendfolgestrategie. Sie kann mittelfristige Trends effektiv erfassen und gleichzeitig kurzfristigen Marktlärm vermeiden. Auch die leicht verständliche Logik und begrenzte Parameter machen sie sehr geeignet für den quantitativen Handel. Natürlich gibt es Verbesserungsmöglichkeiten, wie Parameter-Tuning, Signalfilterung und Stop-Loss, um sie stabiler und profitabler zu machen.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)   


Mehr