Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan kaedah statistik Z-Score, Indeks Kekuatan Relatif (RSI), dan penunjuk Supertrend. Strategi ini memantau penyimpangan harga statistik, menggabungkan penunjuk momentum dan pengesahan trend untuk mengenal pasti peluang perdagangan yang berkemungkinan tinggi di pasaran. Strategi ini bukan sahaja menangkap peluang overbought dan oversold pasaran tetapi juga menapis isyarat palsu melalui pengesahan trend, membolehkan perdagangan dua hala.
Logik teras strategi ini dibina berdasarkan sinergi tiga penunjuk teknikal utama: Pertama, ia mengira Z-scor harga untuk mengukur penyimpangan harga semasa dari purata sejarahnya, menggunakan purata bergerak 75-periode dan penyimpangan standard. Apabila Z-scor melebihi 1.1 atau jatuh di bawah -1.1, ia menunjukkan penyimpangan statistik yang signifikan. Kedua, penunjuk RSI diperkenalkan sebagai pengesahan momentum, yang memerlukan RSI sejajar dengan arah (RSI>60 untuk kedudukan panjang, RSI<40 untuk kedudukan pendek). Akhirnya, penunjuk Supertrend berfungsi sebagai penapis trend, yang dikira berdasarkan ATR 11 tempoh dan faktor pengganda 2.0. Isyarat perdagangan hanya dihasilkan apabila ketiga-tiga syarat dipenuhi secara serentak.
Ini adalah strategi perdagangan kuantitatif yang menggabungkan kaedah statistik dan analisis teknikal, menggunakan banyak pengesahan isyarat untuk meningkatkan kebolehpercayaan perdagangan. Kelebihan utama strategi ini terletak pada model matematik objektif dan mekanisme kawalan risiko yang komprehensif, sementara perhatian harus diberikan kepada pengoptimuman parameter dan kesesuaian pasaran. Melalui arah pengoptimuman yang dicadangkan, terdapat ruang untuk penambahbaikan lanjut, terutama dalam menyesuaikan diri secara dinamik dengan persekitaran pasaran dan kawalan risiko. Strategi ini sesuai untuk pasaran dengan turun naik yang tinggi dan trend yang jelas, menjadikannya pertimbangan yang layak bagi peniaga kuantitatif yang mengejar pulangan yang mantap.
/*backtest start: 2024-01-01 00:00:00 end: 2024-11-26 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Z-Score Long and Short Strategy with Supertrend", overlay=true) // Inputs for Z-Score len = input.int(75, "Z-Score Lookback Length") z_long_threshold = 1.1 // Threshold for Z-Score to open long z_short_threshold = -1.1 // Threshold for Z-Score to open short // Z-Score Calculation z = (close - ta.sma(close, len)) / ta.stdev(close, len) // Calculate Driver RSI driver_rsi_length = input.int(14, "Driver RSI Length") // Input for RSI Length driver_rsi = ta.rsi(close, driver_rsi_length) // Calculate the RSI // Supertrend Parameters atrPeriod = input.int(11, "ATR Length", minval=1) factor = input.float(2.0, "Factor", minval=0.01, step=0.01) // Supertrend Calculation [supertrend, direction] = ta.supertrend(factor, atrPeriod) // Conditions for Long and Short based on Z-Score z_exceeds_long = z >= z_long_threshold and driver_rsi > 60 z_exceeds_short = z <= z_short_threshold and driver_rsi < 40 // Entry Conditions if (z_exceeds_long and direction < 0) // Enter Long if Z-Score exceeds threshold and Supertrend is down strategy.entry("Long", strategy.long) label.new(bar_index, low, text="Open Long", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small) alert("Open Long", alert.freq_once_per_bar) // Alert for Long entry if (z_exceeds_short and direction > 0) // Enter Short if Z-Score exceeds threshold and Supertrend is up strategy.entry("Short", strategy.short) label.new(bar_index, high, text="Open Short", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small) alert("Open Short", alert.freq_once_per_bar) // Alert for Short entry // Plot Supertrend upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color=color.green, style=plot.style_linebr) downTrend = plot(direction > 0 ? supertrend : na, "Down Trend", color=color.red, style=plot.style_linebr) fill(upTrend, downTrend, color=color.new(color.green, 90), fillgaps=false) // Alert conditions for Supertrend changes (optional) alertcondition(direction[1] > direction, title='Downtrend to Uptrend', message='The Supertrend value switched from Downtrend to Uptrend') alertcondition(direction[1] < direction, title='Uptrend to Downtrend', message='The Supertrend value switched from Uptrend to Downtrend')