Strategi ini adalah sistem dagangan adaptif berdasarkan Indeks Shiryaev-Zhou (SZI). Ia mengenal pasti keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual dengan mengira skor standard pulangan logaritma, bertujuan untuk menangkap peluang pembalikan purata. Strategi ini menggabungkan sasaran stop-loss dan mengambil keuntungan dinamik untuk kawalan risiko yang tepat.
Inti strategi ini terletak pada pembinaan penunjuk standard menggunakan sifat statistik bergolak pulangan logaritma.
Ini adalah strategi dagangan kuantitatif yang dibina di atas asas statistik yang kukuh, menangkap peluang turun naik harga melalui pulangan logaritma yang standard. kekuatan utama strategi terletak pada daya adaptasi dan kawalan risiko yang komprehensif, walaupun masih ada ruang untuk pengoptimuman dalam pemilihan parameter dan penyesuaian persekitaran pasaran. Melalui pengenalan ambang dinamik dan mekanisme pengesahan isyarat pelbagai dimensi, kestabilan dan kebolehpercayaan strategi dapat ditingkatkan lagi.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Jalambi Paul model", overlay=true) // Define the length for the rolling window window = input.int(50, title="Window Length", minval=1) threshold = 2.0 // Fixed threshold value risk_percentage = input.float(1.0, title="Risk Percentage per Trade", step=0.1) / 100 // Calculate the logarithmic returns log_return = math.log(close / close[1]) // Calculate the rolling mean and standard deviation rolling_mean = ta.sma(log_return, window) rolling_std = ta.stdev(log_return, window) // Calculate the Shiryaev-Zhou Index (SZI) SZI = (log_return - rolling_mean) / rolling_std // Generate signals based on the fixed threshold long_signal = SZI < -threshold short_signal = SZI > threshold // Plot the signals on the main chart (overlay on price) plotshape(series=long_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", offset=-1) plotshape(series=short_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", offset=-1) // Strategy logic: Buy when SZI crosses below the negative threshold, Sell when it crosses above the positive threshold if (long_signal) strategy.entry("Buy", strategy.long, comment="Long Entry") if (short_signal) strategy.entry("Sell", strategy.short, comment="Short Entry") // Calculate the stop loss and take profit levels based on the percentage of risk stop_loss_pct = input.float(2.0, title="Stop Loss (%)") / 100 take_profit_pct = input.float(4.0, title="Take Profit (%)") / 100 // Set the stop loss and take profit levels based on the entry price strategy.exit("Take Profit / Stop Loss", "Buy", stop=close * (1 - stop_loss_pct), limit=close * (1 + take_profit_pct)) strategy.exit("Take Profit / Stop Loss", "Sell", stop=close * (1 + stop_loss_pct), limit=close * (1 - take_profit_pct)) // Plot the stop loss and take profit levels for visualization (optional) plot(stop_loss_pct != 0 ? close * (1 - stop_loss_pct) : na, color=color.red, linewidth=1, title="Stop Loss Level") plot(take_profit_pct != 0 ? close * (1 + take_profit_pct) : na, color=color.green, linewidth=1, title="Take Profit Level")