
Cette stratégie consiste à calculer la tendance des prix à s’écarter de l’indicateur TSI, puis à traiter l’indicateur TSI en moyenne mobile. La direction de la ligne K combinée aux prix permet de déterminer si le cours actuel de l’action est en hausse ou en baisse, ce qui génère des signaux d’achat et de vente.
La stratégie est principalement composée de plusieurs étapes:
Les étapes ci-dessus permettent de déterminer la direction de la tendance générale actuelle, combinée à l’évolution réelle des prix, pour générer un signal de transaction.
Cette stratégie utilise l’indicateur TSI pour déterminer la direction de la tendance et, combinée à la ligne K du prix, génère un signal de négociation qui permet de capturer efficacement la tendance, d’acheter dans la tendance à la hausse et de vendre dans la tendance à la baisse. Cependant, il existe un certain risque qui doit être optimisé pour améliorer la stabilité.
/*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)