Stratégie de négociation à court terme de Bitcoin basée sur l'indice de force réelle

Auteur:ChaoZhang est là., Date: 2023-10-07 15:12:08 Je suis désolé
Les étiquettes:

Résumé

Cette stratégie identifie les tendances du marché bitcoin en calculant l'indice de force réelle (TSI) et entre dans des positions longues / courtes filtrées par l'indicateur RSI pour mettre en œuvre le trading algorithmique de bitcoin.

La logique de la stratégie

Le noyau de cette stratégie est l'indice de force réelle (ITS). TSI mesure l'ampleur absolue et la direction des variations de prix en doublant la variation en pourcentage des prix, identifiant ainsi la force absolue des mouvements de prix à la hausse et à la baisse.

  1. Calculer le pourcentage de variation de prix Pc
  2. Double smooth Pc utilisant l'EMA à long terme et l'EMA à court terme pour générer double_smoothed_pc
  3. Doubler la valeur absolue de Pc pour générer double_smoothed_abs_pc
  4. La valeur de la STI est égale à double_smoothed_pc divisé par double_smoothed_abs_pc multiplié par 100

Lorsque le TSI traverse sa ligne de signal tsi2, un signal long est généré. Lorsque le TSI traverse en dessous de tsi2, un signal court est généré. En outre, la stratégie filtre les signaux TSI avec RSI - ne prenant que des signaux longs lorsque le RSI est supérieur à 50 et des signaux courts lorsque le RSI est inférieur à 50, pour éviter certains faux signaux.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. La TSI peut détecter la force absolue et la direction des mouvements de prix et est sensible à la capture des tendances.
  2. La double EMA assure une évolution plus fluide des prix et résiste au bruit et aux pics du marché.
  3. Le filtre RSI évite en outre les mauvaises transactions dues au bruit.
  4. Le trading à court terme permet de saisir les opportunités temporaires sur le marché.
  5. La stratégie dispose d'un grand espace de réglage des paramètres pour l'optimisation, comme les périodes EMA, les paramètres RSI, etc.

Analyse des risques

Les risques de cette stratégie comprennent:

  1. En tant qu'indicateur de tendance, la TSI présente une émission en retard et peut manquer les points d'inversion des prix.
  2. La condition du filtre RSI est trop stricte et peut manquer certaines opportunités de trading.
  3. Le double filtre EMA peut également filtrer certains signaux valides.
  4. La fréquence élevée des transactions à court terme entraîne des coûts de négociation plus élevés et des risques de glissement.

L'effet de filtrage peut être réduit en assouplissant les règles de filtrage RSI et en raccourcissant les périodes EMA.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres TSI et RSI pour trouver la meilleure combinaison.

  2. Introduire plus d'indicateurs techniques pour construire un modèle multifactoriel.

  3. Optimiser les règles d'entrée pour éviter les longues tendances à la baisse et les courtes tendances à la hausse.

  4. Optimiser les stratégies de stop-loss telles que le stop-loss à la traîne, le stop-loss basé sur le temps, le stop-loss de rupture, etc.

  5. Optimisez les règles de sortie pour éviter les sorties prématurées ou tardives.

  6. Optimiser les produits de trading, les sessions de trading pour se concentrer sur les plus efficaces.

Conclusion

Cette stratégie identifie les tendances à court terme du bitcoin avec le True Strength Index et filtre les signaux avec RSI pour le trading algorithmique du bitcoin. Elle a l'avantage de capturer sensiblement les tendances et de filtrer le bruit, mais présente également des problèmes et des risques commerciaux.


/*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)


Plus de