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 stratégie met essentiellement en œuvre l'identification des tendances à travers les parties suivantes:
Calculer un indicateur stochastique à court terme avec entrée de longueur de période ((30) et paramètre de fluidité 2
Calculer un indicateur stochastique à long terme avec entrée de longueur de période ((90) et paramètre lisse 2
Ajouter les stochastiques à court et à long terme pour obtenir une courbe stochastique combinée
Calculer une moyenne mobile pondérée par volume de la courbe ts avec une entrée de longueur de période ((30)
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
Combiner avec la position de la courbe stochastique pour identifier les signaux haussiers ou baissiers
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.
Le double stochastique peut refléter à la fois des situations de surachat/survente à court et à long terme, évitant de manquer certains signaux
Les moyennes mobiles pondérées par volume peuvent filtrer certains faux signaux de rupture
La position de la courbe stochastique confirme la fiabilité des signaux de tendance
Paramètres réglables adaptés aux différents marchés
Logie claire et simple, facile à comprendre et à modifier
Il y a aussi quelques risques à prendre en compte pour cette stratégie:
Les stochastiques peuvent donner de faux signaux, il faut filtrer avec des indicateurs à plus longue période
Les périodes fixes ne conviennent pas à tous les marchés, l'optimisation dynamique pourrait aider
Basé sur des indicateurs purement techniques, les fondamentaux peuvent améliorer la précision
Les données de volume inexactes affectent les résultats, il est nécessaire de vérifier la qualité des données
Historique insuffisant des tests antérieurs, besoin de plus de données pour la validation
Les points d'entrée peuvent être améliorés, plutôt que de diriger long sur les croix sous le plus bas
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)