200 скользящая средняя, ​​VWAP, стратегия следования за трендом MFI


Дата создания: 2024-05-14 16:26:49 Последнее изменение: 2024-05-14 16:26:49
Копировать: 1 Количество просмотров: 754
1
Подписаться
1617
Подписчики

200 скользящая средняя, ​​VWAP, стратегия следования за трендом MFI

Обзор

Эта стратегия сочетает в себе 200-дневную скользящую среднюю ((200 EMA), среднюю цену с переходной нагрузкой ((VWAP) и индикатор денежных потоков ((MFI) для создания сигнала купли-продажи. Основная идея заключается в том, чтобы использовать комбинацию этих трех показателей для определения направления и силы тренда, чтобы создать торговый сигнал в случае, если цена преодолевает 200 EMA и подтверждается показателями VWAP и MFI.

Стратегический принцип

  1. Вычислите 200-дневную ЭМА и вычислите процент буферной зоны в зависимости от ввода.
  2. Расчет показателя VWAP.
  3. Расчет 14-циклического показателя МФИ и установление порога покупки и продажи.
  4. Получение 200 EMA для высоких временных циклов в качестве фильтра тренда.
  5. Оценить непрерывность движения цен, проверить, соответствует ли условию непрерывного роста или падения.
  6. Комбинируя вышеперечисленные условия, создание сигнала покупки происходит при условии: цена закрытия преодолевает 200 EMA и выше VWAP, MFI больше, чем цена покупки, цена закрытия выше 200 EMA в высоком периоде времени, и цена продолжает расти.
  7. Условия для продажи сигналов: цена закрытия упала ниже 200 EMA и ниже VWAP, MFI меньше, чем продажи, цена закрытия ниже 200 EMA высокого временного периода, и ценовой тренд продолжается.
  8. При выполнении условий покупки или продажи, стратегия проводит соответствующую многоголовую или пустую сделку.

Стратегические преимущества

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

Стратегический риск

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

Направление оптимизации стратегии

  1. Для оптимизации параметров можно искать оптимальную комбинацию параметров, например, циклы EMA, циклы MFI и пороговое значение, размер буферной зоны и т. Д., путем обратной проверки исторических данных.
  2. Для дальнейшего повышения надежности и устойчивости сигналов можно рассмотреть возможность внедрения других вспомогательных индикаторов или индикаторов рыночной сентиментальности, таких как BRI, RSI и т. д.
  3. С точки зрения управления сделками, могут быть введены механизмы стоп-стоп, такие как мобильный стоп или динамический стоп на основе ATR, для контроля риска в одной сделке.
  4. Можно исследовать различные стратегии управления позициями, такие как размещение позиций на основе риска или формула Келли, чтобы оптимизировать риск-прибыль соотношения стратегий.
  5. Подумайте о внедрении машинного обучения или адаптивных алгоритмов, динамично адаптирующих параметры стратегии к изменениям рынка.

Подвести итог

Стратегия создает относительно надежную систему для отслеживания трендов, используя в сочетании 200-дневную EMA, VWAP и MFI, а также учитывая тенденции высоких временных циклов и непрерывность ценового движения. Стратегия фильтрует ложные сигналы и повышает точность входа в рынок, используя комплексный анализ нескольких условий.

Исходный код стратегии
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("200 EMA, VWAP, MFI Strategy - Visible Signals", overlay=true, pyramiding=0)

// Inputs for dynamic adjustments
buffer = input.float(0.2, title="EMA Buffer Percentage", step=0.1) / 100
higherTimeframe = input.timeframe("15", title="Higher Timeframe")
mfiBuyThreshold = input(60, title="MFI Buy Threshold")
mfiSellThreshold = input(40, title="MFI Sell Threshold")
consecutiveCloses = input.int(1, title="Consecutive Closes for Confirmation")

// Calculate the 200-period EMA
ema200 = ta.ema(close, 200)
emaBufferedHigh = ema200 * (1 + buffer)
emaBufferedLow = ema200 * (1 - buffer)
emaHigher = request.security(syminfo.tickerid, higherTimeframe, ta.ema(close, 200))

// VWAP calculation
vwap = ta.vwap(hlc3)

// Money Flow Index calculation
mfiLength = 14
mfi = ta.mfi(close, mfiLength)

// Plotting the indicators
plot(ema200, title="200 EMA", color=color.blue)
plot(vwap, title="VWAP", color=color.orange)
plot(mfi, title="MFI", color=color.purple)
hline(50, "MFI Reference", color=color.gray, linestyle=hline.style_dashed)
plot(emaHigher, title="Higher TF EMA", color=color.red)

// Price action confirmation
isUpTrend = ta.rising(close, consecutiveCloses)
isDownTrend = ta.falling(close, consecutiveCloses)

// Define entry conditions
longCondition = close > emaBufferedHigh and close > vwap and mfi > mfiBuyThreshold and close > emaHigher and isUpTrend
shortCondition = close < emaBufferedLow and close < vwap and mfi < mfiSellThreshold and close < emaHigher and isDownTrend

// Trading execution
if (longCondition)
    strategy.entry("Buy", strategy.long)

if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Plot shapes for signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal", text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal", text="Sell")