Chiến lược xu hướng đa khung thời gian

Tác giả:ChaoZhang, Ngày: 2023-12-28 11:57:00
Tags:

img

Tổng quan

Chiến lược này sử dụng 4 khung thời gian khác nhau để xác định hướng xu hướng, để khám phá xu hướng dài hạn trong khi sử dụng ngắn hạn như là cơ hội nhập cảnh. Khi giá mở của 4 khung thời gian (ngày, tuần, 15 ngày, hàng tháng) đều thấp hơn giá đóng, nó được xác định là xu hướng tăng dài hạn; khi giá mở của 4 khung thời gian đều cao hơn giá đóng, nó được xác định là xu hướng giảm dài hạn. Chiến lược sẽ mở các vị trí khi xác nhận xu hướng dài hạn và một tín hiệu ngắn hạn được tạo ra.

Chiến lược logic

Chiến lược này sử dụng 4 khung thời gian: hàng ngày, hàng tuần, 15 ngày và hàng tháng.

Khi giá mở của khung thời gian hàng ngày, hàng tuần, 15 ngày và hàng tháng đều thấp hơn giá đóng cửa, nó cho thấy giá đang có xu hướng tăng trên 4 khung thời gian này, vì vậy nó được xác định là thị trường tăng và tăng dài hạn.

Ngược lại, khi giá mở của 4 khung thời gian này đều cao hơn giá đóng, nó cho thấy giá đang có xu hướng giảm trong 4 khung thời gian này, vì vậy nó được xác định là thị trường giảm và giảm dài hạn.

Sau khi xác định hướng xu hướng dài hạn, chiến lược sẽ mở các vị trí khi một tín hiệu mua / bán được tạo ra trong ngắn hạn. nghĩa là, chiến lược này sử dụng dài hạn để xác định xu hướng chính và ngắn hạn để quyết định các cơ hội nhập cảnh cụ thể.

Phân tích lợi thế

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

  1. Phán quyết nhiều khung thời gian cải thiện độ chính xác

    Sử dụng 4 khung thời gian khác nhau để đánh giá toàn diện xu hướng dài hạn có thể cải thiện độ chính xác của phán đoán và tránh bị đánh lừa bởi tiếng ồn thị trường ngắn hạn.

  2. Kết hợp chiến lược dài hạn và ngắn hạn, linh hoạt

    Sử dụng khung dài hạn để xác định hướng chính và ngắn hạn để tạo ra tín hiệu giao dịch, chiến lược này linh hoạt, có thể nắm bắt các cơ hội ngắn hạn trong khi không lệch khỏi xu hướng chính.

  3. Các thông số đơn giản, dễ thực hiện

    Các chỉ số đánh giá chính của chiến lược này chỉ là giá mở và đóng của 4 khung thời gian.

Phân tích rủi ro

Có một số rủi ro trong chiến lược này:

  1. Sự đảo ngược xu hướng dài hạn

    Nếu xu hướng tăng dài hạn đảo ngược thành giảm dài hạn, chiến lược này không thể nhanh chóng phán đoán, có thể dẫn đến tổn thất lớn hơn.

  2. Hiệu suất ngắn hạn kém

    Chiến lược này chủ yếu dựa trên các tín hiệu ngắn hạn để xác định các cơ hội nhập cảnh cụ thể. Nếu hiệu suất ngắn hạn kém và không thể mở các vị trí vào đúng thời điểm, nó sẽ ảnh hưởng đến hiệu suất tổng thể. Các thông số ngắn hạn có thể được điều chỉnh hoặc chiến lược ngắn hạn có thể được tối ưu hóa trong trường hợp này.

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

Có thêm không gian tối ưu hóa cho chiến lược này:

  1. Thêm chiến lược dừng lỗ

    Di chuyển hoặc lệnh dừng lỗ có thể được thiết lập để kiểm soát lỗ tối đa.

  2. Tối ưu hóa chiến lược ngắn hạn

    Các chỉ số ngắn hạn khác nhau có thể được thử nghiệm để tìm các chiến lược ngắn hạn phù hợp hơn và cải thiện hiệu suất nhập cảnh.

  3. Điều chỉnh vị trí năng động

    Các vị trí có thể được điều chỉnh năng động dựa trên biến động thị trường, tăng các vị trí khi xu hướng trở nên rõ ràng hơn.

  4. Kết hợp học máy

    Một lượng lớn dữ liệu có thể được thu thập và các phương pháp học máy có thể được sử dụng để tối ưu hóa các tham số và quy tắc một cách năng động.

Kết luận

Chiến lược này xác định hướng xu hướng trên nhiều khung thời gian, áp dụng ý tưởng kết hợp dài hạn và ngắn hạn, đảm bảo đánh giá các xu hướng chính và sử dụng các cơ hội ngắn hạn. Logic tổng thể là rõ ràng và hợp lý, đơn giản để thực hiện, và nó là một chiến lược theo xu hướng hiệu quả. Với việc giới thiệu các kỹ thuật như dừng lỗ và quản lý vị trí động, chiến lược này có rất nhiều chỗ để cải thiện và đáng để thực hành và tối ưu hóa.


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

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("5D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("45D", "Timeframe 4")

transaction_size = input(1, "Contract/Share Amount")

src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor


TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long, qty=transaction_size, when=strategy.position_size == 0)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short, qty=transaction_size, when=strategy.position_size == 0)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)


Thêm nữa