Strategi Pengekstrakan Trend Pengekstrakan Bandpass adalah strategi pengesanan trend saham berdasarkan penapis bandpass. Ia menggunakan purata bergerak yang ditimbang secara eksponensial dan penapisan bandpass untuk memproses siri harga dan mengekstrak komponen trend dalam harga sebagai isyarat untuk kemasukan dan keluar.
Strategi pertama membina purata bergerak eksponensial berganda dengan menyesuaikan parameter Panjang dan Delta untuk mengawal panjang purata bergerak dan kelancaran. Kemudian ia menggunakan satu set transformasi matematik untuk mengekstrak komponen trend dari siri harga dan menyimpannya dalam pembolehubah xBandpassFilter. Akhirnya, ia mengira purata bergerak mudah xBandpassFilter, xMean, sebagai penunjuk untuk entri dan keluar.
Ia menjadi panjang apabila xMean melintasi di atas tahap Trigger, dan menjadi pendek apabila melintasi di bawah. Sensitiviti entri dan keluar boleh dikawal dengan menyesuaikan tahap Trigger.
Memendekkan panjang boleh memperbaiki masalah kelewatan.
Strategi ini agak stabil dengan prestasi yang baik dalam pasaran yang kuat. Pengoptimuman lanjut dalam pelbagai persekitaran pasaran dapat menjadikannya lebih menguntungkan. Ia menjamin penyelidikan dan aplikasi lanjut.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/12/2016 // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Extracting The Trend Strategy Backtest") Length = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") hline(Trigger, color=blue, linestyle=line) xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos = iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xMean, color=red, title="ExTrend")