Стратегия бычьего поглощения. Количественная торговая система для управления рисками полосы Боллинджера.

BB SMA
Дата создания: 2025-02-25 10:57:40 Последнее изменение: 2025-02-25 10:57:40
Копировать: 0 Количество просмотров: 430
2
Подписаться
319
Подписчики

Стратегия бычьего поглощения. Количественная торговая система для управления рисками полосы Боллинджера. Стратегия бычьего поглощения. Количественная торговая система для управления рисками полосы Боллинджера.

Обзор

Эта стратегия является количественной торговой системой, основанной на техническом анализе, в основном использующей формы поглощения опционов в качестве входного сигнала в сочетании с индикатором волатильности буринской полосы для управления риском и контроля позиции. После того, как стратегия идентифицирует формы поглощения опционов, она определяет коэффициент риска в соответствии с диапазоном колебаний, рассчитанным по буринской полосе, а затем рассчитывает точный размер позиции на основе фиксированной пропорции общей стоимости счета, а в конечном итоге управляет сделкой, установив целевой уровень прибыли в 4R (стоп-лосс и фиксированный коэффициент возврата риска).

Стратегический принцип

Основная логика этой стратегии состоит из трех частей: генерация сигналов, управление позициями и условия выхода.

Во-первых, создание сигнала основывается на формате поглощения, который должен удовлетворять следующим условиям:

  1. Текущая цена закрытия линии K выше, чем цена открытия линии (Солнечная линия)
  2. Цена закрытия предыдущей K-линии ниже цены открытия (к-линия)
  3. Текущая цена закрытия линии K выше, чем цена открытия предыдущей линии K
  4. Текущая цена открытия линии K ниже цены закрытия предыдущей линии K
  5. Объем сделки должен быть больше установленного минимального значения (по умолчанию 1,000,000)

Во-вторых, управление позициями осуществляется следующими шагами:

  1. Вычисление на трассе с использованием 40 циклов, 2,5 стандартных погрешностей
  2. Рассчитанная стоимость R между верхней и нижней рельсами через ленту Брин: R = 0.4 * (1 - (нижняя / верхняя рельсы))
  3. 0,75% от общей стоимости портфеля в качестве суммы риска для каждой сделки
  4. Точный размер позиции, рассчитанный на основе стоп-дистанции (R-значения) и цены входа

Наконец, условия для выхода из группы:

  1. Стоп-лосс: выход, когда цена падает до цены входа минус R%
  2. Прибыль: выход, когда цена поднимается до входной цены плюс 4R%

Стратегические преимущества

  1. Контроль риска является точным и динамичным: стратегия не использует фиксированную точку остановки, а динамически корректирует параметры риска в зависимости от текущей волатильности рынка (с помощью расчета по буринской полосе), что позволяет системе самостоятельно адаптироваться к различным рыночным условиям.

  2. Управление рисками с фиксированной долей: 0,75% от рискованного счета для каждой сделки, эффективно предотвращает чрезмерные потери от отдельных сделок и обеспечивает стабильность долгосрочного управления средствами.

  3. Точное подсчет позиций: точное подсчет размеров позиций для каждой сделки на основе волатильности и суммы риска в буринской полосе, чтобы обеспечить постоянное воздействие риска в различных рыночных условиях.

  4. Четкое соотношение риска и прибыли: фиксированная цель получения прибыли с использованием 4R, гарантирующая, что потенциальная прибыль от каждой сделки в 4 раза превышает потенциальный риск, соответствующий требованиям к риску и прибыли от профессиональной торговли.

  5. Визуализация транзакций: помогает трейдерам получить интуитивное представление о том, как торгуются, отмечая входные сигналы и рисуя диаграмму транзакций.

Стратегический риск

  1. Риск временной эффективности: Поглощение опционов является краткосрочным сигналом об обратном курсе, который может не предсказывать изменения среднесрочной и долгосрочной тенденций и может привести к преждевременному вхождению в рынки с сильной тенденцией.

  2. Ограничение рыночных условий: эта стратегия может плохо работать на рынках с высокой волатильностью или отсутствием ликвидности, особенно когда бурин расширяется или сжимается аномально.

  3. Ограниченные условия входа: зависимость только от одной формы поглощения наблюдателя может привести к тому, что сигнал будет редким или пропустят другие эффективные возможности входа.

  4. Риск фиксированного умножения: использование фиксированного коэффициента 0,4 для расчета значения R может быть недостаточно гибким в некоторых рыночных условиях и не может быть полностью адаптировано к экстремальным рыночным условиям.

  5. Вопрос о потенциальном скольжении: в условиях высокой волатильности рынка может возникнуть заметное скольжение фактической стоп-исполняемой цены, что может повлиять на эффективность фактического контроля риска.

