В процессе загрузки ресурсов... загрузка...

Система выхода из зоны перепродажи финансовых активов на основе МФИ и сигнальной средней

Автор:Чао Чжан, Дата: 2024-12-05 16:40:47
Тэги:МФИРСИSLТПМ.А.

img

Обзор

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

Принципы стратегии

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

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













Связанные

Больше