В процессе загрузки ресурсов... загрузка...

Утренняя свеча Взрыв и стратегия обратного движения

Автор:Чао Чжан, Дата: 2024-07-31 14:16:42
Тэги:OHLCМ.А.ATRРСИ

img

Обзор

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

Принципы стратегии

Принципы работы стратегии следующие:

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

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

    • Длинный сигнал: запускается, когда цена закрытия превышает утренний максимум в течение двух последовательных свечей.
    • Короткий сигнал: запускается, когда цена закрытия превышает утренний минимум в течение двух подряд свечей.
  3. Настройки стоп-лосса:

    • Длинная стоп-лосс: установлена на нижнем уровне утренней свечи.
    • Короткий стоп-лосс: установлен на пике утренней свечи.
  4. Механизм выхода:

    • Stop-Loss Hit: автоматически закрывает позицию, когда цена достигает соответствующего уровня стоп-лосса.
    • Временный выход: все позиции автоматически закрываются в 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. Обратное тестирование и оптимизация параметров: проведение обратных тестов на различных комбинациях параметров для поиска оптимальных настроек.

Заключение

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


/*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


Связанные

Больше