Indicateur TSI à double fenêtre coulissante Momentum


Date de création: 2024-01-08 11:20:35 Dernière modification: 2024-01-08 11:20:35
Copier: 1 Nombre de clics: 654
1
Suivre
1617
Abonnés

Indicateur TSI à double fenêtre coulissante Momentum

Une vue d’ensemble de la stratégie

Cette stratégie s’appelleStratégie de l’indicateur TSIL’idée centrale de cette stratégie est d’utiliser les doubles fenêtres de glissement des EMAs pour lisser les fluctuations de prix, puis de combiner les changements de direction de la tendance pour construire un indicateur dynamique qui reflète la force d’achat et de vente du marché, l’indicateur TSI, et de l’utiliser comme signal de négociation pour prendre des décisions d’achat et de vente.

2. Principes de la stratégie

Cette stratégie utilise des moyennes mobiles bilatérales à double indice pour calculer les variations de prix. La période de la fenêtre extérieure est plus longue et la période de la fenêtre intérieure plus courte.

Commençons par calculer le changement de prix en unités:

pc = change(price)

Le prix est ensuite doublé en utilisant une double fenêtre de glissement:

double_smoothed_pc = double_smooth(pc, long, short)

Calculer à nouveau la valeur absolue de la variation des prix, en utilisant la même double vitre de glissement:

double_smoothed_abs_pc = double_smooth(abs(pc), long, short)

Enfin, on obtient l’indicateur TSI qui reflète la force d’achat et de vente en divisant la variation de prix après l’assouplissement par la valeur absolue de la variation de prix après l’assouplissement:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

En définissant des périodes de fenêtres plus ou moins longues de différentes longueurs, le bruit du marché à court terme peut être filtré dans une certaine mesure, ce qui permet au TSI de mieux refléter la force d’achat et de vente dans les tendances à moyen et long terme. Un signal d’achat est généré lorsque l’indicateur TSI traverse sa moyenne mobile et un signal de vente lorsque l’indicateur TSI traverse sa moyenne mobile.

Troisièmement, les avantages stratégiques.

  1. L’utilisation d’une double fenêtre coulissante permet de filtrer efficacement le bruit du marché à court terme et de rendre l’indicateur plus précis.
  2. Le calcul des variations de prix a également été doublement lissé, rendant l’indicateur TSI plus stable et plus fiable.
  3. Le rapport entre la variation des prix et la variation des prix en valeur absolue, une normalisation automatique et une meilleure comparabilité
  4. La direction et l’intensité des variations de prix sont prises en compte de manière globale comme indicateurs de qualité pour les décisions de négociation
  5. Configurer différents paramètres pour ajuster la sensibilité de l’indicateur selon les besoins

Quatrièmement, le risque stratégique

  1. L’indicateur TSI peut émettre des signaux erronés en cas de choc prolongé du marché
  2. Une mauvaise configuration des paramètres peut également affecter la qualité des indicateurs et des signaux
  3. L’indicateur a une certaine sensibilité au bruit du marché à court terme, bien qu’il dispose d’une double fenêtre coulissante.
  4. Les indicateurs et les signaux peuvent être retardés si l’écart entre les fenêtres est trop grand

L’optimisation peut être réalisée en ajustant les paramètres de la fenêtre de périodes et en raccourcissant la longueur moyenne du signal; les transactions peuvent être suspendues temporairement pour contrôler les risques en cas de choc du marché.

Cinquièmement, une direction optimisée.

  1. Tester différentes combinaisons de paramètres de longue et courte fenêtre pour trouver le paramètre optimal
  2. Essayez d’autres types de moyennes mobiles comme les moyennes mobiles linéaires pondérées.
  3. Augmentation de la fluidité de l’indicateur, construction de fenêtres à glissement triple ou multiple
  4. Optimisation des points de vente en combinaison avec d’autres indicateurs auxiliaires
  5. Définir une stratégie de stop-loss et contrôler les pertes individuelles

VI. Conclusion

Cette stratégie est basée sur le calcul de la double fluctuation de l’indicateur de dynamique TSI qui reflète la force d’achat et de vente, le bruit du filtre à double vitres, les changements de changement de prix sont également doubles, l’indicateur est plus stable et plus fiable; l’utilisation d’un ratio standardisé, avec comparabilité; l’indicateur de direction et de la force de changement de prix intégré, comme un signal de haute qualité; la sensibilité de l’indicateur peut être librement contrôlée par l’ajustement des paramètres.

Code source de la stratégie
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("True Strength Indicator BTCUSD 2H", shorttitle="TSI BTCUSD 2H",initial_capital=1000, commission_value=0.2, 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="120" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)

length = input(title="Период",  defval=300)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"

price = request.security(syminfo.tickerid,resCustom,close)


double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(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)
tsi2=ema(tsi_value, signal)
plot(tsi_value, color=lime,linewidth=2)
plot(tsi2, color=red,linewidth=2)

hline(30, title="Zero")
hline(50, title="Zero",linewidth=2)
hline(70, title="Zero")

buy = crossover(tsi_value, tsi2)
sell = crossunder(tsi_value, tsi2)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

//greentsi =tsi_value
//redtsi = tsi2

//bgcolor( greentsi>redtsi and rsiserie > 50 ? lime : na, transp=90)
//bgcolor( greentsi<redtsi and rsiserie < 50 ? 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 ? lime : na, transp=60)
//bgcolor( rsiserie < 30  ? red : na, transp=60)