Strategi ini dinamakan
Strategi ini menggunakan penunjuk TSI untuk menentukan trend harga dan momentum. Penunjuk TSI berdasarkan purata bergerak berimbang dua kali kadar perubahan harga. Ia menghasilkan isyarat beli apabila nilai TSI melintasi di atas purata bergerak, dan isyarat jual apabila melintasi di bawah.
Strategi ini juga menggunakan Purata Bergerak Hull untuk menentukan trend harga. Purata Bergerak Hull dibina dengan purata bergerak bertimbang ganda dan boleh menapis bunyi pasaran dengan berkesan.
Apabila penunjuk TSI menghasilkan isyarat, jika Hull Moving Average mengesahkan trend ke arah yang sama, isyarat dagangan yang sepadan akan dicetuskan. Di samping itu, strategi ini juga memeriksa arah badan lilin untuk mengesahkan trend. Isyarat dihasilkan hanya apabila isyarat penunjuk, isyarat Hull dan arah badan lilin semuanya sejajar secara konsisten.
Dengan menggabungkan penunjuk trend, momentum dan purata bergerak, strategi ini dapat dengan berkesan mengenal pasti permulaan trend pasaran dan mengelakkan isyarat palsu yang berlebihan. purata bergerak yang dihaluskan dua kali juga menapis beberapa bunyi bising.
Berbanding dengan strategi satu penunjuk, strategi ini menapis isyarat dengan menggabungkan beberapa penunjuk, yang dapat meningkatkan kualiti isyarat dengan ketara.
Walaupun strategi ini dapat dengan berkesan mengenal pasti permulaan trend, ia boleh menghasilkan beberapa isyarat palsu dan perdagangan berlebihan semasa penyatuan pasaran. tetapan parameter yang tidak sesuai juga boleh menyebabkan keluar yang tidak perlu.
Untuk mengurangkan risiko, tempoh Hull atau parameter TSI boleh diselaraskan dengan sewajarnya. Hentian juga boleh ditambahkan untuk kehilangan kawalan. Semasa pengoptimuman, perhatian perlu dibayar untuk memastikan nisbah isyarat ke bising yang tinggi untuk parameter terbaik.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Strategi ini menggabungkan penunjuk TSI dan Hull Moving Average untuk menjana isyarat perdagangan selepas mengesahkan trend pasaran. Strategi ini mempunyai waktu dan kualiti isyarat yang tinggi. Melalui pengoptimuman parameter dan kombinasi strategi, keuntungan dapat ditingkatkan secara besar-besaran sambil mengurangkan risiko. Strategi ini sesuai untuk mengenal pasti trend jangka sederhana hingga panjang, dan mempunyai prospek aplikasi yang menjanjikan terutamanya di pasaran cryptocurrency dan forex.
/*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)