Chiến lược xác định xu hướng khung thời gian đa dạng


Ngày tạo: 2023-12-28 11:57:00 sửa đổi lần cuối: 2023-12-28 11:57:00
sao chép: 0 Số nhấp chuột: 641
1
tập trung vào
1623
Người theo dõi

Chiến lược xác định xu hướng khung thời gian đa dạng

Tổng quan

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

Nguyên tắc chiến lược

Chiến lược này sử dụng bốn khung thời gian: đường mặt trời, đường tuần hoàn, đường 15 ngày và đường mặt trăng. Định hướng xu hướng dài hạn được đánh giá dựa trên mối quan hệ giữa giá mở và giá đóng của bốn khung thời gian này.

Giá mở cửa của đường ngày, đường tròn, đường 15 ngày và đường trăng đều thấp hơn giá đóng cửa, cho thấy giá có xu hướng tăng trên bốn khung thời gian này, được đánh giá là xu hướng đa chiều, nhìn dài.

Ngược lại, khi tất cả các giá mở của bốn khung thời gian đều cao hơn giá đóng cửa, thì giá trên bốn khung thời gian đều có xu hướng giảm, được coi là một hành động không có giá, giảm dài hạn.

Sau khi xác định được hướng của xu hướng dài hạn, chiến lược sẽ mở vị trí khi đường ngắn tạo ra tín hiệu mua / bán. Nói cách khác, chiến lược này sử dụng đường dài để xác định xu hướng lớn, sử dụng đường ngắn để xác định thời điểm vào cụ thể.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Phân tích nhiều khung thời gian để tăng độ chính xác

Sử dụng 4 khung thời gian khác nhau để đánh giá tổng hợp các 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ị rối bởi tiếng ồn thị trường ngắn hạn.

  1. Kết hợp các đường dài và đường ngắn, linh hoạt trong chiến lược

Sử dụng khung đường dài để đánh giá xu hướng lớn, đồng thời sử dụng đường ngắn để tạo ra tín hiệu hoạt động, có thể nắm bắt cơ hội đường ngắn mà không lệch khỏi xu hướng chính.

  1. Các tham số đơn giản, dễ thực hiện

Chiến lược này chủ yếu đánh giá chỉ số chỉ với giá mở và giá đóng trong 4 khung thời gian, các tham số được thiết lập đơn giản và dễ thực hiện.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro, bao gồm:

  1. Sự thay đổi trong xu hướng lâu dài

Nếu xu hướng giảm giá dài hạn bị đảo ngược, biến thành giảm giá dài hạn, chiến lược này không thể đánh giá kịp thời, có thể dẫn đến tổn thất lớn. Tại thời điểm này, cần can thiệp bằng tay hoặc thiết lập dừng lỗ.

  1. Không hiệu quả trong ngắn hạn

Chiến lược này chủ yếu dựa vào tín hiệu tạo ra đường ngắn để quyết định thời gian nhập cảnh cụ thể. Nếu hoạt động ngắn hạn không hiệu quả, không thể mở vị trí vào thời điểm thích hợp, sẽ ảnh hưởng đến hiệu quả của chiến lược tổng thể. Tại thời điểm này, bạn có thể điều chỉnh tham số đường ngắn hoặc tối ưu hóa chiến lược đường ngắn.

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

Chiến lược này có thể được tối ưu hóa hơn nữa:

  1. Tăng chiến lược dừng lỗ

Có thể thiết lập dừng di động hoặc dừng đơn để kiểm soát tổn thất tối đa.

  1. Tối ưu hóa chiến lược đường ngắn

Có thể thử nghiệm các chỉ số short-line khác nhau để tìm kiếm chiến lược short-line phù hợp hơn và cải thiện hiệu quả nhập học.

  1. Đổi vị thế

Bạn có thể thay đổi vị trí theo biến động của thị trường và tăng vị trí khi xu hướng rõ ràng hơn.

  1. Kết hợp với học máy

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

Tóm tắt

Chiến lược này thông qua nhiều khung thời gian để đánh giá xu hướng, sử dụng các đường dài và đường ngắn kết hợp với tư duy, đảm bảo đánh giá xu hướng lớn, và sử dụng các cơ hội đường ngắn để tham gia, toàn bộ hoạt động logic rõ ràng và hợp lý, thực hiện đơn giản, là một chiến lược theo dõi xu hướng hiệu quả. Với sự ra đời của các công nghệ như dừng lỗ, quản lý vị thế động, chiến lược này cũng có rất nhiều cải tiến, đáng để thực hành và tối ưu hóa.

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