
Tổng quan
Chiến lược này sử dụng đường trung bình di chuyển đơn giản (SMA) trong hai chu kỳ khác nhau để nắm bắt xu hướng giá, và sử dụng chỉ số tương đối mạnh (RSI) và đường trung bình thực tế (ATR) để tối ưu hóa tín hiệu giao dịch và quản lý rủi ro. Khi một SMA ngắn hạn tạo ra tín hiệu mua khi vượt qua SMA dài, nó sẽ tạo ra tín hiệu bán. Đồng thời, chiến lược này sử dụng phương pháp dừng chân di chuyển, điều chỉnh vị trí dừng chân và mất mát theo phong trào giá để bảo vệ lợi nhuận và kiểm soát rủi ro tốt hơn.
Nguyên tắc chiến lược
- Tính toán SMA với hai chu kỳ khác nhau, chu kỳ mặc định là 10 và 30.
- Khi một SMA ngắn hạn trên một SMA dài hạn, nó tạo ra một tín hiệu mua; khi một SMA ngắn hạn dưới một SMA dài hạn, nó tạo ra một tín hiệu bán.
- Khi mua, theo giá đóng cửa hiện tại, thiết lập điểm dừng lỗ và điểm dừng, điểm dừng lỗ mặc định là 2 đơn vị dưới giá đóng cửa và điểm dừng là 6 đơn vị trên giá đóng cửa.
- Trong quá trình giữ vị trí, điều chỉnh vị trí dừng để bảo vệ lợi nhuận tốt hơn.
- Sử dụng chỉ số RSI 14 chu kỳ và chỉ số ATR hỗ trợ đánh giá xu hướng và biến động của thị trường, tối ưu hóa tín hiệu giao dịch.
Lợi thế chiến lược
- Đơn giản và dễ hiểu: Chiến lược này dựa trên nguyên tắc giao tuyến đồng đều cổ điển, logic rõ ràng, dễ hiểu và thực hiện.
- Theo dõi xu hướng: Thông qua hai chu kỳ SMA khác nhau, để nắm bắt hiệu quả xu hướng trung và dài hạn của thị trường, thích nghi với môi trường thị trường khác nhau.
- Động thái Stop Loss: Sử dụng phương pháp Stop Loss di động, điều chỉnh vị trí Stop Loss và Stop Loss theo phong trào giá theo thời gian thực, bảo vệ lợi nhuận và kiểm soát rủi ro.
- Hợp tác đa chỉ số: kết hợp các chỉ số RSI và ATR để đánh giá toàn diện hơn về xu hướng và biến động của thị trường, nâng cao độ tin cậy của tín hiệu giao dịch.
Rủi ro chiến lược
- Rủi ro tối ưu hóa tham số: Các tham số như chu kỳ SMA, vị trí dừng lỗ cần được tối ưu hóa cho các thị trường và giống khác nhau, thiết lập tham số không phù hợp có thể dẫn đến hiệu suất chiến lược kém.
- Rủi ro của thị trường chấn động: Trong môi trường thị trường chấn động, các tín hiệu giao dịch thường xuyên có thể dẫn đến giao dịch quá mức và mất tiền nhanh chóng.
- Rủi ro đảo chiều xu hướng: Chiến lược này có thể gây ra tổn thất liên tục khi xu hướng thị trường đảo ngược.
Hướng tối ưu hóa chiến lược
- Tối ưu hóa các tham số động: điều chỉnh các tham số quan trọng như chu kỳ SMA, vị trí dừng lỗ và các tham số quan trọng theo sự thay đổi của thị trường trong thời gian thực để cải thiện khả năng thích ứng của chiến lược.
- Bộ lọc tín hiệu: giới thiệu các chỉ số kỹ thuật khác hoặc chỉ số tâm trạng thị trường, xác nhận tín hiệu giao dịch lần thứ hai, giảm sai lầm và giao dịch quá mức.
- Quản lý vị trí: Điều chỉnh kích thước vị trí động theo biến động thị trường và khả năng chịu rủi ro của tài khoản, kiểm soát rủi ro giao dịch đơn lẻ.
- Hợp tác đa giống: áp dụng chiến lược này cho nhiều giống liên quan, giảm rủi ro trong tổng thể bằng cách bảo vệ liên quan giữa các giống.
Tóm tắt
Chiến lược dừng chân di động ngang hàng là một chiến lược giao dịch định lượng dựa trên nguyên tắc phân tích kỹ thuật cổ điển, nắm bắt xu hướng thị trường thông qua hai chu kỳ SMA khác nhau và sử dụng phương pháp dừng chân di động để kiểm soát rủi ro. Đồng thời, chiến lược này cũng kết hợp các chỉ số RSI và ATR để đánh giá toàn diện hơn về tình trạng thị trường. Mặc dù chiến lược này có logic rõ ràng và dễ thực hiện, nhưng trong ứng dụng thực tế, vẫn cần chú ý đến các vấn đề như tối ưu hóa tham số, rủi ro thị trường chấn động và rủi ro biến đổi xu hướng.
Mã nguồn chiến lược
/*backtest
start: 2023-05-23 00:00:00
end: 2024-05-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// suitable for : AMZN - 30 minutes, MSFT - 30 minutes, NVDA -15 minutes
strategy("AAPL-SIMPLE_SMA", overlay=true)
// Create Indicator's
// Create Indicator's
shortSMA = ta.sma(close, 10)
longSMA = ta.sma(close, 30)
rsi = ta.rsi(close, 14)
atr = ta.atr(14)
qty = 1
// Specify crossover conditions
longCondition = ta.crossover(shortSMA, longSMA)
shortCondition = ta.crossunder(shortSMA, longSMA)
// // Execute trade if condition is True
if (longCondition)
stopLoss = close -2
// stopLoss=1
takeProfit = close +6
action = "buy"
strategy.entry("long", strategy.long, qty=qty)
// strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit)
strategy.exit("exit", "long", limit=takeProfit)
alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","STOPLOSS":"'+str.tostring(stopLoss)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}')
plot(shortSMA)
plot(longSMA, color=color.purple)