Стратегия торговли с односторонним прорывом дневного диапазона

OHLC ADX ATR MA RSI BB
Дата создания: 2024-12-11 15:23:37 Последнее изменение: 2024-12-11 15:23:37
Копировать: 1 Количество просмотров: 382
1
Подписаться
1617
Подписчики

Стратегия торговли с односторонним прорывом дневного диапазона

Обзор

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

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

Основная логика стратегии включает в себя следующие аспекты:

  1. Генерирование торговых сигналов: система определяет направление торговли, оценивая, превзошла ли текущая цена закрытия высокие или низкие значения предыдущего торгового дня. Когда цена закрытия превзошла высокие значения предыдущего дня, система посылает многосигналы; когда цена закрытия превзошла низкие значения предыдущего дня, система посылает пустые сигналы.
  2. Контроль частоты торгов: Стратегия использует знаки (флаги) для обеспечения того, чтобы в каждом направлении выполнялась только одна сделка в день. Такая конструкция позволяет избежать повторных сделок в одном ценовом диапазоне и снизить стоимость сделки.
  3. Управление рисками: на каждую сделку устанавливается фиксированный 50-пунктный стоп-стоп, такой симметричный метод управления рисками позволяет эффективно контролировать риск отдельных сделок.
  4. Механизм перезагрузки в течение дня: в начале каждого торгового дня система перезагружает торговые знаки, чтобы подготовиться к новому торговому дню. Этот механизм гарантирует, что стратегия может захватить новые торговые возможности.

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

  1. Ясная логика торговли: стратегия основана на простой теории ценовых прорывов, правила торговли ясны, легко понятны и выполняются.
  2. Строгое управление рисками: эффективное управление рисками для каждой сделки с помощью фиксированного количества точек стоп-стоп и ограничений на односторонние сделки.
  3. Избегайте чрезмерной торговли: в каждом направлении разрешается только одна сделка в день, чтобы избежать потерь, связанных с частыми сделками на нестабильных рынках.
  4. Высокий уровень автоматизации: Стратегия может быть полностью автоматизирована, без какого-либо вмешательства человека.
  5. Умение адаптироваться: Стратегия может быть применена в различных рыночных условиях, особенно в рынках с заметной тенденцией.

Анализ рисков

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

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

  1. Динамическая установка стоп-лора: количество стоп-лоров может быть динамически скорректировано в зависимости от рыночных колебаний (например, показатель ATR).
  2. Добавление фильтрации тренда: фильтрация торговых сигналов в сочетании с индикатором тренда (например, движущейся средней или ADX).
  3. Оптимизация подтверждения прорыва: можно увеличить количество подтверждений или другие технические показатели для повышения надежности прорыва.
  4. Временная фильтрация: можно добавить условия временной фильтрации, чтобы избежать торговли в периоды больших колебаний.
  5. Оптимизация управления позициями: размер позиции может быть динамически скорректирован в зависимости от волатильности рынка и рисковой устойчивости счета.

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

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("US 30 Daily Breakout Strategy (Single Trade Per Breakout/Breakdown, New York Time)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, trim_orders = true)

// Set pip size for US 30 (1 pip = 1 point)
var float pip = 1.0

// Set take profit and stop loss in points (1 pip = 1 point)
take_profit_pips = 50
stop_loss_pips = 50

// Calculate the previous day's high and low (assumes chart timezone is set to New York)
prevDayHigh = request.security(syminfo.tickerid, "D", high[1])
prevDayLow = request.security(syminfo.tickerid, "D", low[1])

// Initialize flags to track if a breakout/breakdown trade has been taken
var bool breakout_traded = false
var bool breakdown_traded = false

// Reset flags at the start of a new day in New York timezone (as per chart setting)
if (ta.change(time("D")))
    breakout_traded := false
    breakdown_traded := false

// Condition for a long entry: candle closes above the previous day's high and no breakout trade has been taken
longCondition = close > prevDayHigh and strategy.opentrades == 0 and not breakout_traded

// Condition for a short entry: candle closes below the previous day's low and no breakdown trade has been taken
shortCondition = close < prevDayLow and strategy.opentrades == 0 and not breakdown_traded

// Execute long trade if the condition is met, and set the breakout flag
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close + take_profit_pips * pip, stop=close - stop_loss_pips * pip)
    breakout_traded := true  // Set breakout flag

// Execute short trade if the condition is met, and set the breakdown flag
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close - take_profit_pips * pip, stop=close + stop_loss_pips * pip)
    breakdown_traded := true  // Set breakdown flag

// Plotting the previous day's high and low for visualization
plot(prevDayHigh, color=color.green, linewidth=1, title="Previous Day High")
plot(prevDayLow, color=color.red, linewidth=1, title="Previous Day Low")