Cette stratégie calcule l'indice de déviation de tendance (TSI) du prix, traite TSI avec la moyenne mobile et forme la ligne moyenne mobile de TSI. Combinée à la direction du chandelier de prix, elle détermine si le prix actuel est en tendance haussière ou baissière, et génère ainsi des signaux d'achat et de vente.
Les principales étapes de cette stratégie sont les suivantes:
Grâce aux étapes ci-dessus, il détermine la direction générale de la tendance, combinée avec le mouvement réel des prix, pour générer des signaux de trading.
Cette stratégie utilise TSI pour déterminer la direction de la tendance combinée avec des bougies de prix pour générer des signaux de trading, qui peuvent capturer efficacement la tendance, en achetant en tendance haussière et en vendant en tendance baissière.
/*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)