Chiến lược này tạo ra tín hiệu mua và bán dựa trên đường chéo vàng và đường chéo chết của nhiều đường trung bình di chuyển đơn giản (SMA) với các khoảng thời gian khác nhau để xác định hướng xu hướng. Nó sử dụng 4 SMA - 20 ngày, 50 ngày, 100 ngày và 200 ngày SMA. Khi SMA ngắn hạn vượt qua đường SMA dài hạn, nó được coi là đường chéo vàng và tín hiệu mua được kích hoạt. Khi SMA ngắn hạn vượt dưới đường SMA dài hạn, nó được coi là đường chéo chết và tín hiệu bán được kích hoạt.
Logic cốt lõi của chiến lược này dựa trên các điểm sau:
Đếm nhiều SMA với các khoảng thời gian khác nhau bao gồm SMA 20 ngày, 50 ngày, 100 ngày và 200 ngày.
Kiểm tra các tình huống chéo giữa SMA ngắn hạn (20 ngày) và SMA dài hạn (50 ngày, 100 ngày, 200 ngày).
Khi SMA 20 ngày vượt qua trên SMA 50 ngày, nó được coi là một đường chéo vàng và tín hiệu mua được kích hoạt.
Xu hướng lớn hơn được xác định bởi SMA thời gian dài hơn ở trên SMA thời gian ngắn hơn, tức là SMA 50 ngày > SMA 20 ngày.
Các tín hiệu đầu vào được ưu tiên là: SMA 20 ngày so với SMA 50 ngày > SMA 20 ngày so với SMA 100 ngày > SMA 20 ngày so với SMA 200 ngày.
Tín hiệu thoát được tạo ra khi SMA 20 ngày vượt qua lại dưới SMA 50 ngày.
Chiến lược này chủ yếu dựa trên đường chéo SMA để xác định hướng xu hướng. Các đường chéo vàng trong thị trường bò và đường chéo chết trong thị trường gấu có thể báo hiệu sự khởi đầu của xu hướng tiềm năng. Ngoài ra, các đường chéo dài hạn SMA ở trên đường chéo ngắn hạn SMA phục vụ như một xác nhận về xu hướng lớn hơn.
Những lợi thế chính của chiến lược này bao gồm:
Lý thuyết đơn giản và dễ hiểu và thực hiện.
SMA tốt hơn EMA trong việc lọc tiếng ồn thị trường và xác định xu hướng.
Sử dụng nhiều SMA thời gian cải thiện độ tin cậy tín hiệu.
Việc đặt ưu tiên cho các tín hiệu nhập cảnh tránh nhập cảnh sớm.
Thời gian và màu sắc SMA có thể tùy chỉnh cho phép tối ưu hóa chiến lược.
Áp dụng cho nhiều khung thời gian cho các phong cách giao dịch khác nhau.
Hệ thống chéo SMA rất hiệu quả trong việc xác định hướng xu hướng chính.
Một số rủi ro liên quan đến chiến lược này:
Quá nhiều tín hiệu sai có thể xảy ra trong các thị trường dao động với các đường chéo SMA thường xuyên.
Thời gian SMA cố định không thể thích nghi với những thay đổi của thị trường, các tham số nên được tối ưu hóa dựa trên xu hướng và biến động.
Đường chéo SMA một mình không thể xác định chính xác nhập cảnh, các chỉ số khác như MACD nên được kết hợp.
Các SMA có tính chất chậm, thời gian đầu vào cần tối ưu hóa hoặc lệnh giới hạn nên được sử dụng.
Việc thực hiện lệnh dừng lỗ nghiêm ngặt là rất quan trọng để bảo tồn vốn.
Tiền kinh doanh chi phí ảnh hưởng đến lợi nhuận nên được xem xét.
Một số cách để tối ưu hóa chiến lược này:
Tối ưu hóa thời gian SMA dựa trên điều kiện thị trường và ATR.
Thêm các chỉ số khác như MACD, RSI cho thời gian nhập cảnh.
Thêm bộ lọc xu hướng như ADX để tránh tín hiệu sai trong quá trình hợp nhất.
Tối ưu hóa các phương pháp dừng lỗ như dừng ATR hoặc dừng theo dõi.
Quản lý kích thước vị trí theo quy mô tài khoản.
Kiểm tra các thông số tối ưu trên các loại tài sản khác nhau.
Kết hợp nhiều khung thời gian để đảm bảo tính nhất quán với xu hướng khung thời gian cao hơn.
Tóm lại, hệ thống chéo SMA đơn giản này đáng tin cậy trong việc xác định hướng xu hướng và phù hợp với hầu hết các nhà giao dịch. Tuy nhiên, nó có một số vấn đề chậm trễ và có thể tạo ra tín hiệu sai. Chúng ta nên tìm cách tăng cường thời gian nhập cảnh, dừng lỗ, kích thước vị trí vv để làm cho nó mạnh mẽ trong môi trường thị trường thay đổi. Sự kết hợp của nhiều chỉ số kỹ thuật và đánh giá xu hướng là chìa khóa để xây dựng một chiến lược theo xu hướng vững chắc.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m 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/ // © xyzdesign1989 //@version=5 strategy("SMA crossover buy/sell [SCSM_Algo]", overlay=true, margin_long=3000, margin_short=3000) BuyCond = ta.crossover(ta.sma(close, 20), ta.sma(close, 50)) and ta.sma(close, 20) > ta.sma(close, 50) and ta.sma(close, 50) > ta.sma(close, 100) and ta.sma(close, 100) > ta.sma(close, 200) or (ta.crossover(ta.sma(close, 20), ta.sma(close, 100)) and ta.sma(close, 20) > ta.sma(close, 50)) if (BuyCond) strategy.entry("SCSM 🤲 Buy", strategy.long) SellCond = ta.crossunder(ta.sma(close, 20), ta.sma(close, 50)) if (SellCond) strategy.entry("الحمد للہ،Sell", strategy.short) ma(source, length, type) => type == "SMA" ? ta.sma(source, length) : type == "EMA" ? ta.ema(source, length) : type == "SMMA (RMA)" ? ta.rma(source, length) : type == "WMA" ? ta.wma(source, length) : type == "VWMA" ? ta.vwma(source, length) : na show_ma1 = input(true , "MA №1", inline="MA #1") ma1_type = input.string("SMA" , "" , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma1_source = input(close , "" , inline="MA #1") ma1_length = input.int(20 , "" , inline="MA #1", minval=1) ma1_color = input(#0929f6, "" , inline="MA #1") ma1 = ma(ma1_source, ma1_length, ma1_type) plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1") show_ma2 = input(true , "MA №2", inline="MA #2") ma2_type = input.string("SMA" , "" , inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma2_source = input(close , "" , inline="MA #2") ma2_length = input.int(50 , "" , inline="MA #2", minval=1) ma2_color = input(#00fb04, "" , inline="MA #2") ma2 = ma(ma2_source, ma2_length, ma2_type) plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2") show_ma3 = input(true , "MA №3", inline="MA #3") ma3_type = input.string("SMA" , "" , inline="MA #3", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma3_source = input(close , "" , inline="MA #3") ma3_length = input.int(100 , "" , inline="MA #3", minval=1) ma3_color = input(#131313, "" , inline="MA #3") ma3 = ma(ma3_source, ma3_length, ma3_type) plot(show_ma3 ? ma3 : na, color = ma3_color, title="MA №3") show_ma4 = input(true , "MA №4", inline="MA #4") ma4_type = input.string("SMA" , "" , inline="MA #4", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma4_source = input(close , "" , inline="MA #4") ma4_length = input.int(200 , "" , inline="MA #4", minval=1) ma4_color = input(#f60c0c, "" , inline="MA #4") ma4 = ma(ma4_source, ma4_length, ma4_type) plot(show_ma4 ? ma4 : na, color = ma4_color, title="MA №4")