Cette stratégie permet de réaliser des transactions de courte durée sur Bitcoin en calculant le True Strength Index (TSI) pour identifier les tendances du marché, et en combinant le filtrage RSI pour effectuer plus de prises de position. Cette stratégie convient aux investisseurs qui effectuent des transactions programmées sur le marché Bitcoin au cas par cas.
La stratégie est basée sur l’indicateur de force et de faiblesse réelle (TSI). L’indicateur TSI mesure la taille et la direction de la variation absolue des prix à l’aide du taux de variation des prix en doubles glissades, permettant ainsi d’identifier la force absolue des hausses et des baisses de prix.
Le TSI génère des signaux de plus ou de moins quand il traverse sa ligne de signal ts2 en haut, et des signaux de creux quand il traverse sa ligne de signal ts2 en bas. De plus, la stratégie combine le filtrage des signaux de transaction du RSI avec celui du RSI, qui ne génère des signaux de plus ou de moins que lorsque le RSI est supérieur à 50 et un signal de creux lorsque le RSI est inférieur à 50, afin de filtrer certains signaux de faux.
Cette stratégie présente les avantages suivants:
La stratégie présente également les risques suivants:
Il est possible d’atténuer les effets de la houle et les problèmes de retard en assouplissant les conditions de filtrage du RSI, en raccourcissant les cycles EMA, etc. Tout en optimisant la stratégie de stop loss et en contrôlant strictement le risque d’une seule transaction.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimiser les paramètres du TSI et du RSI pour trouver la meilleure combinaison de paramètres. Vous pouvez ajuster les cycles EMA plus longs, les paramètres RSI, etc.
Ajouter d’autres indicateurs pour former un modèle multifacteur. Par exemple, les indicateurs MA, KD et autres peuvent être ajoutés pour tirer pleinement parti des avantages de chaque indicateur.
Optimiser les conditions d’entrée, éviter les collisions entre les marchés à capitaux multiples et les marchés à capitaux multiples. La direction peut être déterminée en fonction de la tendance du grand cycle.
Optimiser les stratégies de stop-loss, par exemple en déplaçant le stop-loss, le stop-loss dans le temps, le stop-loss de rupture, etc.
Optimiser les conditions de départ pour éviter que les dommages ne se produisent trop tôt ou trop tard. Le moment de départ peut être déterminé en combinant les indicateurs de volatilité.
Optimisation des variétés et des périodes de négociation, concentration sur les variétés et les périodes de négociation les plus efficaces.
Cette stratégie identifie les tendances à court terme de Bitcoin à l’aide d’indicateurs de force réelle et de faiblesse, et est complétée par des signaux de filtrage de l’indicateur RSI, ce qui permet d’effectuer efficacement des transactions programmées en ligne courte de Bitcoin. La stratégie a l’avantage d’identifier les tendances sensibles et d’éliminer le bruit, mais il existe également certains problèmes de retard et des risques de négociation.
/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// strategy("True Strength Indicator BTCUSD 15p", shorttitle="TSI BTCUSD 15p",initial_capital=1000, commission_value=0.15, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)
//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe", defval="15" )
long = input(title="Long Length", defval=25)
short = input(title="Short Length", defval=13)
signal = input(title="Signal Length", defval=13)
price = request.security(syminfo.tickerid,resCustom,close)
double_smooth(src, long, short) =>
fist_smooth = ta.ema(src, long)
ta.ema(fist_smooth, short)
pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2=ta.ema(tsi_value, signal)
plot(tsi_value, color=color.lime,linewidth=2)
plot(tsi2, color=color.red,linewidth=2)
rsiserie = ta.rsi(price,7)
cciserie = ta.cci(price,14)
stochserie = ta.stoch(price,14,3,3)
plot(rsiserie,color=color.purple)
hline(30, title="Zero")
hline(50, title="Zero",linestyle=hline.style_solid, linewidth=2)
hline(70, title="Zero")
buy = ta.crossover(tsi_value, tsi2) //and rsiserie[1]<25 //and cciserie<-100 and stochserie<20
sell = ta.crossunder(tsi_value, tsi2) //and rsiserie[1]>85 //and cciserie>100 and stochserie>80
alertcondition(buy, title='TSI system', message='Buy signal at!' )
alertcondition(sell, title='TSI system', message='Sell signal at!' )
strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell )
greentsi =tsi_value
redtsi = tsi2
bgcolor( greentsi>redtsi and rsiserie > 50 ? color.lime : na, transp=90)
bgcolor( greentsi<redtsi and rsiserie < 50 ? color.red : na, transp=90)
yellow1= redtsi > greentsi and rsiserie > 50
yellow2 = redtsi < greentsi and rsiserie < 50
bgcolor( yellow1 ? yellow : na, transp=80)
bgcolor( yellow2 ? yellow : na, transp=50)
bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
bgcolor( yellow2 and yellow2[2] ? yellow : na, transp=70)
bgcolor( rsiserie > 70 ? color.lime : na, transp=60)
bgcolor( rsiserie < 30 ? color.red : na, transp=60)