Эта стратегия использует комбинацию трёх различных типов движущихся средних, TEMA, DEMA и HMA, чтобы войти в игру при появлении среднесрочных средних TEMA и DEMA, а также использовать долгосрочные средние HMA для определения направления тренда и отфильтровывания контрастных торговых сигналов.
В частности, стратегия одновременно использует двузначную скользящую среднюю DEMA для определения среднесрочной тенденции, трехзначную скользящую среднюю TEMA для определения краткосрочной тенденции и плотную скользящую среднюю HMA для определения долгосрочной тенденции. Торговый сигнал создается только в том случае, если краткосрочная средняя стартует в одном и том же направлении ((TEMA и DEMA совпадают с прорывом) и долгосрочная основная тенденция также совпадает ((направление HMA совпадает с прорывом).
Можно найти оптимальное сочетание параметров с помощью тестирования с несколькими параметрами, внедрить стратегию остановки убытков, а также управлять рисками путем соответствующего смягчения условий входа в игру.
Эта стратегия использует комбинацию из нескольких показателей для определения тренда. Преимущества заключаются в том, что сигнал генерируется четко и имеет большое пространство для конфигурации; недостатки заключаются в наличии риска задержки и зависимости от нескольких параметров.
// 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)