Chiến lược chéo trung bình di chuyển

Tác giả:ChaoZhang, Ngày: 2024-01-23 15:20:16
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch dựa trên các tín hiệu chéo trung bình động. Nó sử dụng đường trung bình động 45 ngày làm chỉ số kỹ thuật chính và tạo ra tín hiệu mua và bán khi giá vượt qua đường trung bình động.

Chiến lược logic

Khi giá tăng và vượt qua đường trung bình động 45 ngày, một tín hiệu mua được tạo ra. Sau khi giữ vị trí trong 8 ngày, một tín hiệu bán được tạo ra. Sau đó, nếu giá tăng và vượt qua đường trung bình động 45 ngày một lần nữa, một tín hiệu mua mới sẽ được kích hoạt, v.v.

Các nguyên tắc logic cụ thể là:

  1. Tính toán đường trung bình động 45 ngày.
  2. Khi giá đóng phá vỡ từ dưới đến trên đường trung bình động, một tín hiệu mua được tạo ra để mua dài.
  3. Giữ vị trí trong 8 ngày giao dịch sau khi nhập thị trường.
  4. Đóng vị trí dài sau 8 ngày và tạo ra tín hiệu bán.
  5. Nếu sau đó giá đóng lại từ dưới xuống trên đường trung bình động một lần nữa, tái tạo tín hiệu mua để mở lại vị trí mua.

Điều trên tạo thành logic giao dịch cốt lõi của chiến lược này.

Ưu điểm

Chiến lược này có những lợi thế sau:

  1. Các quy tắc giao dịch đơn giản và rõ ràng, dễ hiểu và thực hiện.
  2. Sử dụng tính năng theo dõi xu hướng của đường trung bình động để nắm bắt hiệu quả xu hướng trung bình đến dài hạn.
  3. Thời gian nắm giữ 8 ngày là đủ dài để theo dõi xu hướng và đủ ngắn để cắt giảm lỗ trong thời gian.
  4. Các quy tắc tái tham gia thị trường là rõ ràng, giúp hạn chế tần suất giao dịch.

Rủi ro

Có một vài rủi ro với chiến lược này:

  1. Bản chất chậm của các đường trung bình động có thể dẫn đến việc nhập muộn và thoát sớm.
  2. Thời gian giữ cố định và các tham số MA có thể không thích nghi với các điều kiện thị trường thay đổi.
  3. Tần suất giao dịch có thể quá cao, làm tăng chi phí và trượt.
  4. Các tín hiệu đột phá có thể tạo ra các tín hiệu sai dẫn đến một số whipsaws.

Giải pháp:

  1. Tối ưu hóa các tham số MA để giảm độ trễ.
  2. Tăng thời gian giữ hoặc sử dụng dừng lại để theo dõi xu hướng tốt hơn.
  3. Thêm bộ lọc sử dụng các chỉ số khác như MACD hoặc KDJ để xác nhận tín hiệu.
  4. Cải thiện các quy tắc nhập cảnh để kiểm soát tần số.

Các lĩnh vực cải tiến

Các lĩnh vực cải tiến chính là:

  1. Tối ưu hóa các thông số MA để tìm kết hợp tốt nhất, ví dụ: MA 15 ngày, 30 ngày, 60 ngày.

  2. Tối ưu hóa thời gian giữ để xác định thời gian tối ưu, ví dụ: 5 ngày, 10 ngày, 15 ngày.

  3. Thêm các điểm dừng để theo dõi xu hướng và kiểm soát rủi ro, ví dụ như dừng thử nghiệm hoặc dừng ATR.

  4. Thêm các bộ lọc sử dụng các chỉ số khác như MACD, KDJ để giảm tín hiệu sai.

  5. Cải thiện các quy tắc tái nhập cảnh để ngăn chặn giao dịch quá mức, ví dụ: thực thi thời gian suy nghĩ.

  6. Kiểm tra hiệu quả trên các thị trường và công cụ khác nhau.

Tóm lại

Tóm lại, chiến lược giao thoa MA này là một hệ thống theo dõi xu hướng đơn giản và thực tế. Nó tận dụng khả năng theo dõi xu hướng của MA và kết hợp sự đột phá giá để tạo ra tín hiệu giao dịch. Ưu điểm là dễ thực hiện trong khi nhược điểm là thỉnh thoảng. Chiến lược có thể được nâng cao hơn thông qua tối ưu hóa tham số và thêm các chỉ số khác làm bộ lọc.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)

// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na

// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
    in_long_position := true
    entry_bar := bar_index

// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
    in_long_position := false
    exit_bar := bar_index

// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
    in_long_position := true
    entry_bar := bar_index

// Execute long entry and exit
if (in_long_position)
    strategy.entry("Long", strategy.long)

if (not in_long_position)
    strategy.close("Long")

Thêm nữa