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

MFI RSI SL TP MA
Дата создания: 2024-12-05 16:40:47 Последнее изменение: 2024-12-05 16:40:47
Копировать: 2 Количество просмотров: 440
1
Подписаться
1617
Подписчики

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

Обзор

Стратегия представляет собой автоматизированную торговую систему, основанную на показателях денежных потоков (МФИ), которая в основном используется для захвата потенциальных возможностей для реверса, идентифицируя поведение активов в зонах перепродажи. В основе стратегии лежит создание сигнала покупки, когда показатель МФИ восстанавливается из зоны перепродажи (ниже 20 по умолчанию), а также управление рисками и доходами торговли с помощью множества механизмов, таких как ограничительные цены, остановки убытков и закрытие прибыли.

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

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

  1. Постоянно отслеживать изменения в показателях денежных потоков (МФИ), когда МФИ опускаются ниже заданного перепродажи порога (по умолчанию 20), система помечает перепродажу.
  2. Когда МФИ поднимаются из зоны перепродажи и преодолевают порог, система устанавливает лимит покупки ниже текущей цены, а конкретная цена определяется процентом, определенным пользователем.
  3. Система будет следить за сроком действия лимитного листа, и если он не будет реализован в течение заданного периода наблюдения (по умолчанию 5 K-линий), то заказ будет автоматически отменен.
  4. После того, как покупка была совершена, система сразу же устанавливает целевые цены для остановки и получения прибыли, которые рассчитываются на основе процентов от цены входа.
  5. Торговля автоматически прекращается, когда достигается цель по остановке или повышению прибыли.

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

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

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

  1. Риск ложного сигнала: в условиях резкого колебания рынка МФИ могут создавать ложные сигналы о перепродаже. Рекомендуется проводить перекрестную проверку в сочетании с другими техническими показателями.
  2. Риск скольжения: ограничительные цены могут быть недоступны по ожидаемым ценам из-за быстрых колебаний рынка. Цена ограничительных цен может быть соответствующим образом смягчена или продлена.
  3. Риск тренда: при сильной нисходящей тенденции, преждевременное вхождение в рынок может привести к значительным потерям. Рекомендуется добавление фильтра тренда.
  4. Чувствительность к параметрам: эффективность стратегии чувствительна к параметрам, которые необходимо оптимизировать для различных рыночных условий.

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

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

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

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © traderhub

//@version=5
strategy("MFI Strategy with Oversold Zone Exit and Averaging", overlay=true)

// Strategy parameters
mfiPeriod = input.int(title="MFI Period", defval=14) // Period for calculating MFI
mfiOS = input.float(title="MFI Oversold Level", defval=20.0) // Oversold level for MFI
longEntryPercentage = input.float(title="Long Entry Percentage (%)", minval=0.0, step=0.1, defval=0.1) // Percentage for the buy limit order
stopLossPercentage = input.float(title="Stop Loss Percentage (%)", minval=0.0, step=0.1, defval=1.0) // Percentage for the stop-loss
exitGainPercentage = input.float(title="Exit Gain Percentage (%)", minval=0.0, step=0.1, defval=1.0) // Percentage gain for the take-profit
cancelAfterBars = input.int(title="Cancel Order After # Bars", minval=1, defval=5) // Cancel order after a certain number of bars

// Calculate MFI
mfi = ta.mfi(close, mfiPeriod)  // MFI with specified period

// Variables for tracking state
var bool inOversoldZone = false  // Flag for being in the oversold zone
var float longEntryPrice = na  // Price for long entry
var int barsSinceEntryOrder = na  // Counter for bars after placing an order

// Define being in the oversold zone
if (mfi < mfiOS)
    inOversoldZone := true  // Entered oversold zone

// Condition for exiting the oversold zone and placing a limit order
if (inOversoldZone and mfi > mfiOS)
    inOversoldZone := false  // Leaving the oversold zone
    longEntryPrice := close * (1 - longEntryPercentage / 100)  // Calculate limit price for entry
    strategy.entry("Long Entry", strategy.long, limit=longEntryPrice)  // Place a limit order
    barsSinceEntryOrder := 0  // Reset counter for bars after placing the order

// Increase the bar counter if the order has not yet been filled
if (not na(barsSinceEntryOrder))
    barsSinceEntryOrder += 1

// Cancel order if it hasn’t been filled within the specified number of bars
if (not na(barsSinceEntryOrder) and barsSinceEntryOrder >= cancelAfterBars and strategy.position_size == 0)
    strategy.cancel("Long Entry")
    barsSinceEntryOrder := na  // Reset bar counter

// Set stop-loss and take-profit for filled positions
if (strategy.position_size > 0)
    stopLossPrice = longEntryPrice * (1 - stopLossPercentage / 100)  // Calculate stop-loss level
    takeProfitPrice = longEntryPrice * (1 + exitGainPercentage / 100)  // Calculate take-profit level
    strategy.exit("Exit Long", from_entry="Long Entry", limit=takeProfitPrice, stop=stopLossPrice)

// Visualize oversold and overbought zones
bgcolor(mfi < mfiOS ? color.new(color.green, 90) : na)  // Background in oversold zone
plot(mfi, title="MFI", color=color.blue)  // MFI plot
hline(mfiOS, "Oversold Level", color=color.red)  // Oversold level line