Количественная стратегия торговли, основанная на индикаторе ТСОС и скользящей средней на корпусе

Автор:Чао Чжан, Дата: 2023-12-18 16:56:22
Тэги:

img

Обзор

Эта стратегия называется Квантитативная стратегия торговли на основе индикатора TSI и скользящей средней Hull. Основная идея заключается в том, чтобы определить тенденции в акциях, криптовалютах или форексе путем объединения индикатора TSI и скользящей средней Hull и генерировать торговые сигналы, когда начинается тенденция.

Логика стратегии

Стратегия использует индикатор TSI для определения тенденций и динамики цен. Индикатор TSI основан на двойной сглаженной скользящей средней скорости изменения цен. Он генерирует сигналы покупки, когда значение TSI пересекает его скользящую среднюю, и сигналы продажи, когда пересекает ниже.

Стратегия также использует Hull Moving Average для определения ценовых тенденций. Hull Moving Average построена с использованием двойных взвешенных скользящих средних и может эффективно фильтровать шум рынка.

Когда индикатор ТСИ генерирует сигнал, если скользящий средний показатель Hull подтверждает тенденцию в том же направлении, будут задействованы соответствующие торговые сигналы. Кроме того, стратегия также проверяет направление тела свечи для подтверждения тенденции. Сигналы генерируются только тогда, когда индикаторный сигнал, сигнал Hull и направление тела свечи все выровнены последовательно.

Анализ преимуществ

Сочетая индикаторы тренда, импульса и скользящих средних, эта стратегия может эффективно определить начало рыночных тенденций и избежать чрезмерных ложных сигналов.

По сравнению со стратегией с одним индикатором, эта стратегия фильтрует сигналы путем объединения нескольких индикаторов, что может значительно улучшить качество сигналов.

Анализ рисков

Хотя эта стратегия может эффективно идентифицировать начало тренда, она может генерировать некоторые ложные сигналы и чрезмерную торговлю во время консолидации рынка.

Для уменьшения рисков параметры корпуса или ТСО могут быть соответствующим образом скорректированы.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизировать параметры среднедвижимого корпуса для сглаживания кривых и фильтрации ложных сигналов
  2. Оптимизировать параметры ТСОС для сбалансирования чувствительности и стабильности
  3. Добавить стратегии остановки потери для контроля размера потери
  4. Настройка длины сигнала для фильтрации короткосрочного шума
  5. Испытания на различных продуктах и сроках
  6. Включить другие показатели для проверки сигнала

Заключение

Эта стратегия сочетает в себе индикатор TSI и скользящую среднюю Hull, чтобы генерировать торговые сигналы после подтверждения рыночных тенденций. Стратегия имеет высокое время и качество сигнала. Благодаря оптимизации параметров и комбинации стратегии при снижении рисков можно значительно улучшить прибыльность. Стратегия подходит для выявления средне- и долгосрочных тенденций и имеет перспективные перспективы применения, особенно на рынках криптовалют и форекс.


/*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)

Больше