Интеллектуальная прогрессивная ценовая конвертная динамическая стратегия добавления позиции

DCA MA SMA EMA Envelope TAKE PROFIT STOP LOSS risk management Moving Average Envelope
Дата создания: 2025-05-14 15:14:54 Последнее изменение: 2025-05-14 15:14:54
Копировать: 0 Количество просмотров: 330
2
Подписаться
319
Подписчики

Интеллектуальная прогрессивная ценовая конвертная динамическая стратегия добавления позиции Интеллектуальная прогрессивная ценовая конвертная динамическая стратегия добавления позиции

Обзор

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

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

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

Основные принципы этой стратегии основаны на следующих ключевых компонентах:

  1. Вычисление сетевого пояса подвижной средней:

    • Сначала вычислите базовую линию (SMA или EMA по вашему выбору)
    • Верхняя повязка = эталонная линия * (1 + процентная смена)
    • Подключенная сеть = Базовая линия * (1 - процентное смещение)
  2. Условия приема:

    • Цены ниже, чем на нижнюю повязку
    • Прошло определенное время, с момента покупки.
    • Не превышает максимального количества покупок (8 покупок)
    • Цены ниже средней цены входа (или в восходящем тренде)
    • Цены ниже, чем в прошлый раз
  3. Условия игры:

    • Увеличение цены до установленного предела в процентах от средней цены за вход
    • Или цена упала ниже установленного стоп-лосса от средней цены входа
  4. Управление позицией:

    • Каждая покупка записывается и обновляется в среднем по цене входа.
    • Максимально разрешено 8 покупок, формирующих ступенчатое пополнение
    • Одноразовая ликвидация всех позиций после снятия или снятия убытков
  5. Оценка тенденций:

    • Большая тенденция, определяемая направлением базовой линии ((поднимающаяся базовая линия является восходящей тенденцией)
    • В ходе восходящей тенденции, стратегия ослабила некоторые условия покупки

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

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

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

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

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

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

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

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

  2. Параметр Чувствительность: Стратегическая эффективность сильно зависит от параметров, и в разных рыночных условиях может потребоваться различная комбинация параметров. Неправильная параметровая настройка может привести к чрезмерной торговле или пропущенным торговым возможностям.

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

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

  5. Остановка риска: Если стоп-процент устанавливается слишком высоко, возможно, вы упустите возможность получить прибыль; если он установлен слишком низко, возможно, будет ограничено потенциальное пространство для получения прибыли.

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

  1. Настройка параметров динамической пакетной сети: Можно рассмотреть возможность автоматической корректировки пакетной полосы в зависимости от рыночной волатильности, используя меньшее смещение в низко-волатильных рынках и большое смещение в высоко-волатильных рынках. Таким образом, можно лучше адаптироваться к различным рыночным условиям.

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

  3. Движущийся механизм остановки: Можно изменить фиксированный процентный стоп-лост на динамический механизм корректировки, основанный на волатильности рынка, например, на установку уровня стоп-лоста на основе ATR (средняя реальная волнота).

  4. Оптимизация управления капиталом: Можно реализовать динамическое распределение позиций, а не фиксированную сумму за каждую покупку. Например, можно использовать меньшую долю средств при первой покупке и постепенно увеличивать сумму покупки по мере того, как цена продолжает падать.

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-05-14 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("SmartScale Envelope DCA", 
     overlay=true, 
     pyramiding=8, 
     default_qty_type=strategy.cash, 
     default_qty_value=25,         // Order size = $25 CAD
     initial_capital=200,          // Initial capital = $200 CAD
     currency=currency.CAD)        // Base currency = CAD

// === Inputs
len                = input.int(13, title="Envelope Length", minval=1)
percent            = input.float(6.6, title="Envelope % Offset", step=0.1) / 100
src                = input(close, title="Source")
exponential        = input(false)
stopLossPctInput   = input.float(15.0, title="Stop Loss %", minval=0.1, step=0.1)
takeProfitPctInput = input.float(5.0, title="Take Profit % from Avg Entry", minval=0.1, step=0.1)
cooldown           = input.int(7, title="Candles Between Buys")  // moved to bottom

stopLossPct    = stopLossPctInput / 100
takeProfitPct  = takeProfitPctInput / 100
maxBuys        = 8  // Hardcoded max buy-ins

// === Envelope Calculation
basis = exponential ? ta.ema(src, len) : ta.sma(src, len)
upper = basis * (1 + percent)
lower = basis * (1 - percent)

// === Limit Backtest to Last 365 Days
startDate   = timestamp("GMT-5", year(timenow), month(timenow), dayofmonth(timenow)) - 365 * 24 * 60 * 60 * 1000
inDateRange = time >= startDate

// === State Tracking
var float avgEntryPrice = na
var float lastBuyPrice  = na
var int buyCount        = 0
var int lastBuyBar      = na

// === Trend Detection
isUptrend = basis > basis[1]

// === Entry Conditions
lowBelowLower     = low < lower
cooldownPassed    = na(lastBuyBar) or (bar_index - lastBuyBar >= cooldown)
belowAvgEntry     = na(avgEntryPrice) or close < avgEntryPrice
lowerThanLastBuy  = na(lastBuyPrice) or close < lastBuyPrice
allowBuyIn        = (belowAvgEntry and lowerThanLastBuy) or isUptrend
highAboveUpper    = high > upper

// === Exit Conditions
sellCondition     = not na(avgEntryPrice) and close >= avgEntryPrice * (1 + takeProfitPct)
stopLossTriggered = not na(avgEntryPrice) and close <= avgEntryPrice * (1 - stopLossPct)

// === Buy Logic
if inDateRange and lowBelowLower and cooldownPassed and buyCount < maxBuys and allowBuyIn and (na(lastBuyPrice) or close <= lastBuyPrice)
    buyCount += 1
    strategy.entry("Buy in " + str.tostring(buyCount), strategy.long)
    lastBuyBar := bar_index
    lastBuyPrice := close
    avgEntryPrice := na(avgEntryPrice) ? close : (avgEntryPrice * (buyCount - 1) + close) / buyCount

// === Sell Logic
if strategy.position_size > 0 and highAboveUpper and sellCondition
    strategy.close_all(comment="Take Profit")
    avgEntryPrice := na
    buyCount := 0
    lastBuyBar := na
    lastBuyPrice := na

// === Stop Loss Logic
if strategy.position_size > 0 and stopLossTriggered
    strategy.close_all(comment="Stop Loss Hit")
    avgEntryPrice := na
    buyCount := 0
    lastBuyBar := na
    lastBuyPrice := na

// === Plot Envelope
plot(basis, "Basis", color=color.orange)
u = plot(upper, "Upper", color=color.blue)
l = plot(lower, "Lower", color=color.blue)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Envelope Background")

// === Plot Avg Entry Price
plot(strategy.position_size > 0 and not na(avgEntryPrice) ? avgEntryPrice : na, 
     title="Avg Entry Price", 
     color=color.rgb(173, 195, 226), 
     linewidth=2, 
     style=plot.style_line)