Стратегия захвата импульса на основе скользящей средней

Автор:Чао Чжан, Дата: 2023-11-01 15:55:51
Тэги:

img

Обзор

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

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

  1. Вычислить цену закрытия Heikin-Ashi nAMAn в качестве базовой цены.

  2. Вычислите быструю среднюю скорость fma и медленную среднюю скорость sma на основе nAMAn.

  3. Сгенерируйте сигнал покупки, когда FMA пересекает SMA, и сигнал продажи, когда FMA пересекает SMA.

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

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

  1. Хайкин-Аши помогает более точно определить точки переворота тренда.

  2. Кроссовер MA эффективно отфильтровывает ложные сигналы.

  3. Отсутствие отставания в генерации сигнала обеспечивает надежную работу в режиме реального времени.

  4. Гибкая настройка параметров, адаптируемая для различных продуктов.

  5. Простая и понятная логика, легко понятная и реализуемая.

  6. Может быть полностью автоматизирован, чтобы минимизировать риски ручной торговли.

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

  1. Плохая динамика на рынке с низкими ценами.

  2. Склонны к созданию ложных сигналов при перекрестном использовании двойного MA.

  3. Ненадлежащие параметры МР могут привести к отсутствию тенденций или увеличению потребления.

  4. Стоимость торговли влияет на чистую прибыль в режиме реального времени.

  5. Строгий стоп-лосс необходим для контроля потерь на одной сделке.

  6. Механические торговые стратегии имеют неотъемлемые риски привлечения и требуют надлежащего управления капиталом.

Решения по управлению рисками:

  1. Добавьте фильтр волатильности, чтобы избежать рынка с диапазоном.

  2. Добавьте фильтры для обеспечения качества сигнала.

  3. Оптимизируйте параметры MA путем тщательного тестирования.

  4. Корректировать частоту торговли, чтобы уменьшить влияние затрат.

  5. Установите правильный стоп-лосс для контроля потери в одиночных сделках.

  6. Оптимизировать управление капиталом для контроля размеров позиций.

Руководство по улучшению

  1. Оптимизировать параметры MA для улучшения качества сигнала.

  2. Добавьте трендовый фильтр, чтобы избежать рынка винта.

  3. Включить показатели объема для подтверждения тенденции.

  4. Внедрять динамические стоп-лосс и получение прибыли для оптимизации получения прибыли.

  5. Интегрировать модуль управления капиталом для управления размером позиций.

  6. Добавьте алгоритмический торговый модуль для полной автоматизации.

Резюме

Эта стратегия объединяет методы кроссовера Хайкина-Аши и MA для создания простой и практичной краткосрочной стратегии тренда. Она генерирует надежные торговые сигналы в режиме реального времени и показывает хорошую производительность в живой торговле. Дальнейшие оптимизации параметров, управления рисками и алгоритмических торговых модулей могут превратить ее в полностью автоматизированную стратегию, которая заслуживает доверия.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Больше