Эта стратегия в основном использует высокие, низкие и закрытые цены предыдущего торгового дня в качестве уровней поддержки и сопротивления для текущего дня.
Код сначала определяет функцию calculateSupportResistance для расчета уровней поддержки и сопротивления, которая извлекает высокие, низкие и закрытые цены предыдущего торгового дня как уровни поддержки и сопротивления текущего дня.
Затем в основной логике, эта функция называется, чтобы получить эти три уровня цены и начертить их.
В логике обратного тестирования, если цена закрытия ниже уровня минувшего дня, в то время как текущая цена выше уровня минувшего дня, формируя прорыв, он идет на длинный.
С помощью этой модели прорыва осуществляется суждение о тренде и генерация торговых сигналов.
Использование данных предыдущих торговых дней для построения уровня поддержки и сопротивления текущего дня, избегая проблемы оптимизации параметров
Уровни поддержки и сопротивления основаны на реальных данных о торговле на рынке, с некоторым эталонным значением
Простая и простая модель обратного тестирования, легкая для понимания и реализации
Визуальное отображение уровней поддержки и сопротивления формирует восприятие цен
Наблюдение за прорывами в режиме реального времени, своевременное выявление торговых возможностей
Уровни поддержки и сопротивления меняются с течением времени, трудно определить их достоверность
Невозможность предсказать направление тренда, риск отсутствия переворотов
Легко подвергается влиянию ложных прорывов, риск преждевременного вступления
Невозможно определить продолжительность прорывов, вероятность ранней остановки потери
Потеря поддержки и сопротивления в условиях огромных колебаний на рынке
Контрмеры:
Объедините больше факторов для оценки достоверности прорывов
Соответственно расширить диапазон стоп-лосса для улавливания трендов
Открытые позиции в партиях, снижение влияния индивидуальных колебаний
Добавьте больше исторических данных, таких как 5-дневные, 10-дневные линии для определения уровней
Включить другие показатели, такие как объем, чтобы судить о действительности прорыва
Установка стоп-лосса на основе фактической волатильности
Оптимизировать управление капиталом, контролировать одиночные потери
В целом это типичная стратегия прорыва, простая и интуитивная. Построение текущей поддержки и сопротивления с данными предыдущих дней и обратное тестирование прорывов этих уровней на длинный / короткий.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Support and Resistance with Backtesting", overlay=true) // Function to calculate support and resistance levels calculateSupportResistance() => highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on) lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on) closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on) [highPrevDay, lowPrevDay, closePrevDay] // Call the function to get support and resistance levels [supResHigh, supResLow, supResClose] = calculateSupportResistance() // Plotting support and resistance levels plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High") plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low") plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close") // Backtesting logic backtestCondition = close[1] < supResLow and close > supResLow strategy.entry("Long", strategy.long, when=backtestCondition) // Plotting buy/sell arrows for backtesting plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)