이 전략은 거래 신호를 생성하기 위해 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)