Strategi ini adalah sistem perdagangan kuantitatif berdasarkan sinyal linier dan normalisasi Z-score. Strategi ini membangun sinyal perdagangan standar dengan menggabungkan variabel eksogen seperti RSI dengan data harga dan memicu perdagangan menggunakan ambang batas. Strategi ini cocok untuk skenario perdagangan intraday dan frekuensi tinggi, menawarkan kemampuan beradaptasi dan konfigurasi yang kuat.
Prinsip-prinsip inti mencakup beberapa langkah utama:
Ini adalah strategi perdagangan kuantitatif yang terstruktur dengan baik dan secara logis ketat. Ini membangun sistem sinyal perdagangan yang kuat melalui kombinasi linier dan pemrosesan standardisasi. Strategi ini menawarkan konfigurasi yang kuat dan manajemen risiko yang komprehensif tetapi membutuhkan perhatian pada optimasi parameter dan kemampuan beradaptasi pasar. Melalui arah optimasi yang disarankan, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.
/*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)