Chỉ số lệch xu hướng với chiến lược trung bình động

Tác giả:ChaoZhang, Ngày: 2023-11-06 14:46:40
Tags:

img

Tổng quan

Chiến lược này tính toán chỉ số chênh lệch xu hướng (TSI) của giá, xử lý TSI với đường trung bình động, và tạo thành đường trung bình động của TSI. Kết hợp với hướng nến giá, nó xác định giá hiện tại có xu hướng tăng hay giảm, và do đó tạo ra tín hiệu mua và bán.

Nguyên tắc

Các bước chính của chiến lược này là:

  1. Tính toán tỷ lệ thay đổi giá %
  2. Double smooth pct với HMA để có được double_smoothed_pc
  3. Tính toán HMA gấp đôi của pct tuyệt đối để có được double_smoothed_abs_pc
  4. Tính toán giá trị TSI: (100 * (double_smoothed_pc / double_smoothed_abs_pc))
  5. Giá trị TSI xử lý với HMA để có được TSIs đường trung bình động tsihmaline
  6. So sánh giá trị TSI và đường trung bình động TSI, trên trung bình động là xu hướng tăng, dưới đó là xu hướng giảm
  7. Trong xu hướng tăng, nếu giá cũng đang tăng, tạo ra tín hiệu mua
  8. Trong xu hướng giảm, nếu giá cũng đang giảm, tạo ra tín hiệu bán

Thông qua các bước trên, nó xác định hướng xu hướng tổng thể, kết hợp với chuyển động giá thực tế, để tạo ra tín hiệu giao dịch.

Ưu điểm

  1. Hai HMA làm mịn lọc ra tiếng ồn ngắn hạn và khóa trong xu hướng chính
  2. TSI và đường trung bình động của nó xác định hướng xu hướng tổng thể
  3. Kết hợp với giá nến tránh breakout sai, cải thiện độ tin cậy tín hiệu
  4. Các tham số có thể tùy chỉnh thích nghi với các thị trường chu kỳ khác nhau
  5. Hiển thị đồ họa, màu xanh lá cây cho xu hướng tăng, màu đỏ cho xu hướng giảm

Rủi ro

  1. Có thể tạo ra nhiều tín hiệu sai trong thị trường giới hạn phạm vi
  2. Độ trễ đường trung bình động tại các điểm chuyển đổi, có thể thiếu điểm đầu vào tốt nhất
  3. Cần điều chỉnh thông số thường xuyên để thích nghi với thị trường thay đổi
  4. Dựa trên chỉ số TSI duy nhất, có thể được tối ưu hóa với các chỉ số khác

Tăng cường

  1. Thêm bộ lọc để tránh tín hiệu sai trong quá trình hợp nhất
  2. Thêm các chỉ số khác để xác nhận các điểm đảo ngược xu hướng
  3. Tự động tối ưu hóa các tham số thông qua máy học vv
  4. Đưa ra lệnh dừng lỗ để kiểm soát lỗ giao dịch duy nhất

Kết luận

Chiến lược này sử dụng TSI để xác định hướng xu hướng kết hợp với các ngọn nến giá để tạo ra các tín hiệu giao dịch, có thể nắm bắt hiệu quả xu hướng, mua trong xu hướng tăng và bán trong xu hướng giảm. Nhưng cũng có những rủi ro, đòi hỏi tối ưu hóa để cải thiện sự ổn định. Nhìn chung, chiến lược này trực quan và dễ hiểu, phù hợp với các nhà giao dịch quen thuộc với các chỉ số kỹ thuật.


/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TSIHULLBOT", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=7)
price = input(title="Source",type=input.source,defval=open)
lineupper = input(title="Upper Line", type=input.integer, defval=250)
linelower = input(title="Lower Line", type=input.integer, defval=-250)
double_smooth(price, long, short) =>
    fist_smooth = hma(price, long)
    hma(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = (100 * (double_smoothed_pc / double_smoothed_abs_pc))*5
tsihmaline=(hma(tsi_value,signal))*5
clr = tsihmaline < tsi_value ? color.red : color.lime
clr2 = tsi_value < tsi_value[1] ? color.red : color.lime
i1=plot(lineupper+3, color=color.black, linewidth=3)
i2=plot(linelower+3, color=color.black, linewidth=3)
i3=plot(lineupper, color=clr)
i4=plot(linelower, color=clr)
trendv=tsihmaline/5.6
plot(trendv, linewidth=7,  color=color.black)
plot(trendv, linewidth=4,  color=color.yellow)
j1=plot(tsi_value, linewidth=5, color=color.black)
j2=plot(tsi_value[1], linewidth=5, color=color.black)
j3=plot(tsi_value, color=clr2)
j4=plot(tsi_value[1], color=clr2)
fill(i3,i4,color=clr,transp=90)
fill(j3,j4,color=clr2,transp=15)
longCondition = tsihmaline>tsihmaline[1] and price>price[1]
if (longCondition)
    strategy.entry("Buy ⤴️", strategy.long)
shortCondition = tsihmaline<tsihmaline[1] and price<price[1]
if (shortCondition)
    strategy.entry("Sell ⤵️", strategy.short)

Thêm nữa