Направление оптимизации стратегии

  1. Добавление условий фильтрации: можно рассмотреть возможность добавления индикаторов подтверждения тренда (например, скользящих средних), чтобы быть уверенным, что торговля происходит только в направлении основной тенденции, избегая обратной торговли.

  2. Анализ на несколько временных рамок: введение анализа структуры рынка на более высоких временных рамах, выполнение сделок только в том случае, если тенденции на более высоких временных рамах совпадают, повышение качества сигналов.

  3. Динамическая корректировка параметров риска: фиксированный коэффициент риска 0,75% и коэффициент R 0,4 устанавливаются в качестве корректируемых параметров, автоматически корректируемых в соответствии с волатильностью рынка, повышающих риск в низко-волатильных рынках и снижающих риск в высоко-волатильных.

  4. Оптимизация стратегии выхода: можно рассмотреть возможность добавления движущихся стоп-лосс или динамических условий выхода на основе показателей, а не полагаться только на фиксированные уровни стоп-лосс и прибыли.

  5. Добавление подтверждения нескольких показателей: объединение формы поглощения кристалла с другими техническими показателями (такими как RSI, MACD или анализ объема торгов), повышение надежности входного сигнала.

Подвести итог

Количественная торговая система с рисковым управлением, основанная на стратегии поглощения перспектив, представляет собой целостную торговую систему, которая сочетает в себе традиционное распознавание графических паттернов и современные методы управления риском. Эта стратегия динамично регулирует параметры риска с помощью буринской схемы, точно контролирует размер позиции для каждой сделки и устанавливает целевую прибыль с помощью фиксированного риска по сравнению с прибылью. Этот метод обеспечивает адаптивность к волатильности рынка, сохраняя при этом торговую дисциплину.

Несмотря на отличные результаты в управлении рисками, есть место для оптимизации, особенно в отношении качества входных сигналов и гибкости выходной стратегии. С помощью добавления дополнительных фильтрующих условий, анализа многовременных рамок и корректировки динамических параметров риска стратегия может еще больше повысить адаптивность и прибыльность в различных рыночных условиях.

В целом, это полная торговая система с профессиональными характеристиками управления рисками, подходящая для использования трейдерами, которые придают большое значение управлению капиталом и контролю риска. С разумной оптимизацией и корректировкой параметров эта стратегия может стать долгосрочным стабильным торговым инструментом.

Исходный код стратегии
/*backtest
start: 2024-02-26 00:00:00
end: 2025-02-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Bullish Engulfing Strategy with BB Risk", overlay=true)

// Input parameters for customization (optional, can be adjusted in Strategy Tester)
minVolume = input.int(1000000, "Minimum Volume", minval=1)  // Optional filter for liquidity

// Calculate Bollinger Bands (length=40, StdDev=2.5) for R
length = 40
mult = 2.5
basis = ta.sma(close, length)  // Middle Band (40-period SMA of close)
dev = mult * ta.stdev(close, length)  // Standard deviation multiplied by 2.5
upperBB = basis + dev  // Upper Bollinger Band
lowerBB = basis - dev  // Lower Bollinger Band

// Define R as 0.4 times the Bollinger Bands spread: R = 0.4 * ((1 - (lowerBB / upperBB)) * 100)
R = 0.4 * (1 - (lowerBB / upperBB))  // Percentage value, scaled by 0.4

// Define Bullish Engulfing pattern with optional volume filter
isBullishEngulfing() => close > open and close[1] < open[1] and close > open[1] and open < close[1] and close[1] < open[1] and close > open and volume > minVolume

bullishEngulfing = isBullishEngulfing()

// Track position and entry details
var bool inPosition = false
var float entryPrice = 0.0
var int entryBar = 0
var int exitBar = 0  // Track exit bar (added here to fix undeclared variable)
var float exitPrice = 0.0  // Track exit price

// Enter long position on the next bar after Bullish Engulfing, with position size risking 0.75% of portfolio
if (bullishEngulfing and not inPosition)
    // Calculate position size to risk 0.75% of portfolio
    portfolioValue = strategy.equity  // Current portfolio equity
    riskPerTrade = portfolioValue * 0.0075  // 0.75% of portfolio
    stopLossDistance = R  // R% of entry price (stop-loss distance)
    entryPrice := close
    positionSize = riskPerTrade / stopLossDistance / entryPrice  // Position size in units (contracts/shares)
    
    // Ensure positionSize is rounded to a practical number (e.g., whole shares)
    positionSize := math.round(positionSize)
    
    // Enter long position with calculated size
    strategy.entry("Long", strategy.long, limit = entryPrice, qty=positionSize)
    inPosition := true
    entryBar := bar_index

// Exit logic: Stop-loss or Take-profit
if (inPosition)
    // Stop-loss: Exit if price drops below entryPrice - R%
    stopLossLevel = entryPrice * (1 - R)
    if (low <= stopLossLevel)
        strategy.close("Long")
        inPosition := false
        exitBar := bar_index
        exitPrice := close
    
    // Take-profit: Exit if price rises above entryPrice + 4R%
    takeProfitLevel = entryPrice * (1 + 4 * R)
    if (high >= takeProfitLevel)
        strategy.close("Long")
        inPosition := false
        exitBar := bar_index
        exitPrice := close

// Optional: Plot signals and R for visualization
if (bullishEngulfing)
    label.new(bar_index, high, "Bullish Engulfing", yloc=yloc.abovebar, color=color.green, style=label.style_label_down, textcolor=color.white)

plot(R, title="R (BB Spread %)", color=color.blue, style=plot.style_histogram)