Стратегия Auto S/R - это стратегия, следующая за трендом. Она рассчитывает самые высокие и самые низкие цены за определенные периоды, чтобы определить ключевые уровни поддержки и сопротивления. Когда цена проходит через эти ключевые уровни, заказы на покупку или продажу выполняются.
Стратегия сначала вычисляет самые высокие и самые низкие цены на нескольких панелях слева и справа, чтобы определить основные уровни поддержки и сопротивления. Затем она вычисляет самые высокие и самые низкие цены на меньшем количестве панелей, чтобы определить краткосрочные уровни поддержки и сопротивления. Когда цена превышает уровень поддержки в ближайшее время, запускается ордер на покупку. Когда цена превышает уровень сопротивления в ближайшее время, запускается ордер на продажу.
Ключевая логика стратегии заключается в том, что если цена превышает уровни поддержки или сопротивления, сформированные с обеих сторон в течение определенных периодов, это, вероятно, сигнализирует о начале новой тенденции. Ввод позиций в направлении прорыва позволяет захватить формирующуюся тенденцию. Стратегия сочетает в себе различные временные рамки для подтверждения тенденции, избегая введения в заблуждение краткосрочными колебаниями цен.
Самое большое преимущество этой стратегии заключается в том, что она может автоматически идентифицировать ключевые уровни поддержки и сопротивления, исключая необходимость в ручной идентификации уровня цен. Объединяя различные временные рамки, она может эффективно отфильтровать ложные прорывы, избегая попадания в ловушку проигрышных позиций.
Кроме того, правила входа и выхода просты и просты - требуется только разрыв краткосрочных уровней S / R. Это позволяет легко реализовать и оптимизировать стратегию путем настройки параметров.
Самый большой риск заключается в том, что автоматически рассчитанные уровни S/R могут быть ненадежными, и цена может прорваться без начала тренда.
Кроме того, если период для краткосрочного S/R слишком короткий, это может привести к чрезмерному количеству ложных сигналов, что приводит к высоким потерям в режиме реального времени.
Чтобы уменьшить риски, рассмотрите возможность добавления фильтрующих условий с использованием других индикаторов, таких как объем и скользящие средние значения, чтобы подтвердить направленность тренда перед входом.
Есть два основных аспекта, в которых эта стратегия может быть оптимизирована:
Оптимизировать входные параметры, чтобы найти оптимальные комбинации периодов для наибольшего успешного прорыва.
Добавьте дополнительные фильтры, такие как индикаторы объема / импульса и скользящие средние, чтобы избежать ложных прорывов.
В целом это прочная основа для автоматического определения уровней поддержки и сопротивления. Реализация проста благодаря автоматическому обнаружению S / R, что делает ее подходящей для стратегий, следующих за трендом. Дальнейшие оптимизации параметров и фильтров могут повысить прибыльность.
/*backtest start: 2023-01-01 00:00:00 end: 2023-12-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © lukaRT //@version=5 strategy("Auto S/R Strategy", shorttitle="Auto S/R", overlay=true) // Ваши входные параметры leftBars = input.int(50, title="Left Bars") rightBars = input.int(25, title="Right Bars") quickRightBars = input.int(5, title="Quick Right Bars") src = input(close, title="Source") pivotHigh = ta.pivothigh(src, leftBars, rightBars) pivotLow = ta.pivotlow(src, leftBars, rightBars) quickPivotHigh = ta.pivothigh(src, leftBars, quickRightBars) quickPivotLow = ta.pivotlow(src, leftBars, quickRightBars) // Ваши уровни сопротивления и поддержки resistanceLevel1 = ta.valuewhen(quickPivotHigh, high[quickRightBars], 0) supportLevel1 = ta.valuewhen(quickPivotLow, low[quickRightBars], 0) // Пересечение ценой уровней longCondition = ta.crossover(close, supportLevel1) shortCondition = ta.crossunder(close, resistanceLevel1) strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition) // Отображение линий сопротивления и поддержки на графике plot(resistanceLevel1, color=color.red, title="Resistance Level 1") plot(supportLevel1, color=color.green, title="Support Level 1")