Динамическая стратегия контроля риска Supertrend Enhanced Engulfing Pattern

ATR SL TP CANDLE supertrend ENGULFING
Дата создания: 2025-02-20 15:32:32 Последнее изменение: 2025-02-20 15:32:32
Копировать: 6 Количество просмотров: 319
2
Подписаться
319
Подписчики

Динамическая стратегия контроля риска Supertrend Enhanced Engulfing Pattern Динамическая стратегия контроля риска Supertrend Enhanced Engulfing Pattern

Обзор

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

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

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

  1. Супертенденциальный индикатор используется для определения общей тенденции рынка.
  2. Эффективные формы поглощения отфильтровываются путем установки Boring Candle Threshold и Engulfing Candle Threshold.
  3. Позиции открываются, когда направление тренда Supertrend совпадает с направлением поглощающей формы.
  4. Применяется динамическая установка стоп-стоп и выигрышных позиций, пропорционально рассчитанная на основе цены открытия позиции.
  5. Используйте стратегическое управление позициями, чтобы гарантировать, что вы будете торговать только в одном направлении.

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

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

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

  1. Некоторые эксперты считают, что в этом случае можно избежать риска, поскольку рынок может быть подвергнут риску.
  2. Фиксированные параметры стоп-лосса и прибыли могут не подходить для всех рыночных условий.
  3. В случае реверса, возможно, произойдет более значительное отступление.
  4. Неправильные параметры могут привести к плохой работе стратегии.
  5. На рынках с низкой ликвидностью возможен риск проскальзывания.

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

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

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

Это строго разработанная, логически ясная стратегия, которая обеспечивает лучшее управление качеством сигнала путем сочетания технических показателей и формового анализа. Механизм управления рисками стратегии усовершенствован, визуализация эффекта отлична, подходит для тестирования и оптимизации на практике.

Исходный код стратегии
/*backtest
start: 2024-02-21 00:00:00
end: 2024-06-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy('Strategy Engulfing', overlay=true)

// Inputs
Periods = input(title='ATR Period', defval=5)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=1.0)
highlighting = input(title='Highlighter On/Off?', defval=true)
boringThreshold = input.int(5, title='Boring Candle Threshold (%)', minval=1, maxval=100, step=1)
engulfingThreshold = input.int(50, title='Engulfing Candle Threshold (%)', minval=1, maxval=100, step=1)
OpenPosisi = input.int(2000, title='OpenPosisi (Pips)', minval=-25000)
stoploss = input.int(10000, title='Stop Loss (Pips)', minval=-25000)
takeprofit = input.int(20000, title='Take Profit (Pips)', minval=-25000)

// ATR Calculation
atr = ta.atr(Periods)

// Supertrend Calculation
up = src - Multiplier * atr
up := close[1] > nz(up[1]) ? math.max(up, nz(up[1])) : up
dn = src + Multiplier * atr
dn := close[1] < nz(dn[1]) ? math.min(dn, nz(dn[1])) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn[1] ? 1 : trend == 1 and close < up[1] ? -1 : trend

// Plotting Supertrend
plot(trend == 1 ? up : na, color=color.new(color.green, 0), linewidth=1, style=plot.style_linebr, title='Supertrend Up')
plot(trend == -1 ? dn : na, color=color.new(color.red, 0), linewidth=1, style=plot.style_linebr, title='Supertrend Down')

// Engulfing Candlestick
isBoringCandle = math.abs(open[1] - close[1]) <= (high[1] - low[1]) * boringThreshold / 100
isEngulfingCandle = math.abs(open - close) * 100 / math.abs(high - low) <= engulfingThreshold

bullEngulfing = strategy.opentrades == 0 and trend == 1 and close[1] < open[1] and close > open[1] and not isBoringCandle and not isEngulfingCandle
bearEngulfing = strategy.opentrades == 0 and trend == -1 and close[1] > open[1] and close < open[1] and not isBoringCandle and not isEngulfingCandle

// Calculate Limit Price
limitbull = bullEngulfing ? close + OpenPosisi * syminfo.mintick : na
limitbear = bearEngulfing ? close - OpenPosisi * syminfo.mintick : na

// Calculate Stop Loss
bullishStopLoss = bullEngulfing ? limitbull - stoploss * syminfo.mintick : na
bearishStopLoss = bearEngulfing ? limitbear + stoploss * syminfo.mintick : na

// Calculate Take Profit
bullishTakeProfit = bullEngulfing ? limitbull + takeprofit * syminfo.mintick : na
bearishTakeProfit = bearEngulfing ? limitbear - takeprofit * syminfo.mintick : na


// Alerts for Engulfing Candles (Trigger Immediately)
if bullEngulfing
    alert('Bullish Engulfing Candle Formed!')

if bearEngulfing
    alert('Bearish Engulfing Candle Formed!')

// Plot shapes
plotshape(bullEngulfing, style=shape.triangleup, location=location.abovebar, color=color.new(color.green, 0))
plotshape(bearEngulfing, style=shape.triangledown, location=location.belowbar, color=color.new(color.red, 0))


plot(limitbull, title='Bullish Limit Price', color=color.new(color.purple, 0), style=plot.style_linebr, linewidth=1)
plot(limitbear, title='Bearish Limit Price', color=color.new(color.purple, 0), style=plot.style_linebr, linewidth=1)
plot(bullishStopLoss, title='Bullish Stop Loss', color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1)
plot(bearishStopLoss, title='Bearish Stop Loss', color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1)
plot(bullishTakeProfit, title='Bullish Take Profit', color=color.new(color.blue, 0), style=plot.style_linebr, linewidth=1)
plot(bearishTakeProfit, title='Bearish Take Profit', color=color.new(color.blue, 0), style=plot.style_linebr, linewidth=1)

// Label Stop Loss and Take Profit
label.new(bullEngulfing ? bar_index : na, bullishStopLoss, text='SL: ' + str.tostring(bullishStopLoss), color=color.red, textcolor=color.white, style=label.style_label_up, size=size.tiny)
label.new(bearEngulfing ? bar_index : na, bearishStopLoss, text='SL: ' + str.tostring(bearishStopLoss), color=color.red, textcolor=color.white, style=label.style_label_down, size=size.tiny)
label.new(bullEngulfing ? bar_index : na, bullishTakeProfit, text='TP: ' + str.tostring(bullishTakeProfit), color=color.green, textcolor=color.white, style=label.style_label_down, size=size.tiny)
label.new(bearEngulfing ? bar_index : na, bearishTakeProfit, text='TP: ' + str.tostring(bearishTakeProfit), color=color.green, textcolor=color.white, style=label.style_label_up, size=size.tiny)


// Strategy execution
if bullEngulfing
    strategy.entry('BUY', strategy.long, stop=limitbull)
    strategy.exit('TP/SL', from_entry='BUY', limit=bullishTakeProfit, stop=bullishStopLoss)

if bearEngulfing
    strategy.entry('SELL', strategy.short, stop=limitbear)
    strategy.exit('TP/SL', from_entry='SELL', limit=bearishTakeProfit, stop=bearishStopLoss)