Chiến lược này tính toán trung bình động của các giai đoạn khác nhau, thiết lập điểm dừng lỗ và lấy lợi nhuận để thực hiện giao dịch tự động. Nó đi dài khi thời gian ngắn trung bình di chuyển vượt quá thời gian dài trung bình di chuyển, và đi ngắn khi thời gian ngắn trung bình di chuyển vượt dưới thời gian dài trung bình di chuyển. Trong khi đó, nó thiết lập điểm dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro.
Chiến lược này dựa trên nguyên tắc chéo trung bình động. Nó tính toán cả trung bình động đơn giản 9 ngày và 55 ngày đồng thời. Khi MA 9 ngày vượt qua trên MA 55 ngày, nó báo hiệu rằng xu hướng ngắn hạn đã đảo ngược lên, vì vậy đi dài. Khi MA 9 ngày vượt qua dưới MA 55 ngày, nó báo hiệu rằng xu hướng ngắn hạn đã đảo ngược xuống, vì vậy đi ngắn.
Trong khi đó, chiến lược này sử dụng chỉ số ATR để thiết lập điểm dừng lỗ và lấy lợi nhuận. Chỉ số ATR có thể đo mức độ biến động giá trên thị trường. Điểm dừng lỗ được thiết lập ở mức giá đóng trừ giá trị ATR, vì vậy nó có thể thiết lập mức dừng lỗ hợp lý dựa trên biến động thị trường. Điểm lấy lợi nhuận sử dụng tỷ lệ rủi ro-lợi nhuận, được thiết lập ở đây là 2 - lấy lợi nhuận = giá đóng + 2 * giá trị ATR.
Đây là một chiến lược giao dịch ngắn hạn rất đơn giản và thực tế với 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 giảm bằng cách tối ưu hóa các tham số, dừng lỗ nghiêm ngặt và kích thước vị trí hợp lý.
Chiến lược này có thể được tối ưu hóa thêm:
Khả năng giao dịch thông thường của hệ thống giao dịch giao dịch thông thường là một hệ thống giao dịch đơn giản và dễ dàng tối ưu hóa. Khi kết hợp với COMPLETE hoặc các khung khác, nó có thể được nâng cao hơn để trở thành một hệ thống giao dịch định lượng thực tế.
/*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")