Эта стратегия использует перекресток 20-дневной скользящей средней и 60-дневной скользящей средней для генерации торговых сигналов. Она длится, когда цена превышает 20-дневный MA, и закрывает позицию, когда цена превышает 20-дневный MA. Аналогично, она формирует торговые сигналы, когда цена превышает 60-дневный MA. Эта стратегия принадлежит типичной системе, следующей за трендом.
Вышеприведенные правила определяют торговые сигналы и логику для этой стратегии. Когда цена пересекает линию MA, это показывает, что появляется новый тренд, и мы можем следовать тренду, чтобы пойти длинным. Когда цена падает ниже линии MA, это показывает, что тенденция заканчивается, поэтому мы закрываем позицию.
Решения рисков:
Это типичная стратегия перекрестного движения двойных скользящих средних. Основная идея заключается в том, чтобы следовать тенденциям, устанавливая позиции, когда цена пересекает линию MA. Стратегия проста и практична в реализации. Между тем, есть возможность для дальнейшей оптимизации, путем настройки параметров, остановки потери, размещения позиций и т. Д., Чтобы достичь лучших результатов.
/*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)