Stratégie de combinaison d'indicateurs de stochastique double et de moyenne mobile pondérée par volume

Auteur:ChaoZhang est là., Date: le 26 octobre 2023 à 17h18h53
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie qui utilise une combinaison d'indicateurs stochastiques doubles et d'une moyenne mobile pondérée par volume pour identifier les tendances.

La logique de la stratégie

La stratégie met essentiellement en œuvre l'identification des tendances à travers les parties suivantes:

  1. Calculer un indicateur stochastique à court terme avec entrée de longueur de période ((30) et paramètre de fluidité 2

  2. Calculer un indicateur stochastique à long terme avec entrée de longueur de période ((90) et paramètre lisse 2

  3. Ajouter les stochastiques à court et à long terme pour obtenir une courbe stochastique combinée

  4. Calculer une moyenne mobile pondérée par volume de la courbe ts avec une entrée de longueur de période ((30)

  5. Comparer la valeur actuelle de tsl avec sa valeur il y a 1 période, quand tsl augmente, cela indique une tendance haussière, quand tsl baisse, cela indique une tendance baissière

  6. Combiner avec la position de la courbe stochastique pour identifier les signaux haussiers ou baissiers

  • Quand le TSL monte et que le TS est dans la zone moyenne, c'est un signal haussier.
  • Quand tsl tombe et ts est dans la zone du milieu, c'est un signal baissier

Analyse des avantages

La stratégie combine l'identification de tendance et l'analyse de surachat-survente, ce qui permet d'identifier de manière assez fiable l'orientation de la tendance.

  1. Le double stochastique peut refléter à la fois des situations de surachat/survente à court et à long terme, évitant de manquer certains signaux

  2. Les moyennes mobiles pondérées par volume peuvent filtrer certains faux signaux de rupture

  3. La position de la courbe stochastique confirme la fiabilité des signaux de tendance

  4. Paramètres réglables adaptés aux différents marchés

  5. Logie claire et simple, facile à comprendre et à modifier

Risques et améliorations

Il y a aussi quelques risques à prendre en compte pour cette stratégie:

  1. Les stochastiques peuvent donner de faux signaux, il faut filtrer avec des indicateurs à plus longue période

  2. Les périodes fixes ne conviennent pas à tous les marchés, l'optimisation dynamique pourrait aider

  3. Basé sur des indicateurs purement techniques, les fondamentaux peuvent améliorer la précision

  4. Les données de volume inexactes affectent les résultats, il est nécessaire de vérifier la qualité des données

  5. Historique insuffisant des tests antérieurs, besoin de plus de données pour la validation

  6. Les points d'entrée peuvent être améliorés, plutôt que de diriger long sur les croix sous le plus bas

Conclusion

En résumé, cette stratégie identifie les tendances à l'aide de stochastique double et VWMA, ce qui peut identifier de manière fiable les inversions de tendance en théorie. Mais l'ajustement des paramètres est nécessaire pour des marchés spécifiques et le risque de faux signaux existe. Il est recommandé de combiner d'autres facteurs tels que les fondamentaux, les tendances à long terme, etc. pour le jugement, afin d'améliorer la stratégie Profit Factor. La logique est simple et claire, fournissant un modèle pour le trading quantitatif, qui peut être modifié au besoin.


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

//@version=4
strategy(title="Trend Finder V2", shorttitle="TFV2", format=format.price, precision=2, overlay = true)

//----------Indicator------------//

periodK = input(30)
periodD = 3
smoothK = 2

periodK_two = input(90)
periodD_two = 3
smoothK_two = 2

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

k_two = sma(stoch(close, high, low, periodK_two), smoothK_two)
d_two = sma(k, periodD_two)

ts = k + k_two
tsl = vwma(ts, input(30, title = "VWMA Length"))

//--------Label parameter--------// 

up_label = tsl[1] < 100 and tsl > 100 ? 1 : 0
down_label = tsl[1] > 100 and tsl < 100 ? 1 : 0

//----------Color Code-----------//

//tsl_col = tsl > 100 and tsl > tsl[1] ? color.aqua : tsl > 100 and tsl < tsl[1] ? color.green : tsl < 100 and tsl > tsl[1] ? color.maroon : tsl < 100 and tsl < tsl[1] ? color.red : color.silver

//tsl_col = tsl > 100 and ts < 100 and ts > ts[1] ? color.aqua : tsl > 100 and ts > 100 and (ts > ts[1] or ts < ts[1]) ? color.green : tsl < 100 and ts > 100 and ts < ts[1] ? color.red : tsl < 100 and ts < 100 and (ts < ts[1] or ts > ts[1]) ? color.maroon : color.purple  

tsl_col = ts > ts[1] and tsl > tsl[1] ? color.lime : ts < ts[1] and tsl < tsl[1] ? color.red : color.yellow 

ts_col = (tsl_col == color.lime or tsl_col == color.maroon) and (k>k[1] and k < 30) ? color.lime :  (tsl_col == color.green or tsl_col == color.red) and (k < k[1] and k > 70)  ? color.red : color.silver

//-------------Plots-------------//

buy = tsl_col[1] == color.yellow and tsl_col == color.lime ? 1 : 0
sell = tsl_col[1] == color.yellow and tsl_col == color.red ? -1 : 0

plotcandle(open,high,low,close, color=tsl_col)

strategy.entry("Long", strategy.long,when=buy==1)
strategy.close("Long", when=sell==-1)


Plus de