Les ressources ont été chargées... Je charge...

Indicateur de la STI pour la vitre à double vitrage mobile

Auteur:ChaoZhang est là., Date: 2024-01-08 11h20 et 35 min
Les étiquettes:

img

I. Vue d'ensemble de la stratégie

Cette stratégie est appeléeStratégie de l'indicateur de la STI pour la dynamique à double fenêtre mobileL'idée de base de cette stratégie est d'utiliser deux fenêtres coulissantes EMA pour lisser les fluctuations des prix, puis de combiner les changements de direction de la tendance pour construire un indicateur de dynamique qui reflète le pouvoir d'achat et de vente sur le marché, à savoir l'indicateur TSI, et de l'utiliser comme signal de trading pour prendre des décisions d'achat et de vente.

II. Principe de stratégie

Cette stratégie utilise deux fenêtres coulissantes doubles moyennes mobiles exponentielles pour calculer les variations de prix.

Comptez d'abord la variation unitaire du prix:

pc = change(price)

Ensuite, utilisez deux fenêtres coulissantes pour doubler les changements de prix:

double_smoothed_pc = double_smooth(pc, long, short)

Calculer ensuite la valeur absolue de la variation de prix, qui est également doublement lissée à l'aide de deux fenêtres coulissantes:

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

Enfin, on utilise la variation de prix lissée divisée par la variation de prix absolue lissée pour obtenir l'indicateur de la STI qui reflète le pouvoir d'achat:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

En définissant des durées différentes de périodes de fenêtre longues et courtes, le bruit du marché à court terme peut être filtré dans une certaine mesure, de sorte que l'indicateur de la STI puisse mieux refléter le pouvoir d'achat et de vente dans les tendances à moyen et à long terme.

III. Avantages stratégiques

  1. L'utilisation de deux fenêtres coulissantes filtre efficacement le bruit du marché à court terme pour des réactions plus précises des indicateurs
  2. La variation des prix est également doublement assouplie, ce qui rend l'indicateur de la STI plus stable et fiable
  3. Le rapport entre la variation des prix et la variation des prix absolus est utilisé, qui est automatiquement normalisé et plus comparable.
  4. Considérer de manière exhaustive la direction et l'ampleur des variations de prix comme indicateur de qualité pour les décisions de négociation
  5. Le réglage de différents paramètres permet un ajustement flexible de la sensibilité de l'indicateur

IV. Risques stratégiques

  1. L'indicateur de la STI peut donner de faux signaux lorsque le marché connaît des fluctuations à long terme
  2. Des paramètres incorrects peuvent également affecter la qualité des indicateurs et des signaux.
  3. Bien qu'il existe deux fenêtres coulissantes, l'indicateur est encore sensible au bruit de marché à court terme
  4. Lorsque la différence entre les périodes de fenêtre longues et courtes est trop grande, les indicateurs et les signaux peuvent être retardés

Il peut être optimisé en ajustant les paramètres de la période de fenêtre et en raccourcissant de manière appropriée la longueur moyenne mobile du signal.

V. Directions d'optimisation

  1. Combinaisons d'essais de différents paramètres de longue et courte période de fenêtre pour trouver des paramètres optimaux
  2. Essayez d'autres types de moyennes mobiles, telles que la moyenne mobile pondérée linéaire
  3. Améliorer la fluidité des indicateurs en construisant des fenêtres coulissantes triples ou multiples
  4. Combiner d'autres indicateurs auxiliaires pour optimiser la sélection des points d'achat/de vente
  5. Définir des stratégies de stop loss pour contrôler strictement les pertes uniques

Résumé

Cette stratégie calcule l'indicateur de dynamique TSI reflétant le pouvoir d'achat et de vente basé sur le double lissage des changements de prix. Les fenêtres coulissantes doubles filtrent le bruit. Le double lissage des variations de prix rend également l'indicateur plus stable et fiable. Le ratio standardisé le rend comparable. L'indicateur combine la direction et l'ampleur des changements de prix en tant que source de signal de haute qualité. Grâce à l'ajustement des paramètres, la sensibilité de l'indicateur peut être librement contrôlée. Avec l'optimisation des paramètres et le contrôle des risques en place, c'est un choix de stratégie de trading quantitative très pratique.


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

Plus de