L'évolution de la dynamique de la KST EMA à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2023-11-07 16h36 et 21h
Les étiquettes:

img

Résumé

L'idée de base de cette stratégie est de combiner l'indicateur KST et les lignes EMA pour identifier et suivre les tendances. Il génère des signaux d'achat lorsque l'indicateur KST franchit le seuil supérieur à 0 et se ferme au-dessus de la ligne EMA, et des signaux de vente lorsqu'il franchit le seuil inférieur à 0 et se ferme au-dessous de la ligne EMA. Cette stratégie simple et pratique peut suivre automatiquement les tendances et convient aux avoirs à moyen et long terme.

La logique de la stratégie

  1. Calcul de l'indicateur KST: calculer le ROC de 10, 15, 20 et 30 périodes, prendre une somme pondérée et lisser avec une SMA de 9 périodes pour dériver l'indicateur KST.

  2. Calculer la ligne EMA: Calculer une ligne EMA à 50 périodes.

  3. Générer un signal d'achat: lorsque la ligne KST rapide traverse la ligne KST lente (croix dorée) et est inférieure à 0, tandis que la clôture est au-dessus de la ligne EMA, un signal d'achat est déclenché.

  4. Générer un signal de vente: lorsque la ligne KST rapide traverse en dessous de la ligne KST lente (croix morte) et est supérieure à 0, tandis que la clôture est en dessous de la ligne EMA, un signal de vente est déclenché.

  5. Définir un stop loss de suivi: le stop loss suit 1% de la valeur du compte pour réaliser un stop loss automatique.

Les avantages

  1. KST identifie les changements de tendance, EMA confirme la direction.

  2. L'utilisation de croisements rapides/lents et de la ligne 0 évite les transactions inutiles.

  3. L'EMA en tant que support/résistance filtre davantage les faux signaux.

  4. Le stop-loss automatique contrôle le risque et permet de réaliser des profits.

  5. Des paramètres simples facilitent la mise en œuvre et l'optimisation.

Les risques

  1. KST a un retard dans la détection des changements de tendance, peut manquer certaines opportunités.

  2. L'EMA a un retard sur les renversements de tendance.

  3. Un stop-loss trop large augmente les pertes, trop serré est arrêté par des pointes.

  4. Les signaux fréquents peuvent augmenter les coûts de transaction et resserrer les règles d'entrée pour réduire les transactions.

Directions d'optimisation

  1. Optimiser les périodes de KST pour la sensibilité à des instruments spécifiques.

  2. Testez d'autres moyennes mobiles comme MA, WMA pour voir laquelle se combine le mieux avec KST.

  3. Des arrêts dynamiques basés sur des métriques de volatilité comme ATR.

  4. Ajoutez des filtres comme des pics de volume pour éviter les pièges.

  5. Considérez la combinaison avec des indicateurs tels que RSI, MACD pour plus de dimensions.

  6. Les paramètres d'essai doivent être optimisés pour chacun des instruments.

Conclusion

Cette stratégie a une logique claire et fiable qui est facile à mettre en œuvre. KST identifie les virages de tendance, filtre davantage l'EMA et arrête de contrôler le risque. Il suit automatiquement les tendances à moyen et long terme. Des paramètres raisonnables offrent un grand espace d'optimisation. Les utilisateurs peuvent modifier pour différents instruments. Applicable pour les débutants à apprendre et les professionnels à développer. Avec une optimisation supplémentaire, il s'avère prometteur en tant que système de suivi de tendance robuste.


/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")

len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)

delta = kst - sig

buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA

longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if (strategy.position_size < 0)
    stopValue = close * (1 + shortTrailPerc)
    min(stopValue, shortStopPrice[1])
else
    999999

// Submit entry orders
if (buySignal)
    strategy.entry(id="EL", long=true)

if (sellSignal)
    strategy.entry(id="ES", long=false)

// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="XL TRL STP", stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit(id="XS TRL STP", stop=shortStopPrice)



alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')

alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')





Plus de