Strategi ini adalah strategi trend following yang menggunakan indikator momentum harga. Strategi ini menilai tren pasar dengan menghitung perubahan harga penutupan selama periode tertentu dan membuat entri panjang atau pendek yang sesuai ketika ada tren harga yang terus meningkat atau menurun.
Indikator inti dari strategi ini adalah momentum harga.
momentum = close - close[n]
dimana n adalah panjang periode momentum. Ketika momentum > 0, itu berarti bahwa harga telah meningkat selama periode saat ini. Ketika momentum < 0, itu berarti harga telah turun selama periode saat ini.
Strategi pertama menetapkan parameter confirmBars, yang mewakili jumlah lilin yang diperlukan untuk penilaian tren sebelum melakukan perdagangan. Dalam rentang backtest, jika momentum > 0 bertahan untuk lilin confirmBars, entri panjang dibuat. Jika momentum < 0 bertahan untuk lilin confirmBars, entri pendek dibuat.
Kunci dari penilaian tren strategi terletak pada menghitung jumlah lilin berturut-turut di mana momentum lebih besar atau kurang dari 0, yang dicapai melalui variabel bcount dan discount. Mereka ditingkatkan dengan 1 ketika kondisi yang sesuai terpenuhi dan diset ulang menjadi 0 ketika kondisi tidak terpenuhi. Ketika hitungan mencapai confirmBars, perdagangan panjang atau pendek yang sesuai dilaksanakan.
Ini adalah tren yang relatif sederhana mengikuti strategi dengan keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Strategi dapat dioptimalkan dalam beberapa aspek:
Secara singkat, strategi momentum breakout ini adalah strategi tren sederhana dan praktis yang sesuai sebagai strategi perdagangan kuantitas pendahuluan. Dalam penerapannya, perhatian diperlukan untuk mengontrol frekuensi perdagangan dan mencegah overtrading. Sementara itu, parameter dan filter perlu disesuaikan dan dioptimalkan berdasarkan produk dan lingkungan pasar yang sebenarnya agar strategi mencapai kinerja maksimal.
/*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)