Эта стратегия является количественной торговой системой, основанной на линейных сигналах и нормализации Z-баллов. Она конструирует стандартизированные торговые сигналы путем сочетания экзогенных переменных, таких как RSI, с данными о ценах и запускает сделки с использованием порогов. Стратегия подходит для внутридневных и высокочастотных торговых сценариев, предлагая сильную адаптируемость и конфигурацию.
Основные принципы включают несколько ключевых шагов:
Это хорошо структурированная и логически строгая количественная торговая стратегия. Она создает надежную торговую сигнальную систему с помощью линейной комбинации и обработки стандартизации. Стратегия предлагает сильную конфигурацию и комплексный менеджмент рисков, но требует внимания к оптимизации параметров и адаптивности рынка. Благодаря предложенным направлениям оптимизации стабильность и рентабельность стратегии могут быть еще более повышены.
/*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)