Стратегия прорыва и разворота утренней свечи

OHLC MA ATR RSI
Дата создания: 2024-07-31 14:16:42 Последнее изменение: 2024-07-31 14:16:42
Копировать: 5 Количество просмотров: 591
1
Подписаться
1617
Подписчики

Стратегия прорыва и разворота утренней свечи

Обзор

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

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

Как работает стратегия:

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

  2. Сигнал входа:

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

    • Многоголовая остановка: установка низких точек в утренние часы.
    • Потеря головы в воздухе: установка высоты в утренние часы.
  4. Механизм выхода:

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

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

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

  2. Контроль риска: эффективно контролировать риск каждой сделки, устанавливая фиксированные точки стоп-лосса.

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

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

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

  6. Гибкость: стратегия может быть оптимизирована в зависимости от параметров различных рынков и видов торгов.

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

  1. Риск ложного прорыва: рынок может иметь ложные прорывы, что приводит к частым остановкам.

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

  3. Единая временная рамка: зависимость только от линии 11:00 может игнорировать важную рыночную информацию в другие временные промежутки.

  4. Отсутствие отслеживания тенденций: стратегия не устанавливает условия для остановки и может быть не в состоянии полностью уловить тенденции.

  5. Фиксированный стоп: в условиях высокой волатильности рынка фиксированный стоп может быть слишком близко, что приводит к преждевременному выходу из выгодного положения.

  6. Торговые издержки: частое вхождение и выхождение может привести к более высоким торговым издержкам и повлиять на общую прибыль.

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

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

  2. Динамические остановки: используйте методы, такие как ATR, чтобы установить динамические остановки в зависимости от различных рыночных колебаний.

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

  4. Анализ объема: добавление анализа объема, повышение надежности прорывного сигнала.

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

  6. Оптимизируйте время входа: используйте RSI и другие индикаторы для обратной торговли в зонах сверхпокупок и сверхпродаж.

  7. Добавление элемента отслеживания тренда: в случае сильного прорыва, подумайте о том, чтобы использовать мобильные стопы для отслеживания тренда.

  8. Отзыв и оптимизация параметров: отзыв различных комбинаций параметров, чтобы найти оптимальную параметровую настройку.

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

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

Исходный код стратегии
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)

// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15

// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
    morningHigh := high
    morningLow := low
    morningCandleFound := true

// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)

// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false

if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
    // Check for Buy Call condition
    if (close[1] > morningHigh and close > morningHigh)
        if (not inTrade or tradeDirection != 1)
            strategy.entry("Buy Call", strategy.long, stop=morningLow)
            buyCallCondition := true
            inTrade := true
            tradeDirection := 1
            label.new(bar_index, high, "Buy Call", color=color.green)
            alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
    else if (close[1] <= morningHigh)
        buyCallCondition := false

    // Check for Buy Put condition
    if (close[1] < morningLow and close < morningLow)
        if (not inTrade or tradeDirection != -1)
            strategy.entry("Buy Put", strategy.short, stop=morningHigh)
            buyPutCondition := true
            inTrade := true
            tradeDirection := -1
            label.new(bar_index, low, "Buy Put", color=color.red)
            alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
    else if (close[1] >= morningLow)
        buyPutCondition := false

    // Exit conditions
    if (inTrade)
        if (tradeDirection == 1 and low <= morningLow)
            strategy.close("Buy Call")
            label.new(bar_index, low, "Exit Call", color=color.red)
            alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
            buyCallCondition := false
            inTrade := false
            tradeDirection := 0
        if (tradeDirection == -1 and high >= morningHigh)
            strategy.close("Buy Put")
            label.new(bar_index, high, "Exit Put", color=color.green)
            alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
            buyPutCondition := false
            inTrade := false
            tradeDirection := 0

// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
    strategy.close_all()
    inTrade := false
    tradeDirection := 0
    noNewTrades := true
    alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)

// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
    noNewTrades := false