Chiến lược giao cắt đường trung bình động thích ứng đa khung thời gian


Ngày tạo: 2023-10-09 14:56:37 sửa đổi lần cuối: 2023-10-09 14:56:37
sao chép: 0 Số nhấp chuột: 667
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này là một chiến lược theo dõi xu hướng sử dụng nhiều khung thời gian để thích ứng với nguyên tắc giao chéo đường trung bình di chuyển. Chiến lược này sử dụng đường nhanh, đường chậm và chỉ số MACD để phán đoán tín hiệu giao dịch đồng thời, nhằm kiếm thêm lợi nhuận từ xu hướng đường dài và đường dài.

Nguyên tắc

Chiến lược này chủ yếu dựa trên sự kết hợp của hai hệ thống giao thoa đường trung bình di động và chỉ số MACD. Hệ thống giao thoa đường trung bình di động bao gồm EMA đường nhanh và EMA đường chậm, tính toán đường trung bình ngắn hạn và đường trung bình dài hạn.

Chiến lược này kết hợp các định hướng của hai đường trung bình di chuyển và tín hiệu chuyển động động của MACD, trong khi có được lợi nhuận của xu hướng đường dài trung bình, có thể lọc hiệu quả các đột phá giả. Cụ thể, khi đường nhanh đi qua đường chậm, nếu cột MACD đồng thời chuyển sang màu xanh lá cây, sẽ tạo ra một tín hiệu làm nhiều đáng tin cậy hơn; Ngược lại, khi đường nhanh đi qua đường chậm, nếu cột MACD đồng thời chuyển sang màu đỏ, sẽ tạo ra một tín hiệu làm trống mạnh hơn.

Ngoài ra, chiến lược này cũng giới thiệu tính năng thích ứng tham số. Trong quá trình tối ưu hóa tham số, chu kỳ đường nhanh, chu kỳ đường chậm và tham số MACD sẽ tự động điều chỉnh theo hiệu quả của các khoảng thời gian khác nhau để đảm bảo chiến lược có thể hoạt động tốt nhất trong các môi trường khác nhau.

Ưu điểm

  1. Kết hợp hệ thống hai đường đồng nhất và chỉ số MACD, tổng hợp nhiều yếu tố để đưa ra quyết định, tránh bị lừa bởi tín hiệu giả của tiếng ồn.

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

  3. Để nắm bắt tốt hơn xu hướng đường dài trung bình, lọc các đột phá giả của thị trường dao động, và thu được lợi nhuận bổ sung trong thời gian xu hướng.

  4. Sử dụng phân tích theo khung thời gian, chúng ta có thể xác định xu hướng ở cấp độ lớn hơn.

  5. Chiến lược logic rõ ràng và đơn giản, cấu trúc mã được tối ưu hóa, dễ hiểu và sửa đổi, điều chỉnh phù hợp với các nhu cầu khác nhau.

Rủi ro

  1. Hệ thống hai đường đều có nguy cơ bị cột mốc của Carton, không phù hợp với tình trạng chấn động, nên chọn các cổ phiếu có xu hướng rõ ràng hơn và thời gian hoạt động.

  2. MACD có tính chậm trễ, không phù hợp để theo dõi xu hướng thay đổi đột ngột và nên được sử dụng kết hợp với các chỉ số khác.

  3. Tối ưu hóa tham số đòi hỏi một chu kỳ phản hồi đủ lớn và đánh giá rủi ro nghiêm ngặt để tránh quá phù hợp.

  4. Khi giữ vị trí dài, cần chú ý đến rủi ro hệ thống của sự kiện bất ngờ và dừng thiệt hại kịp thời.

  5. Có thể có chức năng tham số thích ứng được tối ưu hóa quá mức, cần được xác minh đầy đủ để tránh điều chỉnh tham số quá thường xuyên.

Hướng tối ưu hóa

  1. Có thể thử nghiệm các kết hợp của các đường trung bình nhanh và chậm khác nhau, chọn tham số trung bình có thể lọc tiếng ồn và tuân theo xu hướng.

  2. Có thể thử nghiệm nhiều tham số của MACD để tìm tham số kết hợp có thể phản ứng trước điểm chuyển hướng.

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

  4. Có thể giới thiệu cơ chế dừng lỗ, thiết lập dừng di động hoặc dừng đơn để kiểm soát tổn thất đơn.

  5. Bạn có thể thử thêm các thuật toán học máy để sử dụng các tham số đào tạo dữ liệu lớn hơn để tự thích nghi với quy tắc và tăng sự ổn định của chiến lược.

  6. Có thể thử nhiều loại đánh giá, tạo ra danh mục giao dịch giữa các loại liên quan để phân tán rủi ro hệ thống trên thị trường.

Tóm tắt

Chiến lược này tích hợp hai đường trung bình di chuyển và MACD động lượng, thực hiện sự kết hợp hữu cơ của theo dõi xu hướng và kiểm soát nhịp điệu. Việc đưa ra các tham số tự thích ứng làm cho chiến lược trở nên mạnh mẽ hơn, có thể thích ứng với sự thay đổi của thị trường. So với chiến lược chỉ số đơn lẻ, chiến lược này tạo ra hiệu quả quyết định mạnh mẽ hơn, có thể thu được lợi nhuận giao dịch phong phú trong xu hướng đường dài trung bình.

Mã nguồn chiến lược
/*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!')