Stratégies de suivi des tendances basées sur les indicateurs KST

Auteur:ChaoZhang est là., Date: le 15 septembre 2023 12:05:21
Les étiquettes:

Suivre la tendance en utilisant l'indicateur KST

Cet article explique en détail une tendance quantitative suivant la stratégie à l'aide de l'indicateur KST. Il génère des signaux de trading en calculant le croisement entre la ligne KST et la ligne de signal.

I. Logique stratégique

Les principales étapes de la génération de signaux sont les suivantes:

  1. Calculer les valeurs de plusieurs indicateurs ROC avec des périodes différentes.

  2. Appliquer des moyennes mobiles aux valeurs ROC séparément et en prendre la somme pour dériver la ligne KST.

  3. Lisser la ligne KST en utilisant la moyenne mobile pour obtenir la ligne de signal.

  4. Un signal d'achat est généré lorsque la ligne KST traverse au-dessus de la ligne de signal, et inversement pour les signaux de vente.

  5. Une dimension de position appropriée peut être sélectionnée.

En prenant la somme de plusieurs valeurs ROC, la ligne KST reflète les tendances des prix à court et à long terme.

II. Avantages de la stratégie

L'avantage le plus important est le calcul complet des indicateurs, qui intègre des informations sur les tendances à travers les délais.

Un autre avantage est l'utilisation simple et intuitive de l'indicateur avec une ligne de signal claire.

Enfin, le dimensionnement réglable des positions aide à contrôler l'exposition globale au risque.

III. Les faiblesses potentielles

Cependant, il existe quelques problèmes:

Tout d'abord, l'indicateur lui-même a un certain retard dans sa réaction aux variations de prix.

Deuxièmement, le fait de s'appuyer uniquement sur la TVA le rend vulnérable à des renversements.

En outre, une optimisation approfondie est requise pour éviter le surajustement.

IV. Résumé

En résumé, cet article a expliqué une tendance quantitative suivant la stratégie en utilisant des signaux croisés KST. Il reflète les tendances des prix à travers l'indicateur pour les signaux de trading, mais nécessite la gestion du décalage des indicateurs et un réglage approprié des paramètres.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title="KST Alert", shorttitle="KST Alert", format=format.price, precision=4)
roclen1 = input.int(10, minval=1, title = "ROC Length #1")
roclen2 = input.int(15, minval=1, title = "ROC Length #2")
roclen3 = input.int(20, minval=1, title = "ROC Length #3")
roclen4 = input.int(30, minval=1, title = "ROC Length #4")
smalen1 = input.int(10, minval=1, title = "SMA Length #1")
smalen2 = input.int(10, minval=1, title = "SMA Length #2")
smalen3 = input.int(10, minval=1, title = "SMA Length #3")
smalen4 = input.int(15, minval=1, title = "SMA Length #4")
siglen = input.int(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => ta.sma(ta.roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = ta.sma(kst, siglen)
plot(kst, color=#009688, title="KST")
plot(sig, color=#F44336, title="Signal")
hline(0, title="Zero", color = #787B86)
eL1=ta.crossover(kst,sig)
eS1=ta.crossunder(kst,sig)
ch = 0
t = year(time('D'))
ch := ta.change(t) != 0 ? 1 : 0
T1 = time(timeframe.period, "0915-1520")
session_open = na(t) ? false : true
newDay = ta.change(time("15m")) != 0
strategy.entry("Long1", strategy.long, when = eL1)
strategy.entry("Short1", strategy.short, when = eS1)


Plus de