Chiến lược định lượng dựa trên chỉ báo TSI và đường trung bình động Hull


Ngày tạo: 2023-12-18 16:56:22 sửa đổi lần cuối: 2023-12-18 16:56:22
sao chép: 0 Số nhấp chuột: 793
1
tập trung vào
1621
Người theo dõi

Chiến lược định lượng dựa trên chỉ báo TSI và đường trung bình động Hull

Tổng quan

Chiến lược này được gọi là chiến lược giao dịch định lượng dựa trên chỉ số TSI và trung bình di động của Hull. Ý tưởng chính là kết hợp chỉ số TSI và trung bình di động của Hull để xác định xu hướng trong cổ phiếu, tiền kỹ thuật số hoặc ngoại hối và tạo ra tín hiệu giao dịch khi xu hướng bắt đầu.

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

Chiến lược này sử dụng chỉ số TSI để xác định xu hướng và động lực của giá. Chỉ số TSI dựa trên tỷ lệ biến động của giá.

Chiến lược này cũng sử dụng Hull Moving Average để xác định xu hướng giá. Hull Moving Average được xây dựng bằng phương tiện di chuyển có trọng lượng gấp đôi, có thể lọc hiệu quả tiếng ồn thị trường.

Đồng thời với tín hiệu của chỉ số TSI, một tín hiệu giao dịch tương ứng sẽ được tạo ra nếu Hull Moving Average cũng xác nhận xu hướng theo cùng hướng. Ngoài ra, chiến lược cũng kiểm tra hướng thực thể K-line để xác nhận xu hướng. Chỉ khi tín hiệu chỉ số, tín hiệu Hull và hướng thực thể K-line phù hợp, tín hiệu giao dịch sẽ được phát ra.

Phân tích lợi thế

Chiến lược này kết hợp nhiều chỉ số về xu hướng, động lực và đường trung bình, có thể xác định hiệu quả sự bắt đầu của xu hướng thị trường và tránh tạo ra nhiều tín hiệu giả. Đường trung bình di chuyển kép có thể lọc một số tiếng ồn.

So với chỉ số đơn lẻ, chiến lược này có thể cải thiện đáng kể chất lượng tín hiệu bằng cách kết hợp nhiều chỉ số lọc tín hiệu. Nhiều điều kiện xác nhận cũng làm cho chiến lược có độ chắc chắn rất cao khi tạo tín hiệu.

Phân tích rủi ro

Mặc dù chiến lược này có thể xác định hiệu quả xu hướng bắt đầu, nhưng nó có thể tạo ra một số tín hiệu sai và giao dịch quá mức khi thị trường biến động. Ngoài ra, cài đặt tham số không chính xác cũng có thể dẫn đến vị trí không cần thiết.

Để giảm rủi ro, bạn có thể điều chỉnh đúng chu kỳ trung bình di chuyển của Hull hoặc tham số TSI, hoặc có thể thêm dừng để kiểm soát tổn thất. Trong quá trình tối ưu hóa, cần chú ý đến tỷ lệ tiếng động tín hiệu để có được tham số tối ưu.

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa tham số trung bình di chuyển của Hull, làm mịn đường cong để lọc tín hiệu giả
  2. Tối ưu hóa tham số TSI, cân bằng độ nhạy và độ ổn định
  3. Tham gia chiến lược dừng lỗ
  4. Điều chỉnh độ dài tín hiệu để lọc tiếng ồn ngắn hạn
  5. Kiểm tra các loại chiến lược khác nhau và chu kỳ thời gian
  6. Xác nhận tín hiệu kết hợp với các chỉ số khác

Tóm tắt

Chiến lược này kết hợp với chỉ số TSI và trung bình di chuyển Hull để tạo ra tín hiệu giao dịch sau khi xác định xu hướng thị trường. Chiến lược có thời gian và chất lượng tín hiệu cao. Bằng cách tối ưu hóa các tham số và kết hợp chiến lược, có thể cải thiện đáng kể khả năng lợi nhuận và giảm rủi ro. Chiến lược này phù hợp để xác định xu hướng đường dài, đặc biệt là có triển vọng ứng dụng rộng rãi trong thị trường tiền kỹ thuật số và ngoại hối.

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

//@version=2
strategy("TSI/HullMA/VWMA strategy", shorttitle="TSI/HullMA/VWMA", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
TP = input(defval=200.00, title="TargetPoint in $", type=float, step=1)
SL = input(defval=-2000.00, title="StopLoss in $", type=float, step=1)
signal = input(title="Signal Length",  defval=6)
keh=input(title="HullMA cross",defval=2)
a=input(title="VWMA",defval=2)
long=35,short=35,linebuy=4,linesell=-4,ot=1,p=ohlc4[0]
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(p)
rvwma=vwma(p,round(a))
rvwma2=vwma(p,round(a*2))
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
hullbuy=n1>n2 and n1>n2[1] and rvwma>rvwma2
hullsell=n1<n2 and n1<n2[1] and rvwma<rvwma2
candlebuy=ohlc4[0]>ohlc4[1] and ohlc4[0]>ohlc4[2] and ohlc4[0]>ohlc4[3]
candlesell=ohlc4[0]<ohlc4[1] and ohlc4[0]<ohlc4[2] and ohlc4[0]<ohlc4[3]
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)
strategy.entry("buy", true, na, when = tsi_value>ema(tsi_value, signal) and candlebuy and hullbuy)
strategy.entry("sell", false, na, when = tsi_value<ema(tsi_value, signal) and candlesell and hullsell)
strategy.close_all(when = strategy.openprofit>TP or strategy.openprofit<SL)