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

Z-Score Нормированный линейный сигнал Количественная стратегия торговли

Автор:Чао Чжан, Дата: 2025-01-06 16:14:07
Тэги:РСИSMAZ-ScoreЛСБТПSL

img

Обзор

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

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

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

  1. Конструкция линейного сигнала: использует конфигурируемые веса (signal_alpha) для линейного объединения индикатора RSI с данными цены для формирования начальных сигналов.
  2. Нормализация Z-Score: рассчитывает среднее и стандартное отклонение линейных сигналов на основе периода обратного обзора, нормализуя сигналы в 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)




Связанные

Больше