
Il s’agit d’une stratégie qui utilise une combinaison de deux stochastiques et de la moyenne mobile pondérée de la transaction pour identifier la tendance. La stratégie utilise deux stochastiques de différentes périodes, l’une de courte durée, l’autre de longue durée, et une moyenne mobile pondérée de la transaction combinée pour déterminer la direction de la tendance actuelle.
La stratégie consiste principalement à évaluer les tendances en fonction des éléments suivants:
Calculer l’indicateur stochastique d’un cycle court, dont la longueur de cycle est d’environ 30 et dont le paramètre de lissage est de 2
Calculer l’indicateur stochastique d’un cycle long avec une longueur de cycle de l’input () 90 et un paramètre de lissage de 2
Ajouter les indices stochastiques de courte et longue période pour obtenir une courbe stochastique synthétique
Calculer une moyenne mobile pondérée de la transaction tsl pour la courbe tss avec une longueur de cycle d’input 30
Comparer la valeur actuelle de tsl avec sa valeur d’avant 1 cycle, considérant comme une tendance à la hausse lorsque tsl augmente, considérant comme une tendance à la baisse lorsque tsl diminue
Combinez ensuite la position de la courbe stochastique pour déterminer si le signal est à plusieurs têtes ou vide.
Cette stratégie, combinée à un jugement de tendance et à un jugement de survente, permet d’identifier de manière plus fiable la direction de la tendance. Les avantages spécifiques sont les suivants:
Les Indicateurs de Stochastics doubles peuvent refléter à la fois des surachats et des survente à court et à long terme, évitant ainsi de manquer certains signaux.
La pondération de la transaction peut filtrer certains faux signaux de rupture
La position de la courbe stochastique confirme une fois de plus la fiabilité des signaux de tendance
Les paramètres sont réglables et la longueur des cycles peut être adaptée en fonction du marché.
L’idée stratégique est claire et concise, facile à comprendre et à modifier.
Cette stratégie comporte également des risques à prendre en compte:
Les stochastiques sont sujettes à de faux signaux et nécessitent un filtrage des indicateurs à plus longues périodes.
Les paramètres à cycle fixe ne s’adaptent pas à toutes les conditions du marché, des paramètres d’optimisation dynamique peuvent être envisagés
Une meilleure précision basée uniquement sur des indicateurs techniques, combinée à des facteurs fondamentaux
L’inexactitude des données sur les livraisons peut également affecter les résultats et la qualité des données sur les livraisons doit être vérifiée.
Le temps de détection est insuffisant et il faut plus de données historiques pour vérifier l’efficacité.
Les points d’entrée optimisés, maintenant les crosses sous les valeurs minimales, peuvent être réglés en zones de sécurité
Dans l’ensemble, la stratégie utilise les indices de stochastique double et les moyennes mobiles pondérées en volume de transactions pour déterminer les tendances, ce qui permet en théorie d’identifier de manière fiable les points de basculement. Cependant, les paramètres doivent être optimisés pour un marché spécifique et il existe un certain risque de faux signal.
/*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)