
Стратегия называется “Количественная стратегия торговли на основе индекса TSI и Hull Moving Average”. Основная идея заключается в том, чтобы в сочетании с индексом TSI и Hull Moving Average идентифицировать тенденции в акциях, цифровых валютах или валютах и генерировать торговые сигналы в начале тренда.
Эта стратегия использует индикатор ТСИ для определения ценовых тенденций и динамики. Индикатор ТСИ - это двойная скользящая средняя, основанная на изменении цены.
Эта стратегия также использует Hull Moving Average для определения ценовой тенденции. Hull Moving Average построен на основе двойного взвешенного движущегося среднего, который эффективно фильтрует рыночный шум. Hull Moving Average определяется как тенденция к росту, когда она проходит через медленную линию, и как тенденция к снижению, когда она проходит через медленную линию.
В то же время, когда индикатор TSI подает сигнал, соответствующий торговый сигнал создается, если движущаяся средняя Hull также подтверждает тенденцию в том же направлении. Кроме того, стратегия также проверяет направление K-линейных объектов для подтверждения тенденции. Торговый сигнал подается только тогда, когда индикаторный сигнал, сигнал Hull и направление K-линейных объектов совпадают.
Эта стратегия, объединяющая несколько индикаторов тренда, динамики и средней, позволяет эффективно идентифицировать начало рыночной тенденции и избегать создания большого количества ложных сигналов. Двойная скользящая средняя также может отфильтровывать часть шума.
По сравнению с одним показателем, эта стратегия может значительно повысить качество сигнала путем комбинирования нескольких показателей фильтрации. Многочисленные условия подтверждения также делают стратегию очень надежной при создании сигнала.
Хотя эта стратегия эффективно идентифицирует начало тренда, она может привести к некоторому количеству ошибочных сигналов и чрезмерной торговли во время рыночных потрясений. Кроме того, неправильная настройка параметров может привести к ненужному выравниванию позиций.
Для снижения риска можно соответствующим образом скорректировать циклы Hull Moving Average или параметры TSI, а также можно добавить стоп-лосс для контроля потерь. В процессе оптимизации необходимо обратить внимание на сигнал-шумный коэффициент, чтобы получить оптимальные параметры.
Эта стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия в сочетании с индикатором TSI и Hull Moving Average генерирует торговый сигнал после определения рыночной тенденции. Стратегия имеет высокую своевременность и качество сигнала. С помощью оптимизации параметров и комбинации стратегий можно значительно повысить доходность и снизить риск.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("TSI/HullMA/VWMA strategy", shorttitle="TSI/HullMA/VWMA", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
TP = input(defval=200.00, title="TargetPoint in $", type=float, step=1)
SL = input(defval=-2000.00, title="StopLoss in $", type=float, step=1)
signal = input(title="Signal Length", defval=6)
keh=input(title="HullMA cross",defval=2)
a=input(title="VWMA",defval=2)
long=35,short=35,linebuy=4,linesell=-4,ot=1,p=ohlc4[0]
double_smooth(src, long, short) =>
fist_smooth = ema(src, long)
ema(fist_smooth, short)
pc = change(p)
rvwma=vwma(p,round(a))
rvwma2=vwma(p,round(a*2))
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
hullbuy=n1>n2 and n1>n2[1] and rvwma>rvwma2
hullsell=n1<n2 and n1<n2[1] and rvwma<rvwma2
candlebuy=ohlc4[0]>ohlc4[1] and ohlc4[0]>ohlc4[2] and ohlc4[0]>ohlc4[3]
candlesell=ohlc4[0]<ohlc4[1] and ohlc4[0]<ohlc4[2] and ohlc4[0]<ohlc4[3]
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
strategy.entry("buy", true, na, when = tsi_value>ema(tsi_value, signal) and candlebuy and hullbuy)
strategy.entry("sell", false, na, when = tsi_value<ema(tsi_value, signal) and candlesell and hullsell)
strategy.close_all(when = strategy.openprofit>TP or strategy.openprofit<SL)