Strategi ini adalah strategi trend yang menggunakan penunjuk momentum harga. Ia menilai trend pasaran dengan mengira perubahan harga penutupan dalam tempoh tertentu dan membuat entri panjang atau pendek yang sepadan apabila terdapat trend harga menaik atau menurun yang berterusan.
Penunjuk teras strategi ini adalah momentum harga.
momentum = close - close[n]
di mana n mewakili panjang tempoh momentum. Apabila momentum > 0, ini bermakna harga telah meningkat semasa tempoh semasa. Apabila momentum < 0, ini bermakna harga telah jatuh sepanjang tempoh semasa.
Strategi pertama menetapkan parameter confirmBars, yang mewakili bilangan lilin yang diperlukan untuk penghakiman trend sebelum melaksanakan perdagangan. Dalam julat backtest, jika momentum > 0 berterusan untuk lilin confirmBars, entri panjang dibuat. Jika momentum < 0 berterusan untuk lilin confirmBars, entri pendek dibuat.
Kunci penilaian trend strategi terletak pada mengira bilangan lilin berturut-turut di mana momentum lebih besar daripada atau kurang daripada 0, yang dicapai melalui bcount dan discount variabel. Mereka ditingkatkan dengan 1 apabila syarat yang sesuai dipenuhi dan disetel semula ke 0 apabila syarat tidak dipenuhi. Apabila kiraan mencapai confirmBars, perdagangan panjang atau pendek yang sesuai dilaksanakan.
Ini adalah trend yang agak mudah mengikut strategi dengan kelebihan berikut:
Strategi ini juga mempunyai beberapa risiko:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Ringkasnya, strategi momentum breakout ini adalah strategi trend berikut yang mudah dan praktikal yang sesuai sebagai strategi perdagangan kuant perkenalan. Dalam penerapan, perhatian diperlukan untuk mengawal kekerapan perdagangan dan mencegah overtrading. Sementara itu, parameter dan penapis perlu disesuaikan dan dioptimumkan berdasarkan produk sebenar dan persekitaran pasaran untuk strategi untuk mencapai prestasi maksimum.
/*backtest start: 2024-01-09 00:00:00 end: 2024-01-16 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Momentum Strategy [TS Trader]", overlay=true) confirmBars = input(1) momentumLength = input(14, title="Momentum Length") price = close momentum = close - close[momentumLength] // === INPUT BACKTEST RANGE === fromYear = input.int(2019, title="Backtest Start Year") fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12) fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31) toYear = input.int(2023, title="Backtest End Year") toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12) toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31) startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00) endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59) inBacktestRange = true // === STRATEGY LOGIC === bcond = momentum > 0 bcount = 0 bcount := bcond ? nz(bcount[1]) + 1 : 0 if (bcount == confirmBars and inBacktestRange) strategy.entry("Buy", strategy.long, comment="Long") scond = momentum < 0 scount = 0 scount := scond ? nz(scount[1]) + 1 : 0 if (scount == confirmBars and inBacktestRange) strategy.entry("Sell", strategy.short, comment="Short") // Plotting Momentum plot(momentum, title="Momentum", color=color.purple)