Chiến lược đảo ngược đường chéo trung bình động kép

Tác giả:ChaoZhang, Ngày: 2023-12-01 16:56:43
Tags:

img

Tổng quan

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.

Nguyên tắc chiến lược

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

Phân tích lợi thế

Ưu điểm của chiến lược trung bình động kép là hiển nhiên:

  1. Dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học.
  2. Đi theo xu hướng, tránh bị mắc kẹt trong thị trường giới hạn.
  3. Sử dụng các chỉ số trung hạn đến dài hạn để lọc các tín hiệu gây hiểu lầm và tránh bị lừa bởi tiếng ồn thị trường ngắn hạn.
  4. Có thể theo dõi xu hướng thị trường và lợi nhuận hiệu quả trong thời gian dài.

Phân tích rủi ro

Chiến lược trung bình động kép cũng có một số rủi ro:

  1. Trong các điều kiện thị trường cực đoan như sụp đổ thị trường, có thể có sự rút tiền lớn trước khi hình thành đường chéo chết. Chiến lược sẽ giữ các vị trí thua lỗ lớn cho đến khi đường chéo chết kích hoạt dừng lại.
  2. Trong các thị trường dao động, thập giá vàng và thập giá chết xen kẽ, lặp đi lặp lại mở và dừng các vị trí. Điều này tạo ra chi phí giao dịch tăng lên.

Để giải quyết rủi ro, các tối ưu hóa như sau có thể được thực hiện:

  1. Giới thiệu các chỉ số khác để nhanh chóng cắt giảm tổn thất trong điều kiện thị trường sụp đổ.
  2. Thêm thêm các bộ lọc mở để tránh giao thoa xen kẽ trong các thị trường khác nhau.

Hướng dẫn tối ưu hóa

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:

  1. Tối ưu hóa tham số, điều chỉnh thời gian trung bình động, tối ưu hóa các tham số chỉ số.
  2. Chú ý thêm các tín hiệu mở cửa.
  3. Đưa ra các cơ chế dừng lỗ. Sử dụng dừng lỗ di chuyển, dừng lỗ thâm nhập và các phương pháp dừng khác.
  4. Kết hợp với các chiến lược giao dịch khác như chiến lược khối lượng và biến động.
  5. Sử dụng đòn bẩy phù hợp để cải thiện hiệu quả hoạt động.

Tóm lại

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)


Thêm nữa