
Многоциклическая торговая стратегия с прорывом в бурин-поясе - это торговая система, основанная на среднезначных реверсиях, основанная на волатильности цен, которая специализируется на захвате возможностей для реверсии после чрезмерного расширения рынка. Эта стратегия использует индикатор бурин-пояса (состоит из 20-циклической простой движущейся средней и 1,5-кратного стандартного разрыва) для выявления экстремального поведения рынка и совершения сделки при определенных условиях.
Основным принципом этой стратегии является теория средневековой регрессии, согласно которой цены обычно возвращаются после значительного отклонения от среднего значения в краткосрочной перспективе. Логика конкретной реализации следующая:
Механизм распознавания сигнала:
Динамические параметры остановки:
Точный расчет позиции:
Постепенное управление убытками:
Временное окно:
Точное управление рискамиДвижущийся подсчет количества сделок, чтобы гарантировать, что максимальный риск для каждой сделки фиксируется в 4000 индийских рупий, обеспечивает точное управление риском.
Приспосабливаться к волатильности рынкаБрин-пояса, основанные на стандартных расходах, могут автоматически корректироваться в зависимости от изменения волатильности рынка, что позволяет стратегии оставаться адаптированными в различных рыночных условиях.
Ясные правила торговлиУсловия входа, остановки и получения прибыли четко определены, субъективное суждение уменьшено, дисциплина в торговле повышена.
Постепенное управление рисками: Оптимизировать структуру риска-возвращения, реализуя “нулевую” торговлю, перемещая стоп-лосс к цене входа, когда торговля движется в благоприятном направлении.
Среднезначная регрессия уловаВ частности, он отмечает, что “после перерасширения рынка, мы сможем эффективно использовать тенденцию к возвращению и сосредоточиться на высоковероятных торговых возможностях”.
Фильтрация с ограничением времени: Срок действия 4 K-линий, избежание исполнения устаревших сигналов, повышение эффективности торгов.
Система визуальной обратной связи: предоставляет интуитивную информацию о состоянии рынка с помощью грубой кривой ленты Брин, которая помогает принятию торговых решений
Риск быстрого сдвига: В условиях сильного тренда цены могут не следовать логике средневесовой регрессии, что приводит к последовательным триггерам стоп-лосс. Решение заключается в добавлении трендового фильтра и приостановке обратной торговли в условиях сильного тренда.
Риски низкой ликвидностиНа рынках с низким объемом торгов может быть трудно выполнить большое количество заказов по оптимальным ценам, что влияет на эффективность фактического контроля риска. Рекомендуется увеличить механизм обнаружения ликвидности и уменьшить объем торгов в условиях низкой ликвидности.
Параметры оптимизации избыточного риска: фиксированные параметры по Беринговой полосе ((20 циклов SMA и 1,5 раз стандартного отклонения) могут отличаться в зависимости от рынка или периода. Рекомендуется внедрение системы адаптивных параметров, адаптируемых в зависимости от динамики рыночной ситуации.
Экстремальные рыночные рискиВ период рыночных скачков или сильных колебаний фактический стоп может превышать заданный уровень. Рекомендуется внедрение более сложных стратегий стоп, таких как динамический стоп на основе ATR или дифференцированный стоп.
Риски частых сделокВ условиях высокой волатильности стратегия может создавать слишком много сигналов, увеличивая стоимость сделки. Можно рассмотреть возможность добавления фильтра качества сигнала и выполнения только самых высококачественных торговых возможностей.
Риски управления капиталом: фиксированная сумма риска может не подходить для всех размеров счетов. следует осуществлять управление рисками на основе процентов счетов, а не фиксированной суммы.
Многоциклическая система подтверждения: внедрение многовременного анализа, требующего подтверждения торговых сигналов на более высоких временных рамках для повышения успешности торгов. Например, торговые сигналы на часовом уровне выполняются только тогда, когда график дня также показывает тенденцию к среднему возврату.
Динамические параметры Брин-полосы: реализация адаптивной корректировки параметров буринского пояса, динамический выбор оптимального цикла и кратности стандартного отклонения на основе рыночной волатильности или особенностей торгового сорта.
Фильтрация рыночной средыУлучшение адаптивности стратегии: Добавление алгоритмов идентификации типа рынка для выполнения полной стратегии в рыночных рынках, в то время как выборочное выполнение сигнала прогресса в трендовых рынках.
Анализ стоимости и количества: в сочетании с показателями объема сделок подтверждает эффективность сигналов прорыва, например, при требовании прорыва сопровождается заметным увеличением объема сделок, фильтрация ложных прорывов.
Стратегия поэтапной прибылиОптимизация фиксированной модели 3-кратного риска и прибыли, заменена системой с разбивкой прибыли, например, ликвидация 50% при 2-кратном риске, ликвидация остатка при 3-кратном риске, повышение эффективности капитала.
Оптимизация машинного обученияВнедрение моделей машинного обучения для классификации исторических сигналов, выявления признаков высокой и низкой выигрышности сигналов, создание более тонких механизмов фильтрации сигналов.
Интеграция анализа релевантностиПри рассмотрении многоразовых сделок в портфеле следует использовать анализ взаимосвязи, избегать одновременного выполнения односторонних сделок в высоко взаимосвязанных сортах и снизить системный риск.
Улучшение управления финансами: преобразование фиксированной суммы риска в динамическое распределение риска, основанное на размере счета, например, 0,5%-2% от суммы счета, для достижения динамического баланса риска и размера счета.
Многоциклическая стратегия трейдинга с прорывным возвратами в бриндерах - это высокоструктурированная, четко определенная правилами система трейдинга с помощью технического анализа, которая использует индикаторы бриндеров для захвата возможностей возврата после чрезмерного поведения рынка. Ее основные преимущества заключаются в точном контроле риска, четких торговых правилах и постепенном управлении убытками, что позволяет трейдеру добиваться заметной отдачи, контролируя при этом риск.
Тем не менее, стратегия также сталкивается с такими проблемами, как недостаточная адаптация к трендовым рынкам, чрезмерная оптимизация параметров и экстремальный рыночный риск. Устойчивость и адаптивность стратегии могут быть значительно повышены путем внедрения оптимизационных мер, таких как многоциклическое подтверждение, корректировка динамических параметров, фильтрация рыночной среды и модернизация управления капиталом.
Для инвесторов, которые ищут возможности торговли с возвращением средней стоимости, эта стратегия предоставляет систематизированный подход, сохраняющий дисциплину в исполнении и оставляющий достаточный простор для оптимизации для адаптации к различным рыночным условиям. В конечном итоге, успешная реализация этой стратегии требует глубокого понимания динамики рынка, постоянной оптимизации системы и строгих правил управления рисками.
/*backtest
start: 2024-04-03 00:00:00
end: 2025-04-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("Bollinger Band Long & Short Strategy", overlay=true)
// Bollinger Bands settings
length = 20
src = close
mult = 1.5
basis = ta.sma(src, length)
deviation = ta.stdev(src, length)
upperBand = basis + (mult * deviation)
lowerBand = basis - (mult * deviation)
// Detecting a candle fully outside the upper Bollinger Band
prevCandleOutsideUpper = (close[1] > upperBand[1]) and (open[1] > upperBand[1]) and (low[1] > upperBand[1])
// Detecting a candle fully outside the lower Bollinger Band
prevCandleOutsideLower = (close[1] < lowerBand[1]) and (open[1] < lowerBand[1]) and (high[1] < lowerBand[1])
// Entry condition - Only within the next 4 candles break the low of the previous candle (Short)
breaksLow = ta.lowest(low, 4) < low[1] and ta.barssince(prevCandleOutsideUpper) <= 4
// Entry condition - Only within the next 4 candles break the high of the previous candle (Long)
breaksPrevHigh = ta.highest(high, 4) > high[1] and ta.barssince(prevCandleOutsideLower) <= 4
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na
var float breakevenLevel = na
var float quantity = na
maxLoss = 4000.0 // Max loss set to INR 4000 per trade
// Short Trade
if prevCandleOutsideUpper and breaksLow
entryPrice := low[1]
stopLoss := high[1] // Stop-loss set to the high of the candle outside the upper BB
risk = stopLoss - entryPrice
quantity := risk > 0 ? math.floor(maxLoss / risk) : na // Ensuring risk is exactly 4000 per trade
takeProfit := entryPrice - (risk * 3) // Adjusted for 1:3 risk-reward
breakevenLevel := entryPrice - (risk * 2) // 1:2 level where stop loss moves to breakeven
if not na(quantity) and quantity > 0
strategy.entry("Short", strategy.short, qty=quantity)
// Move SL to breakeven if 1:2 is reached for Short
if strategy.position_size < 0 and close <= breakevenLevel
strategy.exit("Move SL to breakeven", from_entry="Short", stop=entryPrice)
// Close trade at 1:3 for Short
if strategy.position_size < 0 and close <= takeProfit
strategy.close("Short")
// Long Trade
if prevCandleOutsideLower and breaksPrevHigh
entryPrice := high[1]
stopLoss := low[1] // Stop-loss set to the low of the candle outside the lower BB
risk = entryPrice - stopLoss
quantity := risk > 0 ? math.floor(maxLoss / risk) : na // Ensuring risk is exactly 4000 per trade
takeProfit := entryPrice + (risk * 3) // Adjusted for 1:3 risk-reward
breakevenLevel := entryPrice + (risk * 2) // 1:2 level where stop loss moves to breakeven
if not na(quantity) and quantity > 0
strategy.entry("Long", strategy.long, qty=quantity)
// Move SL to breakeven if 1:2 is reached for Long
if strategy.position_size > 0 and close >= breakevenLevel
strategy.exit("Move SL to breakeven", from_entry="Long", stop=entryPrice)
// Close trade at 1:3 for Long
if strategy.position_size > 0 and close >= takeProfit
strategy.close("Long")
// Plot Bollinger Bands with increased visibility
plot(upperBand, color=color.red, linewidth=3, title="Upper Band")
plot(lowerBand, color=color.green, linewidth=3, title="Lower Band")
plot(basis, color=color.blue, linewidth=3, title="Middle Band")