Chiến lược này xây dựng một chiến lược đẩy kép đơn giản dựa trên chỉ số SMA. Nó đi dài khi giá vượt trên SMA cao nhất 20 giai đoạn và đi ngắn khi giá vượt dưới SMA thấp nhất 20 giai đoạn.
Chiến lược này sử dụng SMA 20 giai đoạn của giá cao nhất và giá thấp nhất để xác định hướng giao dịch. Khi giá vượt qua trên SMA cao nhất, nó được coi là xu hướng tăng, vì vậy đi dài. Khi giá vượt qua dưới SMA thấp nhất, nó được coi là xu hướng giảm, vì vậy đi ngắn.
Cụ thể, chiến lược đầu tiên tính toán SMA 20 giai đoạn của mức giá cao nhất và thấp nhất, và vẽ các đường chỉ số.
Mở đầu dài: Giá đóng vượt qua SMA cao nhất
Lên đường dài: Giá đóng vượt dưới 0,99 * SMA cao nhất
Tham gia ngắn: Giá đóng vượt dưới SMA thấp nhất
Khóa ngắn: Giá đóng vượt trên 1,01 * SMA thấp nhất
Vì vậy, một xu hướng theo chiến lược đẩy kép được xây dựng.
Chiến lược này có những lợi thế sau:
Ngoài ra còn có một số rủi ro với chiến lược này:
Những rủi ro này có thể được kiểm soát và giảm bằng cách kết hợp các chỉ số khác, thiết lập dừng lỗ, điều chỉnh tham số vv.
Chiến lược này cũng có thể được cải thiện trong các khía cạnh sau:
Lý thuyết tổng thể của chiến lược này là rõ ràng và dễ thực hiện. Bằng cách sử dụng SMA để xác định hướng xu hướng và thiết lập các quy tắc nhập / ra hợp lý, có thể đạt được kết quả tốt. Có chỗ cho tối ưu hóa hơn nữa, và bằng cách kết hợp với các kỹ thuật khác, nó có thể trở thành một chiến lược hứa hẹn đáng theo dõi dài hạn.
/*backtest start: 2023-11-14 00:00:00 end: 2023-11-21 00:00:00 period: 10m basePeriod: 1m 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/ // © AlanAntony //@version=4 strategy("ma 20 high-low",overlay=true) //compute the indicators smaH = sma(high, 20) smaL = sma(low, 20) //plot the indicators plot(smaH,title="smaHigh", color=color.green, linewidth=2) plot(smaL,title="smaLow", color=color.red, linewidth=2) //trading logic enterlong = crossover(close,smaH) //positive ema crossover exitlong = crossunder(close,0.99*smaH) //exiting long entershort = crossunder(close,smaL) //negative EMA Crossover exitshort = crossover(close,1.01*smaH) //exiting shorts notintrade = strategy.position_size<=0 bgcolor(notintrade ? color.red:color.green) //execution logic start = timestamp(2015,6,1,0,0) //end = timestamp(2022,6,1,0,0) if time >= start strategy.entry( "long", strategy.long,1, when = enterlong) strategy.entry( "short", strategy.short,1, when = entershort) strategy.close("long", when = exitlong) strategy.close("short", when = exitshort) //if time >= end // strategy.close_all()