Diese Strategie verwendet die Überschneidung von 20-tägigen gleitenden Durchschnitten und 60-tägigen gleitenden Durchschnitten, um Handelssignale zu erzeugen. Sie geht lang, wenn der Preis über 20-tägige MA bricht und schließt die Position, wenn der Preis unter 20-tägige MA bricht. Ähnlich bildet sie Handelssignale, wenn der Preis über 60-tägige MA geht. Diese Strategie gehört zu einem typischen Trendfolgensystem.
Die oben genannten Regeln definieren die Handelssignale und die Logik für diese Strategie. Wenn der Preis über die MA-Linie geht, zeigt dies, dass ein neuer Trend entsteht und wir dem Trend folgen können, um lang zu gehen. Wenn der Preis unter die MA-Linie fällt, zeigt dies, dass der Trend endet, so dass wir die Position schließen.
Risikolösungen:
Dies ist eine typische doppelte gleitende Durchschnitts-Crossover-Strategie. Die Kernidee besteht darin, Trends zu folgen, indem man die Position festlegt, wenn der Preis über die MA-Linie geht. Die Strategie ist einfach und praktisch umzusetzen. In der Zwischenzeit gibt es Raum für weitere Optimierungen, indem Parameter-Tuning, Stop-Loss, Positionsgrößen usw. durchgeführt werden, um bessere Ergebnisse zu erzielen.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h 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 TW", overlay=true, margin_long=100, margin_short=100) 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 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)") //進場條件 longCondition = ta.crossover(close, ta.sma(close, 20)) if (longCondition) and time >= start_time strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多") shortCondition = ta.crossunder(close, ta.sma(close, 20)) if (shortCondition) and time >= start_time strategy.close("open long20",comment="跌破m20平倉", qty=1) longCondition1 = ta.crossover(close, ta.sma(close, 60)) if (longCondition1) and time >= start_time strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多") shortCondition1 = ta.crossunder(close, ta.sma(close, 60)) if (shortCondition1) and time >= start_time strategy.close("open long60",comment="跌破m60平倉", qty=1)