Линейная сигнальная количественная торговая стратегия на основе нормализации Z-оценки

RSI SMA Z-SCORE LSB TP SL
Дата создания: 2025-01-06 16:14:07 Последнее изменение: 2025-01-06 16:14:07
Копировать: 6 Количество просмотров: 437
1
Подписаться
1617
Подписчики

Линейная сигнальная количественная торговая стратегия на основе нормализации Z-оценки

Обзор

Данная стратегия представляет собой количественную торговую систему, основанную на линейных сигналах и нормализации Z-оценки. Он создает стандартизированные торговые сигналы, объединяя экзогенные переменные, такие как RSI, с ценовыми данными и использует пороговые значения для запуска транзакций. Эта стратегия подходит для внутридневных и высокочастотных торговых сценариев и обладает высокой адаптивностью и настраиваемостью.

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

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

  1. Линейная конструкция сигнала: индикатор RSI линейно объединяется с ценовыми данными с использованием настраиваемого веса (signal_alpha) для формирования начального сигнала.
  2. Нормализация Z-оценки: на основе установленного периода обратного просмотра (lookback_period) вычисляются среднее значение и стандартное отклонение линейного сигнала, а сигнал нормализуется в форме Z-оценки.
  3. Механизм срабатывания порога: когда Z-счет ниже отрицательного порога, открывается длинная позиция; когда он выше положительного порога, открывается короткая позиция. Порог контролируется фактором корректировки риска (risk_adjustment_factor).
  4. Управление рисками: устанавливайте тейк-профит и стоп-лосс для каждой транзакции, а также гибко настраивайте соотношение риска и доходности с помощью процентных параметров.

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

  1. Нормализация сигнала: преобразование Z-оценки придает сигналу хорошие статистические свойства, что упрощает установку универсального порогового значения.
  2. Высокая гибкость: влияние экзогенных переменных и цен можно сбалансировать, настроив signal_alpha.
  3. Контролируемые риски: полноценный механизм стоп-профита и стоп-лосса, который можно гибко настраивать в соответствии с характеристиками рынка.
  4. Хорошая адаптивность: применим к нескольким периодам времени и может быть расширен на другие торговые продукты с высокой ликвидностью.

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

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

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

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

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

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

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

//@version=5
strategy("Linear Signal-Based Strategy", shorttitle = "LSB_V1", overlay=true)

// Inputs
lookback_period = input.int(14, title="Lookback Period for Moving Averages")
signal_alpha = input.float(0.5, title="Signal Weight Alpha (Exogenous Variable)")
take_profit_percent = input.float(0.02, title="Take Profit (%)")
stop_loss_percent = input.float(0.01, title="Stop Loss (%)")
risk_adjustment_factor = input.float(1.5, title="Risk Adjustment Factor")

// Fetch Exogenous Variable (Example: RSI as a Proxy)
rsi_value = ta.rsi(close, lookback_period)

// Linear Signal Calculation
linear_signal = signal_alpha * rsi_value + (1 - signal_alpha) * close

// Z-Score Normalization for Signal
mean_signal = ta.sma(linear_signal, lookback_period)
stddev_signal = ta.stdev(linear_signal, lookback_period)
z_score_signal = (linear_signal - mean_signal) / stddev_signal

// Entry Conditions
long_condition = z_score_signal < -risk_adjustment_factor
short_condition = z_score_signal > risk_adjustment_factor

// Risk Management
long_take_profit = close * (1 + take_profit_percent)
long_stop_loss = close * (1 - stop_loss_percent)
short_take_profit = close * (1 - take_profit_percent)
short_stop_loss = close * (1 + stop_loss_percent)

// Execute Trades
if (long_condition)
    strategy.entry("Long", strategy.long, qty=1)
    strategy.exit("Exit Long", "Long", stop=long_stop_loss, limit=long_take_profit)

if (short_condition)
    strategy.entry("Short", strategy.short, qty=1)
    strategy.exit("Exit Short", "Short", stop=short_stop_loss, limit=short_take_profit)