
Cette stratégie est un système de trading quantitatif basé sur des signaux linéaires et une normalisation du score Z. Il construit des signaux de trading standardisés en combinant des variables exogènes telles que le RSI avec des données de prix et utilise des seuils pour déclencher des transactions. Cette stratégie convient aux scénarios de trading intraday et à haute fréquence et présente une forte adaptabilité et configurabilité.
Les principes fondamentaux de la stratégie comprennent les étapes clés suivantes :
Il s’agit d’une stratégie de trading quantitative avec une structure claire et une logique rigoureuse. Un système de signaux de trading robuste est construit grâce à une combinaison linéaire et à un traitement de standardisation. La stratégie est hautement configurable et offre une gestion parfaite des risques, mais une attention particulière doit être accordée à l’optimisation des paramètres et à l’adaptabilité du marché. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées grâce aux orientations d’optimisation recommandées.
/*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)