Chiến lược này là một hệ thống giao dịch định lượng dựa trên tín hiệu tuyến tính và bình thường hóa điểm số Z. Nó xây dựng các tín hiệu giao dịch tiêu chuẩn bằng cách kết hợp các biến ngoại sinh như RSI với dữ liệu giá và kích hoạt giao dịch bằng cách sử dụng ngưỡng. Chiến lược này phù hợp với các kịch bản giao dịch trong ngày và tần số cao, cung cấp khả năng thích nghi và cấu hình mạnh mẽ.
Các nguyên tắc cốt lõi bao gồm một số bước chính:
Đây là một chiến lược giao dịch định lượng có cấu trúc tốt và nghiêm ngặt theo logic. Nó xây dựng một hệ thống tín hiệu giao dịch mạnh mẽ thông qua sự kết hợp tuyến tính và xử lý tiêu chuẩn hóa. Chiến lược cung cấp khả năng cấu hình mạnh mẽ và quản lý rủi ro toàn diện nhưng đòi hỏi sự chú ý đến tối ưu hóa tham số và khả năng thích nghi thị trường. Thông qua các hướng tối ưu hóa được đề xuất, sự ổn định và lợi nhuận của chiến lược có thể được tăng thêm.
/*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)