Strategi ini mengira Indeks Penyimpangan Trend (TSI) harga, memproses TSI dengan purata bergerak, dan membentuk garis purata bergerak TSI. Digabungkan dengan arah lilin harga, ia menentukan sama ada harga semasa berada dalam trend menaik atau penurunan, dan dengan itu menghasilkan isyarat beli dan jual.
Langkah utama strategi ini ialah:
Melalui langkah-langkah di atas, ia menentukan arah trend keseluruhan, digabungkan dengan pergerakan harga sebenar, untuk menjana isyarat perdagangan.
Strategi ini menggunakan TSI untuk menentukan arah trend digabungkan dengan lilin harga untuk menjana isyarat perdagangan, yang secara berkesan dapat menangkap trend, membeli dalam trend menaik dan menjual dalam downtrend.
/*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)