Chiến lược này sử dụng sự chéo chéo giữa trung bình động 20 ngày và trung bình động 60 ngày để tạo ra tín hiệu giao dịch. Nó đi dài khi giá phá vỡ trên 20 ngày MA và đóng vị trí khi giá phá vỡ dưới 20 ngày MA. Tương tự, nó tạo ra tín hiệu giao dịch khi giá vượt qua 60 ngày MA. Chiến lược này thuộc về một hệ thống theo xu hướng điển hình.
Các quy tắc trên xác định các tín hiệu giao dịch và logic cho chiến lược này. Khi giá vượt qua đường MA, nó cho thấy một xu hướng mới đang nổi lên và chúng ta có thể theo xu hướng để đi dài. Khi giá giảm xuống dưới đường MA, nó cho thấy xu hướng đang kết thúc vì vậy chúng ta đóng vị trí.
Giải pháp rủi ro:
Đây là một chiến lược chéo trung bình động kép điển hình. Ý tưởng cốt lõi là theo xu hướng bằng cách thiết lập vị trí khi giá vượt qua đường MA. Chiến lược này đơn giản và thực tế để thực hiện. Trong khi đó, có không gian tối ưu hóa hơn nữa, bằng cách điều chỉnh tham số, dừng lỗ, kích thước vị trí vv để đạt được kết quả tốt hơn.
/*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)