Эта стратегия сочетает в себе 200-дневную экспоненциальную скользящую среднюю (200 EMA), средневзвешенную стоимость объема (VWAP) и индекс денежного потока (MFI) для генерации сигналов покупки и продажи. Основная идея заключается в использовании сочетания этих трех индикаторов для определения направления и силы тренда и генерации торговых сигналов, когда цена пробивается через 200 EMA и подтверждается индикаторами VWAP и MFI. Кроме того, 200 EMA из более высокой временной рамки вводится в качестве фильтра тренда, и сделки выполняются только тогда, когда тенденции на текущих и более высоких временных рамках выравниваются. Кроме того, непрерывность движения цен оценивается для улучшения надежности сигналов.
Сочетая 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")