
Strategi ini dinamakan strategi perdagangan kuantitatif berdasarkan Indeks TSI dan Purata Bergerak Hull, idea utamanya adalah menggabungkan Indeks TSI dan Purata Bergerak Hull untuk mengenal pasti trend dalam saham, mata wang digital atau mata wang asing, dan menghasilkan isyarat perdagangan apabila trend bermula.
Strategi ini menggunakan indikator TSI untuk menentukan trend harga dan momentum. Indeks TSI adalah purata bergerak berganda berdasarkan kadar perubahan harga. Ia menghasilkan isyarat beli apabila nilai TSI melintasi purata bergeraknya sendiri dan menghasilkan isyarat jual apabila ia melintasi.
Strategi ini juga menggunakan Hull Moving Average untuk menentukan trend harga. Hull Moving Average dibina dengan moving averages bertimbangan dua, yang dapat menyaring kebisingan pasaran dengan berkesan. Hull Moving Average dinilai sebagai tren naik apabila melintasi garis cepat dan turun apabila melintasi garis perlahan.
Pada masa yang sama dengan isyarat TSI, isyarat dagangan yang sesuai dihasilkan jika Hull Moving Average juga mengesahkan trend ke arah yang sama. Selain itu, strategi juga memeriksa arah entiti K-baris untuk mengesahkan trend. Isyarat dagangan dikeluarkan hanya apabila isyarat indikator, isyarat Hull dan arah entiti K-baris sama.
Strategi ini menggabungkan pelbagai indikator trend, momentum dan purata untuk mengenal pasti permulaan trend pasaran dengan berkesan dan mengelakkan banyak isyarat palsu. Rata-rata bergerak dua hala juga dapat menyaring beberapa bunyi bising.
Strategi ini dapat meningkatkan kualiti isyarat dengan menggabungkan beberapa isyarat penapis berbanding dengan satu petunjuk. Pelbagai syarat pengesahan juga menjadikan strategi ini sangat pasti apabila menghasilkan isyarat.
Strategi ini walaupun berkesan untuk mengenal pasti trend bermula, tetapi ia akan menghasilkan beberapa isyarat yang salah dan perdagangan berlebihan ketika pasaran bergolak. Selain itu, parameter yang tidak betul juga boleh menyebabkan kedudukan yang tidak perlu.
Untuk mengurangkan risiko, anda boleh menyesuaikan Hull Moving Average Cycle atau TSI parameter, atau anda boleh menambah Stop Loss untuk mengawal kerugian. Dalam proses pengoptimuman, anda perlu memberi perhatian kepada nisbah bising untuk mendapatkan parameter terbaik.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi ini digabungkan dengan penunjuk TSI dan purata bergerak Hull untuk menghasilkan isyarat perdagangan setelah menentukan trend pasaran. Strategi ini mempunyai ketepatan masa dan kualiti isyarat yang tinggi. Dengan pengoptimuman parameter dan kombinasi strategi, keuntungan dapat ditingkatkan dengan ketara dan risiko dapat dikurangkan.
/*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)