Cette stratégie utilise une combinaison de trois types différents de moyennes mobiles, TEMA, DEMA et HMA, pour entrer en jeu lorsque les moyennes à court terme TEMA et DEMA émettent des signaux de fourche dorée/morte, et utilise les moyennes à long terme HMA pour déterminer la direction de la tendance et filtrer les signaux de négociation négatifs.
Plus précisément, la stratégie utilise simultanément la moyenne mobile à deux indices DEMA pour déterminer la tendance à moyen terme, la moyenne mobile à trois indices TEMA pour déterminer la tendance à court terme, et la moyenne mobile dense HMA pour déterminer la tendance à long terme. Un signal de négociation n’est généré que lorsque la moyenne courte démarre dans la même direction (la direction de TEMA et la DEMA sont alignées sur la rupture) et que la tendance dominante à long terme est également alignée (la direction de la HMA est alignée sur la rupture).
Il est possible de gérer le risque en trouvant la combinaison optimale de paramètres grâce à des tests multi-paramètres, en introduisant des stratégies de stop-loss et en assouplissant les conditions d’entrée de jeu de manière appropriée.
Cette stratégie utilise une combinaison de plusieurs indicateurs de la courbe pour déterminer la tendance. L’avantage est que la génération de signaux est claire et configurable. L’inconvénient est le risque de retard et la dépendance à plusieurs paramètres.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tuned-com
//@version=4
strategy("TEMA/DEMA/HMA", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000000, commission_type=strategy.commission.percent, commission_value=0.1)
Tlength = input(8, title="TEMA Length", minval=1)
Dlength = input(43, title="DEMA Length", minval=1)
Hlength = input(52, title="Hull Length", minval=1)
Rlength = input(2, title="Hull Trend Test Length", minval=1)
//TEMA//
ema1 = ema(close, Tlength)
ema2 = ema(ema1, Tlength)
ema3 = ema(ema2, Tlength)
tema = 3 * (ema1 - ema2) + ema3
//DEMA//
e1 = ema(close, Dlength)
e2 = ema(e1, Dlength)
dema = 2 * e1 - e2
//HMA//
hma = wma(2 * wma(close, Hlength / 2) - wma(close, Hlength), round(sqrt(Hlength)))
up = crossunder(dema, tema) and rising(hma, Rlength)
down = crossover(dema, tema) and falling(hma, Rlength)
downc = crossunder(dema, tema)
upc = crossover(dema, tema)
plot(dema, color=color.green, linewidth=2)
plot(tema, color=color.aqua, linewidth=2)
plot(hma, color=rising(hma, Rlength) ? color.green : na, linewidth=2, transp=0)
plot(hma, color=falling(hma, Rlength) ? color.red : na, linewidth=2, transp=0)
bgcolor(rising(hma, Rlength) ? color.green : na, transp=70)
bgcolor(falling(hma, Rlength) ? color.red : na, transp=70)
plotarrow(tema - dema, colorup=color.green, colordown=color.red, transp=70)
if up
strategy.entry("Long Entry", strategy.long)
if down
strategy.entry("Short Entry", strategy.short)