Стратегия постепенного открытия возврата к среднему


Дата создания: 2024-01-29 15:47:24 Последнее изменение: 2024-01-29 15:47:24
Копировать: 0 Количество просмотров: 638
1
Подписаться
1617
Подписчики

Стратегия постепенного открытия возврата к среднему

Обзор

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

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

В основе этой стратегии лежит простая скользящая средняя (SMA). Все входящие и исходящие сделки совершаются вокруг скользящей средней.

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

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

Включениеcalc_on_every_tickЭта стратегия позволяет постоянно оценивать рыночные условия и своевременно реагировать.

Анализ преимуществ

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

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

Анализ рисков

Однако эта стратегия также несет в себе некоторые риски:

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

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

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

Эта стратегия может быть оптимизирована в следующих аспектах:

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

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

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

Исходный код стратегии
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true)

// Input for adjustable settings
maLength = input.int(30, title="MA Length", minval=1)
initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01)
percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01)

// Calculating Moving Average
ma = ta.sma(close, maLength)

// Plotting the Moving Average
plot(ma, "Moving Average", color=color.blue)

var float lastBuyPrice = na
var float lastSellPrice = na

// Function to calculate absolute price percentage difference
pricePercentDiff(price1, price2) =>
    diff = math.abs(price1 - price2) / price2 * 100
    diff

// Initial Entry Condition Check Function
initialEntryCondition(price, ma, initialPercent) =>
    pricePercentDiff(price, ma) >= initialPercent

// Enhanced Entry Logic for Buy and Sell
if (low < ma)
    if (na(lastBuyPrice))
        if (initialEntryCondition(low, ma, initialPercent))
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low
    else
        if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep)
            strategy.entry("Buy", strategy.long)
            lastBuyPrice := low

if (high > ma)
    if (na(lastSellPrice))
        if (initialEntryCondition(high, ma, initialPercent))
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high
    else
        if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep)
            strategy.entry("Sell", strategy.short)
            lastSellPrice := high

// Exit Conditions - Close position if price touches the MA
if (close >= ma and strategy.position_size > 0)
    strategy.close("Buy")
    lastBuyPrice := na

if (close <= ma and strategy.position_size < 0)
    strategy.close("Sell")
    lastSellPrice := na

// Reset last order price when position is closed
if (strategy.position_size == 0)
    lastBuyPrice := na
    lastSellPrice := na