Стратегия прорыва бычьего флага, основанная на соотношении риска и прибыли и техническом анализе


Дата создания: 2024-05-28 10:47:51 Последнее изменение: 2024-05-28 10:47:51
Копировать: 1 Количество просмотров: 462
1
Подписаться
1617
Подписчики

Стратегия прорыва бычьего флага, основанная на соотношении риска и прибыли и техническом анализе

Обзор

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

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

  1. Определение формы флага быка: вычислить высокие и низкие точки в диапазоне флага с помощью функций наивысшей и наименьшей цены и определить, пробилась ли текущая цена через высокие точки флага.
  2. Вход: Если текущая цена закрытия превышает максимальную цену предыдущей K-линии, а максимальная цена предыдущей K-линии ниже флагманской высоты, то покупается.
  3. Стоп-страх: Стоп-страх устанавливается как флагманская низкая точка за вычетом буферного значения.
  4. Стоп-стоп: целевая цена рассчитывается исходя из соотношения риска и прибыли. Целевая цена = цена входа + (цена входа - цена стоп-стопа) * соотношение риска и прибыли

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

  1. Основанный на классическом знаме быка, он позволяет уловить возможность отклонения от сильного тренда.
  2. Стоп-лошади находятся на низком уровне флага, риск контролируемый.
  3. При использовании рискованной прибыли вы получаете больше, чем при установлении целевой цены.
  4. Логика кода ясна, использует встроенные функции TradingView, легко понять и изменить.

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

  1. В случае колебаний рынка или неопределенности тренда, после флагманского прорыва цены могут быстро перевернуться, что приводит к более крупным отступлениям.
  2. Неправильная настройка буфера может привести к преждевременной остановке.
  3. Реальное соотношение риска и прибыли может не достигать установленного значения.
  4. Для некоторых деформированных флагообразных рисунков эта стратегия может не сработать.

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bull Flag Breakout", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Параметры стратегии
riskRewardRatio = 3.0
flagLength = input.int(5, title="Flag Length")
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer", step=0.001)

// Функция для вычисления стоп-лосса и тейк-профита
calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio) =>
    takeProfitPrice = entryPrice + (entryPrice - stopLossPrice) * riskRewardRatio
    [stopLossPrice, takeProfitPrice]

// Найти минимум и максимум флага
flagLow = ta.lowest(low, flagLength)
flagHigh = ta.highest(high, flagLength)

// Условия для формирования бычьего флага
isBullFlag = high[1] < flagHigh and close > high[1]

// Условия для входа в сделку
if (isBullFlag)
    entryPrice = close
    stopLossPrice = flagLow - stopLossBuffer
    [calculatedStopLoss, calculatedTakeProfit] = calcRiskRewardPrice(entryPrice, stopLossPrice, riskRewardRatio)
    
    // Открыть длинную позицию
    strategy.entry("Bull Flag Long", strategy.long)
    strategy.exit("Take Profit", "Bull Flag Long", limit=calculatedTakeProfit)
    strategy.exit("Stop Loss", "Bull Flag Long", stop=calculatedStopLoss)
    label.new(bar_index, high, "Buy", color=color.green, textcolor=color.white, style=label.style_label_down)