Chiến lược giao thoa trung bình chuyển động đa khung thời gian thích nghi

Tác giả:ChaoZhang, Ngày: 2023-10-09 14:56:37
Tags:

Tổng quan

Chiến lược này sử dụng nguyên tắc giao thoa trung bình động thích nghi trên nhiều khung thời gian để theo dõi xu hướng. Nó kết hợp đường nhanh, đường chậm và chỉ số MACD để đánh giá tín hiệu giao dịch, nhằm mục đích nắm bắt lợi nhuận bổ sung từ xu hướng trung hạn đến dài hạn.

Nguyên tắc

Chiến lược này chủ yếu dựa trên sự kết hợp của hệ thống chéo trung bình động kép và chỉ số MACD. Hệ thống chéo trung bình động kép bao gồm EMA nhanh và EMA chậm, tính toán trung bình di chuyển ngắn hạn và dài hạn tương ứng. Một tín hiệu mua được tạo ra khi đường nhanh vượt qua đường chậm, cho thấy xu hướng thị trường đã thay đổi từ giảm lên tăng, và vị trí dài có thể được xây dựng. Một tín hiệu bán được tạo ra khi đường nhanh vượt qua đường chậm, cho thấy xu hướng thị trường đã thay đổi từ tăng xuống giảm, tại thời điểm đó vị trí có thể được đóng. Chỉ số MACD bao gồm đường MAC DIF và đường MAC DEA, tương ứng là sự khác biệt giữa đường EMA ngắn hạn và đường EMA dài hạn, và đường trung bình di chuyển của sự khác biệt.

Chiến lược này kết hợp sự đánh giá xu hướng của đường trung bình động kép và tín hiệu thay đổi động lực của MACD. Trong khi nắm bắt lợi nhuận từ xu hướng trung bình đến dài hạn, nó có thể lọc hiệu quả các đột phá sai. Cụ thể, khi đường nhanh vượt qua đường chậm, nếu biểu đồ MACD chuyển sang màu xanh lá cây cùng một lúc, một tín hiệu dài đáng tin cậy hơn sẽ được tạo ra. Ngược lại, khi đường nhanh vượt qua đường chậm, nếu biểu đồ MACD chuyển sang màu đỏ đồng thời, một tín hiệu ngắn mạnh hơn sẽ được tạo ra.

Ngoài ra, chiến lược cũng kết hợp chức năng tham số thích nghi. Trong quá trình tối ưu hóa tham số, các khoảng thời gian của các tham số đường nhanh, đường chậm và MACD được tự động điều chỉnh dựa trên hiệu suất trong các khoảng thời gian khác nhau, để đảm bảo chiến lược có thể đạt được hiệu suất tương đối tốt hơn trong các điều kiện thị trường khác nhau.

Ưu điểm

  1. Kết hợp hệ thống trung bình động kép và chỉ số MACD để ra quyết định, tránh bị đánh lừa bởi các tín hiệu sai từ tiếng ồn.

  2. Áp dụng chức năng tham số thích nghi để chiến lược có thể điều chỉnh động các tham số để thích nghi với những thay đổi của thị trường và tối ưu hóa các quyết định giao dịch tự động.

  3. Nhận được xu hướng trung bình đến dài hạn tương đối tốt, lọc các sự đột phá sai từ các thị trường giới hạn trong phạm vi và thu được lợi nhuận bổ sung từ các thị trường xu hướng.

  4. Sử dụng phân tích trên các khung thời gian để xác định hướng xu hướng cao hơn.

  5. Logic đơn giản và rõ ràng, cấu trúc mã được tối ưu hóa, dễ hiểu và sửa đổi để đáp ứng các nhu cầu khác nhau.

Rủi ro

  1. Hệ thống trung bình di chuyển kép có nguy cơ bị chọc, không phù hợp với thị trường giới hạn phạm vi, nên được sử dụng cho các cổ phiếu và thời gian có xu hướng rõ ràng.

  2. MACD có hiệu ứng chậm, không phù hợp để theo dõi xu hướng thay đổi nhanh chóng, nên được kết hợp với các chỉ số khác.

  3. Tối ưu hóa tham số đòi hỏi thời gian kiểm tra ngược đủ lớn và đánh giá rủi ro nghiêm ngặt để tránh quá phù hợp.

  4. Chú ý đến rủi ro hệ thống từ các sự kiện đột ngột khi nắm giữ vị trí dài, dừng lỗ kịp thời nếu cần thiết.

  5. Rủi ro tối ưu hóa quá mức cho chức năng tham số thích nghi, đòi hỏi xác minh đủ để tránh điều chỉnh tham số quá thường xuyên.

Hướng dẫn cải thiện

  1. Kiểm tra các kết hợp trung bình chuyển động nhanh và chậm khác nhau để tìm các thông số lọc tiếng ồn và tuân thủ xu hướng.

  2. Hãy thử các bộ tham số MACD khác nhau để tìm sự kết hợp phản ánh điểm thay đổi xu hướng sớm nhất.

  3. Thêm chỉ số xu hướng như bộ lọc, tạm dừng giao dịch khi xu hướng không rõ ràng, để tránh whipsaw.

  4. Đưa ra cơ chế dừng lỗ như di chuyển dừng lỗ hoặc lệnh đang chờ để kiểm soát lỗ giao dịch duy nhất.

  5. Hãy thử các thuật toán máy học để đào tạo các quy tắc tham số thích nghi với nhiều dữ liệu hơn, cải thiện sự ổn định.

  6. Cố gắng điều chỉnh giữa các sản phẩm để tạo ra danh mục đầu tư trên các sản phẩm tương quan, đa dạng hóa rủi ro hệ thống thị trường.

Kết luận

Chiến lược này kết hợp hai đường chéo trung bình động và chỉ số động lực MACD, đạt được sự tích hợp hữu cơ của việc theo dõi xu hướng và kiểm soát nhịp điệu. Việc giới thiệu các tham số thích nghi làm cho chiến lược mạnh mẽ hơn để thích nghi suôn sẻ với những thay đổi của thị trường. So với các chiến lược chỉ số duy nhất, chiến lược này tạo ra các hiệu ứng ra quyết định mạnh hơn, có khả năng nắm bắt lợi nhuận giao dịch tương đối rộng rãi từ các xu hướng trung dài đến dài hạn.


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


Thêm nữa