Chiến lược này thực hiện giao dịch tự động bằng cách tính toán trung bình di chuyển của các chu kỳ khác nhau, thiết lập điểm dừng lỗ và dừng lỗ. Làm nhiều khi di chuyển trên trung bình di chuyển ngắn hạn trên trung bình di chuyển dài hạn; trống khi di chuyển dưới trung bình di chuyển ngắn hạn dưới trung bình di chuyển dài hạn. Đồng thời thiết lập điểm dừng lỗ và dừng để kiểm soát rủi ro.
Chiến lược này dựa trên nguyên tắc giao thoa đường trung bình. Nó tính toán đồng thời đường trung bình di chuyển đơn giản 9 ngày và đường trung bình di chuyển đơn giản 55 ngày.
Trong khi đó, chiến lược này sử dụng chỉ số ATR để thiết lập điểm dừng và điểm dừng. Chỉ số ATR có thể đo lường mức độ biến động của thị trường. Cài đặt điểm dừng là giá đóng cửa trừ ATR, do đó, có thể thiết lập một điểm dừng hợp lý dựa trên biến động của thị trường.
Đây là một chiến lược giao dịch đường ngắn rất đơn giản và thực tế, với một số ưu điểm:
Chiến lược này cũng có một số rủi ro:
Những rủi ro này có thể được giảm bớt bằng cách tối ưu hóa các tham số, dừng lỗ nghiêm ngặt và quản lý vị trí hợp lý.
Chiến lược này có thể được tối ưu hóa hơn nữa:
Chiến lược này có ý tưởng tổng thể rõ ràng, dễ thực hiện, đặc biệt phù hợp với người mới bắt đầu. Là một chiến lược giao dịch ngắn hạn cơ bản, nó có những ưu điểm như hoạt động đơn giản, dễ tối ưu hóa. Nếu sử dụng cùng với COMPLETE hoặc các khung khác, bạn có thể tăng cường thêm chiến lược này để làm cho nó trở thành một hệ thống giao dịch định lượng có hiệu quả.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Crossover Strategy with Stop-Loss and Take-Profit", overlay=true)
// Input for selecting the length of the moving averages
maShortLength = input(9, title="Short MA Length")
maLongLength = input(55, title="Long MA Length")
// Input for setting the risk-reward ratio
riskRewardRatio = input(2, title="Risk-Reward Ratio")
// Calculate moving averages
maShort = ta.sma(close, maShortLength)
maLong = ta.sma(close, maLongLength)
// Buy condition: 9-period MA crosses above 55-period MA
buyCondition = ta.crossover(maShort, maLong)
// Sell condition: 9-period MA crosses below 55-period MA
sellCondition = ta.crossunder(maShort, maLong)
// Set stop-loss and take-profit levels
atrValue = ta.atr(14)
stopLossLevel = close - atrValue // Use ATR for stop-loss (adjust as needed)
takeProfitLevel = close + riskRewardRatio * atrValue // Risk-reward ratio of 1:2
// Execute buy and sell orders with stop-loss and take-profit
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.exit("Sell", from_entry="Buy", loss=stopLossLevel, profit=takeProfitLevel)
// Plot moving averages on the chart
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")