
Strategi ini ialah sistem dagangan arah aliran momentum berdasarkan pelbagai penunjuk teknikal. Ia mengenal pasti isyarat beli dan jual pasaran dengan menggabungkan indeks kekuatan relatif (RSI), perbezaan penumpuan purata bergerak (MACD) dan penunjuk stokastik. Strategi ini menggunakan kaedah ambang kebarangkalian dan menggunakan normalisasi skor Z untuk menapis isyarat dagangan dan meningkatkan kebolehpercayaan transaksi. Strategi ini amat sesuai untuk dagangan mengikut arah aliran pada tahap harian.
Strategi ini terutamanya berdasarkan tiga petunjuk teknikal teras:
Ini adalah strategi inovatif yang menggabungkan penunjuk teknikal klasik dengan kaedah statistik moden. Melalui penyelarasan berbilang penunjuk dan penapisan ambang kebarangkalian, kecekapan dagangan dipertingkatkan sambil mengekalkan keteguhan strategi. Strategi ini mempunyai kebolehsuaian dan kebolehskalaan yang kukuh serta sesuai untuk dagangan arah aliran jangka sederhana dan panjang. Walaupun terdapat risiko ketinggalan tertentu, prestasi dagangan yang stabil boleh dicapai melalui pengoptimuman parameter yang munasabah dan pengurusan risiko.
/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI-MACD-Stochastic Strategy", shorttitle = "RMS_V1", overlay=true)
// Inputs
use_macd = input.bool(true, title="Use MACD")
use_rsi = input.bool(true, title="Use RSI")
use_stochastic = input.bool(true, title="Use Stochastic")
threshold_buy = input.float(0.5, title="Buy Threshold (Probability)")
threshold_sell = input.float(-0.5, title="Sell Threshold (Probability)")
// Indicators
// RSI
rsi_period = input.int(14, title="RSI Period")
rsi = ta.rsi(close, rsi_period)
// Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, rsi_period)
stoch_d = ta.sma(stoch_k, 3)
// MACD
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
// Calculate Z-score
lookback = input.int(20, title="Z-score Lookback Period")
mean_close = ta.sma(close, lookback)
stddev_close = ta.stdev(close, lookback)
zscore = (close - mean_close) / stddev_close
// Buy and Sell Conditions
long_condition = (use_rsi and rsi < 30) or (use_stochastic and stoch_k < 20) or (use_macd and macd_line > signal_line)
short_condition = (use_rsi and rsi > 70) or (use_stochastic and stoch_k > 80) or (use_macd and macd_line < signal_line)
buy_signal = long_condition and zscore > threshold_buy
sell_signal = short_condition and zscore < threshold_sell
// Trading Actions
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)