Chiến lược đảo ngược chéo trung bình động kép là một chiến lược giao dịch định lượng điển hình theo dõi xu hướng. Chiến lược này sử dụng các tín hiệu chéo từ đường 9 ngày và đường 14 ngày trong chỉ số trung bình động kép để xây dựng tín hiệu mua và bán. Nó mua khi đường 9 ngày vượt qua đường 14 ngày từ dưới để tạo thành một đường chéo vàng, và bán khi đường 9 ngày vượt qua đường 14 ngày từ trên để tạo thành đường chéo chết. Để lọc các tín hiệu sai, chiến lược cũng giới thiệu chỉ số đường 50 ngày để xác định giá có phá vỡ hay không.
Chiến lược này chủ yếu giao dịch dựa trên tín hiệu chéo vàng và chéo chết từ chỉ số trung bình động kép. Trong các đường trung bình động kép, đường 9 ngày đại diện cho xu hướng ngắn hạn, đường 14 ngày đại diện cho xu hướng trung hạn, và giao chéo của chúng là một chỉ số kỹ thuật hiệu quả để đánh giá các bước chuyển hướng trong xu hướng thị trường. Khi đường xu hướng ngắn hạn xuyên qua đường xu hướng trung hạn từ dưới để tạo thành một chéo vàng, nó cho thấy đường xu hướng ngắn hạn đang tăng cường, đó là tín hiệu mua; khi nó xuyên qua từ trên để tạo thành đường chéo chết, nó cho thấy đường xu hướng ngắn hạn đang suy yếu, đó là tín hiệu bán.
Ngoài ra, chiến lược cũng giới thiệu đường 50 ngày để lọc các tín hiệu gây hiểu nhầm. Nó chỉ tạo ra mua khi giá trên đường 50 ngày; và chỉ tạo ra bán khi giá dưới đường 50 ngày.
Lý thuyết cốt lõi là như sau:
// Buy condition: 9-day line crosses above 14-day line and close price is above 50-day line
buyCondition = ta.crossover(sma9, sma14) and close > sma50
// Sell condition: 9-day line crosses below 14-day line and close price is below 50-day line
sellCondition = ta.crossunder(sma9, sma14) and close < sma50
Ưu điểm của chiến lược trung bình động kép là hiển nhiên:
Chiến lược trung bình động kép cũng có một số rủi ro:
Để giải quyết rủi ro, các tối ưu hóa như sau có thể được thực hiện:
Chiến lược trung bình động kép có thể được tối ưu hóa trong một số khía cạnh:
Chiến lược trung bình động kép thường là một chiến lược tạo ra lợi nhuận hiệu quả. Nó có thể kiếm lợi bằng cách theo xu hướng liên tục. Đồng thời, nó có một số rủi ro và cần cải tiến hơn nữa. Bằng cách tối ưu hóa các thông số, phương pháp dừng và sự kết hợp chiến lược, các hiệu ứng của chiến lược này có thể được tăng cường hơn nữa.
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("smaCrossReverse", shorttitle="smaCrossReverse", overlay=true) // Define the length for the SMAs sma9Length = input(9, title="SMA 9 Length") sma14Length = input(14, title="SMA 14 Length") sma50Length = input(50, title="SMA 50 Length") // Add input for SMA 50 // Calculate SMAs sma9 = ta.sma(close, sma9Length) sma14 = ta.sma(close, sma14Length) sma50 = ta.sma(close, sma50Length) // Calculate SMA 50 // Buy condition: SMA 9 crosses above SMA 14 and current price is above SMA 50 buyCondition = ta.crossover(sma9, sma14) and close > sma50 // Sell condition: SMA 9 crosses below SMA 14 and current price is below SMA 50 sellCondition = ta.crossunder(sma9, sma14) and close < sma50 // Track the time since position was opened var float timeElapsed = na if (buyCondition) timeElapsed := 0 else timeElapsed := na(timeElapsed[1]) ? timeElapsed[1] : timeElapsed[1] + 1 // Close the buy position after 5 minutes if (timeElapsed >= 5) strategy.close("Buy") // Track the time since position was opened var float timeElapsedSell = na if (sellCondition) timeElapsedSell := 0 else timeElapsedSell := na(timeElapsedSell[1]) ? timeElapsedSell[1] : timeElapsedSell[1] + 1 // Close the sell position after 5 minutes if (timeElapsedSell >= 5) strategy.close("Sell") // Plot the SMAs on the chart plot(sma9, title="SMA 9", color=color.blue) plot(sma14, title="SMA 14", color=color.red) plot(sma50, title="SMA 50", color=color.green) // Plot SMA 50 on the chart // Strategy entry and exit conditions using if statements if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short)