Эта стратегия является всеобъемлющей торговой системой, которая сочетает в себе перекрестки простой скользящей средней (SMA) с отклонениями справедливого разрыва в стоимости (FVG). Она использует перекресток 8-периодных и 20-периодных SMA для выявления потенциальных изменений тренда, используя FVG для определения более точных точек входа.
SMA Crossover: использует 8-периодные и 20-периодные простые скользящие средние.
Разрыв справедливой стоимости (FVG): FVG образуется, когда текущий максимум свечи выше, чем предыдущий максимум свечи, и текущий минимум свечи ниже, чем предыдущий минимум свечи.
Условия въезда:
Условия выхода: Закрыть позиции при пересечении с противоположной SMA.
Комбинирует следующие тенденции и отступления: путем интеграции перекрестных SMA и отступлений FVG стратегия может улавливать основные тенденции при входе на более выгодные ценовые уровни.
Уменьшает ложные сигналы: ожидание того, что цена вернется к FVG, может отфильтровать некоторые потенциальные ложные перекрестные сигналы, улучшая точность торговли.
Управление рисками: использование FVG в качестве входных точек естественно обеспечивает более строгие размещения стоп-лосса, что помогает контролировать риск.
Приспособляемость: стратегия может быть адаптирована к различным рыночным условиям и торговым инструментам путем корректировки периодов SMA и параметров FVG.
Объективность: основывается на ясных технических показателях и ценовых действиях, уменьшая влияние субъективных суждений.
Риск переменного рынка: на рынках с ограниченным диапазоном или переменным рынком частое пересечение SMA может привести к чрезмерной торговле и потерям.
Отставание: как отстающий показатель, SMA могут упустить некоторые возможности в начале трендов.
Риск ложного прорыва: цена может на короткое время прорваться через FVG, а затем отступить, вызвав ложные сигналы.
Риск рыночного разрыва: на волатильных рынках цены могут разрываться над зоной FVG, что приводит к упущенным торговым возможностям.
Чувствительность параметров: эффективность стратегии может быть чувствительна к периодам SMA и параметрам определения FVG, что требует тщательной оптимизации.
Динамические периоды SMA: рассмотреть возможность динамической корректировки периодов SMA на основе волатильности рынка для адаптации к различным рыночным условиям.
Дополнительные фильтры: ввод дополнительных технических индикаторов (таких как RSI или MACD), чтобы подтвердить тенденции и уменьшить ложные сигналы.
Улучшить определение FVG: попробуйте использовать несколько свечей для определения FVG или рассмотреть объем для проверки эффективности FVG.
Оптимизировать стратегию выхода: внедрять последующие остановки или динамические остановки, основанные на волатильности, чтобы лучше защитить прибыль.
Добавление временных фильтров: Рассмотрим время формирования FVG, потенциально устанавливая временное окно для обеспечения действительности FVG.
Оптимизация управления рисками: динамическое регулирование размеров позиций на основе волатильности рынка для более четкого контроля риска.
/*backtest start: 2023-07-25 00:00:00 end: 2024-07-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("8 SMA and 20 SMA with FVG Pullback", overlay=true) // Input parameters smaShortLength = input.int(8, title="Short SMA Length") smaLongLength = input.int(20, title="Long SMA Length") // Calculate SMAs smaShort = ta.sma(close, smaShortLength) smaLong = ta.sma(close, smaLongLength) // Plot SMAs plot(smaShort, title="8 SMA", color=color.blue) plot(smaLong, title="20 SMA", color=color.red) // Identify SMA crossovers longCondition = ta.crossover(smaShort, smaLong) shortCondition = ta.crossunder(smaShort, smaLong) // Fair Value Gaps (FVG) logic var float fvgHigh = na var float fvgLow = na if (ta.valuewhen(high[1] < high and low[1] > low, high, 0) and ta.valuewhen(high[1] < high and low[1] > low, low, 0)) fvgHigh := high fvgLow := low plot(fvgHigh, title="FVG High", color=color.purple, linewidth=1, style=plot.style_line) plot(fvgLow, title="FVG Low", color=color.orange, linewidth=1, style=plot.style_line) // Entry conditions if (longCondition) if (low <= fvgLow) strategy.entry("Long", strategy.long) if (shortCondition) if (high >= fvgHigh) strategy.entry("Short", strategy.short) // Exit conditions (optional, you can modify these as per your risk management strategy) if (ta.crossunder(smaShort, smaLong)) strategy.close("Long") if (ta.crossover(smaShort, smaLong)) strategy.close("Short")