Stratégie de l'oscillateur stochastique lissé exponentiellement

Auteur:ChaoZhang est là., Date: 18 janvier 2024
Les étiquettes:

img

Résumé

La stratégie de l'oscillateur stochastique lissé exponentiel est une version modifiée de l'indicateur stochastique traditionnel en ajoutant un paramètre de poids exponentiel pour ajuster la sensibilité du stochastique et générer des signaux de trading.

La logique de la stratégie

Le noyau de la stratégie stochastique lissée exponentiellement réside dans le paramètre de poids exponentiel ex. La stochastique traditionnelle est calculée comme suit:

s = 100 * (close - lowest low) / (highest high - lowest low)

Avec le paramètre exponentiel, la formule devient:

exp = ex<10? (ex)/(10-ex) : 99   

s = 100 * (close - lowest low) / (highest high - lowest low)  

ks = s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50   
       :-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50  

L'augmentation de l'exp rend l'indicateur moins sensible tandis que la diminution de l'exp le rend plus sensible.

Les signaux d'achat sont générés lorsque ks franchit les niveaux de surachat. Les signaux de vente sont générés lorsque ks franchit les niveaux de survente.

Les avantages

Comparée à la stratégie stochastique traditionnelle, la stratégie de l'oscillateur stochastique lissé exponentiel présente les avantages suivants:

  1. La sensibilité du stochastique peut être librement ajustée en modifiant la pondération exponentielle pour contrôler la fréquence de négociation.
  2. L'augmentation du poids exponentiel peut filtrer un peu de bruit et générer des signaux de trading plus stables.
  3. La combinaison d'indicateurs provenant de différentes périodes peut permettre de confirmer plusieurs périodes et d'améliorer la fiabilité du signal.

Les risques

La stratégie de l'oscillateur stochastique lissé exponentiellement comporte également les risques suivants:

  1. Avec un poids exponentiel trop élevé, certaines opportunités de négociation peuvent être manquées en raison d'un filtrage excessif des signaux.
  2. L'indicateur est sujet au bruit et à des croisements incorrects.
  3. Il est nécessaire d'identifier la plage de paramètres optimale pour différents marchés.

Les domaines d'amélioration

La stratégie de l'oscillateur stochastique lissé exponentiel peut être optimisée par les aspects suivants:

  1. Combinez avec d'autres indicateurs tels que le MACD et la moyenne mobile pour filtrer les signaux et réduire les faux signaux.
  2. Ajouter des mécanismes de stop loss pour contrôler efficacement les risques.
  3. Optimiser le paramètre de poids exponentiel pour trouver les combinaisons optimales de paramètres.
  4. Augmenter la compositivité, par exemple, combiner avec des indicateurs saisonniers, des indicateurs de la structure du marché pour améliorer encore la stabilité.

Conclusion

La stratégie de l'oscillateur stochastique lissé exponentiel génère des signaux de trading plus fiables en ajustant la sensibilité de l'indicateur stochastique.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © faytterro

//@version=5
strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len=input.int(14, "length") 
ex=input.int(2, title="exp", minval=1, maxval=10)
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len))
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 :
 -math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
plot(ks, color= color.white)
bot=input.int(20)
top=input.int(80)
longCondition = ta.crossover(ks, bot) and bar_index>0
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ks, top) and bar_index>0
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
//    strategy.close("My Long Entry Id")
alertcondition(longCondition, title = "buy")
alertcondition(shortCondition, title = "sell")
h1=hline(top)
h2=hline(bot)
h3=hline(100)
h4=hline(0)
fill(h1,h3, color= color.rgb(255,0,0,200-top*2))
fill(h2,h4, color= color.rgb(0,255,0,bot*2))

Plus de