Стратегия торговли на основе ценовой структуры с высокой пропорциональной доходностью

RR SL TP ATH ATL
Дата создания: 2025-02-18 15:42:01 Последнее изменение: 2025-02-18 15:42:01
Копировать: 1 Количество просмотров: 393
1
Подписаться
1617
Подписчики

Стратегия торговли на основе ценовой структуры с высокой пропорциональной доходностью

Обзор

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

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

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

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

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

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

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

  1. Частые ложные прорывы на рынке могут вызвать колебания
  2. Высокий риск-возвращение может привести к относительно низким шансам на победу
  3. Отзыв после прорыва может вызвать остановку
  4. Изменения в волатильности рынка могут повлиять на эффективность стратегии
  5. Для достижения целей прибыли требуется значительное изменение цен.

Меры по смягчению последствий:

  • Использование этой стратегии на трендовых рынках
  • Избегайте транзакций во время важных новостных выпусков
  • Разумный размер позиции
  • Регулярная проверка и оптимизация параметров

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-19 00:00:00
end: 2024-11-14 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Filtered Price Action Breakout", overlay=true)

// === INPUTS ===
lookback = input.int(20, title="Breakout Lookback Period", minval=5)
stopLookback = input.int(10, title="Stop Loss Lookback Period", minval=3)
rrMultiplier = input.float(5.0, title="Risk-to-Reward Multiplier", step=0.1)
maxTradesPerDay = input.int(5, title="Max Trades Per Day", minval=1)

// Ensure there are enough bars for calculations
inRange = bar_index >= lookback

// === CALCULATIONS ===
// Highest high and lowest low over the 'lookback' period
highestHigh = ta.highest(high, lookback)
lowestLow = ta.lowest(low, lookback)

// Define breakout conditions (using previous bar's level)
bullBreakout = ta.crossover(close, highestHigh[1])
bearBreakout = ta.crossunder(close, lowestLow[1])

// Store breakout signals in variables to prevent inconsistencies
bullBreakoutSignal = bullBreakout
bearBreakoutSignal = bearBreakout

// Determine stop levels based on recent swing lows/highs
longStop = ta.lowest(low, stopLookback)
shortStop = ta.highest(high, stopLookback)

// Track number of trades per day (fixing boolean condition issue)
newDay = ta.change(time("D")) != 0
todayTrades = ta.barssince(newDay)
tradeCount = 0
if newDay
    tradeCount := 0
else
    tradeCount := tradeCount + 1

// === STRATEGY LOGIC: ENTRY & EXIT ===
if bullBreakoutSignal and tradeCount < maxTradesPerDay
    entryPrice = close
    stopLevel = longStop
    risk = entryPrice - stopLevel
    if risk > 0
        target = entryPrice + rrMultiplier * risk
        strategy.entry("Long", strategy.long)
        strategy.exit("Long Exit", from_entry="Long", stop=stopLevel, limit=target)
        tradeCount := tradeCount + 1
        
        // // Draw Markups
        // label.new(bar_index, entryPrice, text="Long Entry", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)
        // line.new(x1=bar_index, y1=entryPrice, x2=bar_index + 5, y2=entryPrice, color=color.green, width=2)
        // line.new(x1=bar_index, y1=stopLevel, x2=bar_index + 5, y2=stopLevel, color=color.red, width=2, style=line.style_dotted)
        // line.new(x1=bar_index, y1=target, x2=bar_index + 5, y2=target, color=color.blue, width=2, style=line.style_dashed)
        // label.new(bar_index, stopLevel, text="Stop Loss", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down)
        // label.new(bar_index, target, text="Target", color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up)

if bearBreakoutSignal and tradeCount < maxTradesPerDay
    entryPrice = close
    stopLevel = shortStop
    risk = stopLevel - entryPrice
    if risk > 0
        target = entryPrice - rrMultiplier * risk
        strategy.entry("Short", strategy.short)
        strategy.exit("Short Exit", from_entry="Short", stop=stopLevel, limit=target)
        tradeCount := tradeCount + 1
        
        // // Draw Markups
        // label.new(bar_index, entryPrice, text="Short Entry", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)
        // line.new(x1=bar_index, y1=entryPrice, x2=bar_index + 5, y2=entryPrice, color=color.red, width=2)
        // line.new(x1=bar_index, y1=stopLevel, x2=bar_index + 5, y2=stopLevel, color=color.green, width=2, style=line.style_dotted)
        // line.new(x1=bar_index, y1=target, x2=bar_index + 5, y2=target, color=color.blue, width=2, style=line.style_dashed)
        // label.new(bar_index, stopLevel, text="Stop Loss", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_up)
        // label.new(bar_index, target, text="Target", color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_down)

// === PLOTTING ===
plot(highestHigh, color=color.green, title="Highest High (Breakout Level)")
plot(lowestLow, color=color.red, title="Lowest Low (Breakout Level)")