Chiến lược theo dõi xu hướng trung bình động


Ngày tạo: 2023-11-06 10:34:19 sửa đổi lần cuối: 2023-11-06 10:34:19
sao chép: 0 Số nhấp chuột: 399
1
tập trung vào
1166
Người theo dõi

Chiến lược theo dõi xu hướng trung bình động

Tổng quan

Chiến lược theo dõi xu hướng là một chiến lược giao dịch theo dõi xu hướng dựa trên đường trung bình di chuyển. Chiến lược này sử dụng sự giao thoa của chỉ số di chuyển trung bình ((EMA) và đường trung bình di chuyển dao động ((HMA) để xác định xu hướng của thị trường và tạo ra tín hiệu mua và bán phù hợp. Chiến lược này được sử dụng cho giao dịch theo xu hướng đường ngắn trung bình, nhằm theo dõi xu hướng giá trong một chu kỳ dài hơn, chứ không phải là biến động ngắn hạn.

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

Chiến lược này sử dụng trung bình di chuyển với hai tham số khác nhau: một EMA có chu kỳ ngắn và một HMA có chu kỳ dài. EMA phản ứng nhanh hơn với biến động giá để xác định xu hướng ngắn hạn; HMA phản ứng chậm hơn với biến động giá để xác định hướng xu hướng dài hạn.

Khi HMA dài trên EMA ngắn được coi là giá đi vào xu hướng tăng, chiến lược sẽ mua tại giá thị trường khi mở đường K tiếp theo; khi HMA dài dưới EMA ngắn được coi là giá đi vào xu hướng giảm, chiến lược sẽ bán tại giá thị trường khi mở đường K tiếp theo.

Để tối ưu hóa thời gian đưa ra thị trường, chiến lược đã thêm tùy chọn dựa trên Heikin-Ashi. Sau khi bật tùy chọn này, tín hiệu mua bán của chiến lược sẽ dựa trên đường Heikin-Ashi thay vì đường K nguyên bản. Vì đường Heikin-Ashi có thể lọc đường K nguyên bản của bộ dao động, giúp giảm tín hiệu giả.

Chiến lược này cũng có thêm thiết lập dừng lỗ. Chiến lược sẽ dừng lỗ ở mức giá thị trường khi lỗ giữ đạt đến mức dừng lỗ mặc định. Điều này có thể giới hạn tổn thất tối đa cho một giao dịch.

Phân tích lợi thế

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

  1. Sử dụng EMA và HMA để đánh giá hướng xu hướng, có thể sử dụng lợi thế của các trung bình khác nhau trong thời gian để cải thiện độ chính xác của đánh giá.

  2. Giao dịch dựa trên xu hướng, không bị biến động nhỏ, có thể giảm số lần giao dịch không cần thiết.

  3. Lựa chọn Heikin-Ashi có thể lọc các tín hiệu giả và tối ưu hóa thời gian ra thị trường.

  4. Sử dụng chiến lược dừng lỗ di động, bạn có thể kiểm soát hiệu quả tổn thất tối đa cho mỗi giao dịch.

  5. Các tham số chiến lược có thể được tùy chỉnh, người dùng có thể điều chỉnh theo các giống và chu kỳ khác nhau để cải thiện khả năng thích ứng.

Phân tích rủi ro

Chiến lược này cũng có những rủi ro sau:

  1. Các nhà đầu tư khác cũng có xu hướng sử dụng các chiến lược theo dõi xu hướng để kiểm soát thị trường.

  2. Trong khi đó, các nhà đầu tư ở Việt Nam đang có xu hướng giảm giá, và các nhà đầu tư ở Việt Nam đang có xu hướng giảm giá.

  3. Cài đặt lỗ hổng không đúng cách có thể gây ra lỗ hổng không cần thiết và có thể dẫn đến tổn thất lớn hơn.

  4. Các tham số không được thiết lập đúng cũng có thể dẫn đến giao dịch thường xuyên hoặc hoàn toàn không hoạt động.

  5. Các thiết lập chu kỳ EMA và HMA cần được tối ưu hóa cho các giống và chu kỳ khác nhau.

  6. Heikin-Ashi không thể lọc được toàn bộ nguy cơ đột nhập giả.

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

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Sử dụng nhiều chỉ số kết hợp để đánh giá xu hướng, như MACD, KDJ, v.v. để tăng độ chính xác đánh giá.

  2. Thêm thêm các điều kiện lọc, chẳng hạn như số lượng giao dịch, ATR và các chỉ số khác, làm giảm khả năng phá vỡ giả.

  3. Tối ưu hóa các tham số của trung bình di chuyển để phù hợp hơn với các giống và chu kỳ giao dịch.

  4. Tối ưu hóa các thiết lập Stop Loss, làm cho Stop Loss hợp lý hơn, tránh quá mềm hoặc quá cứng.

  5. Xem xét thêm các tính năng bảo vệ lợi nhuận, chẳng hạn như chặn di chuyển, chặn một phần, và khóa lợi nhuận.

  6. Thử nghiệm các phương pháp khác nhau để tính toán chi phí nắm giữ và tối ưu hóa tính toán chi phí nắm giữ.

Tóm tắt

Chiến lược theo dõi xu hướng dựa trên định hướng xu hướng trên đường trung bình di chuyển, sử dụng Heikin-Ashi và dừng di chuyển để tối ưu hóa hiệu suất chiến lược. Chiến lược này phù hợp để theo dõi xu hướng đường dài trung bình, có thể cải thiện hiệu quả chiến lược hơn nữa bằng cách tối ưu hóa tham số và mở rộng tính năng.

Mã nguồn chiến lược
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

//Heikin Ashi Option
ha = input(true, title = "Heikin Ashi Source")
src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close
usestoploss = input(true, title="Stop Loss")

//EMA
len1 = input.int(9, minval=1, title="EMA Length")
ema = ta.ema(src, len1)
emaline = plot(ema, title="EMA", color=color.blue, linewidth=2)

//HMA
len2 = input.int(69, minval=1, title="HMA Length")
hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2)))
hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2)
fillcolor = hma < ema ? color.blue : color.purple
fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true)

//Stop Loss Conditions
stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100
stoploss = strategy.position_avg_price * (1 + stoplosspercent)
stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss

//Buy Sell Conditions
buy = hma < ema
sell = hma > ema

//Trades and Alerts
if buy
	strategy.entry("Long Position", strategy.long, comment="BUY")
//	alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if sell and strategy.openprofit > 0
	strategy.close("Long Position", comment="SELL")
//	alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if stop
    strategy.close("Long Position", comment="STOP")
//    alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)

//Alternate Labels
var pos = 0
if buy and pos <= 0
    pos := 1
if sell and pos >= 0
    pos := -1
buylabel  = pos ==  1 and (pos !=  1)[1]
selllabel = pos == -1 and (pos != -1)[1]

//Plot Labels
plotshape(buylabel,  style=shape.labelup,   location=location.belowbar, color=color.blue,   text="BUY",  textcolor=color.white, size=size.tiny)
plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny)
plotshape(stop,      style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)