Chiến lược chéo trung bình chuyển động ngược xu hướng chính xác

Tác giả:ChaoZhang, Ngày: 2024-01-22 12:14:29
Tags:

img

Tổng quan

Chiến lược này được đặt tên là Chiến lược Chữ thập vàng và Chữ thập chết. Ý tưởng cốt lõi của nó là tận dụng các tín hiệu mạnh mẽ được tạo ra bởi chữ thập vàng và chữ thập chết của hai đường trung bình động của các khung thời gian khác nhau để nắm bắt sự đảo ngược xu hướng trên thị trường và kiếm lợi từ việc mua thấp / bán cao.

Chiến lược logic

Trong chiến lược này, chúng tôi tính toán đường SMA đơn giản 50 và 200 ngày. Theo truyền thống, khi SMA 50 ngày vượt dưới SMA 200 ngày, nó được gọi là death cross báo hiệu triển vọng giảm. Và khi SMA 50 ngày vượt trên SMA 200 ngày, đó là Golden cross cho thấy tăng.

Lý thuyết giao dịch đơn giản là để có vị trí dựa trên các tín hiệu này - bán ngắn ở death cross và đi dài ở golden cross.

Ngoài ra, chiến lược cung cấp phạm vi ngày có thể tùy chỉnh cho backtests. vì vậy chúng ta có thể kiểm tra hiệu quả thực tế của các tín hiệu chéo trên các khoảng thời gian khác nhau.

Ưu điểm

  1. Hiệu quả bắt các điểm đảo ngược xu hướng để mở các vị trí gần các khu vực chính
  2. Kết hợp hai SMA của các giai đoạn khác nhau lọc ra các tín hiệu sai
  3. Tính năng kiểm tra hậu quả kiểm tra hiệu suất thực tế trên các chế độ thị trường
  4. Các biểu đồ sạch hiển thị trực quan các tín hiệu chéo và thay đổi vị trí

Rủi ro

  1. SMA vượt qua sự đảo ngược cực đoan và không thể dự đoán chúng
  2. Dữ liệu backtest có thể khác với hiệu suất thực tế do chi phí và trượt
  3. Chọn tham số như thời gian SMA ảnh hưởng rất nhiều đến kết quả
  4. Cần phải kết hợp cơ bản và kỹ thuật, không chỉ giao dịch cơ khí

Để giải quyết rủi ro, chúng ta có thể tối ưu hóa các tham số, thêm các bộ lọc, quản lý rủi ro, giao dịch bằng giấy chiến lược vv để giảm thiểu rủi ro.

Cơ hội gia tăng

Các cách chính để tối ưu hóa chiến lược này bao gồm:

  1. Kiểm tra SMA của các kết hợp thời gian khác nhau
  2. Thêm các bộ lọc như khối lượng, biến động để tránh whipsaws
  3. Bao gồm dữ liệu kinh tế hoặc tin tức để lọc
  4. Thực hiện các cơ chế dừng mất mát như chuyển động / thời gian dừng
  5. Đánh giá hiệu suất trong các giai đoạn giữ khác nhau

Bằng cách kiểm tra các tác động của các tham số, chúng ta có thể khám phá ra các hệ thống chéo trung bình động tốt hơn.

Kết luận

Chiến lược này tận dụng chỉ số kỹ thuật cổ điển của đường chéo trung bình chuyển động để nắm bắt các điểm uốn nắn chính trong thị trường. Với logic đơn giản và các tính năng backtest thuận tiện, nó có thể giúp theo dõi xu hướng như một phần của một hệ thống rộng hơn.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")


Thêm nữa