Strategi Dual Momentum

Penulis:ChaoZhang, Tanggal: 2023-09-28 15:03:57
Tag:

Gambaran umum

Strategi Dual Momentum menggunakan indikator momentum cepat dan lambat untuk menghasilkan sinyal masuk dan keluar. Ini adalah strategi bereaksi cepat yang cocok untuk instrumen tren pada jangka waktu harian dan 4 jam. Implementasi ini didasarkan pada aplikasi QuantCT.

Strategi ini memungkinkan untuk mengkonfigurasi mode panjang/pendek atau hanya panjang.

Logika Strategi

Strategi ini menggunakan momentum periode cepat (default 5 hari) dan momentum periode lambat (default 10 hari).

Ketika momentum lambat dan momentum cepat keduanya di atas 0, sinyal masuk panjang dihasilkan.

Ketika momentum lambat atau momentum cepat berada di bawah 0, sinyal keluar dihasilkan.

Demikian pula, ketika momentum lambat dan momentum cepat keduanya di bawah 0, sinyal masuk pendek dihasilkan. Ketika momentum lambat atau momentum cepat melebihi 0, sinyal keluar dihasilkan.

Dengan demikian, strategi menangkap perubahan tren dengan menggunakan silang dua indikator momentum dengan periode yang berbeda.

Analisis Keuntungan

  • Menggunakan momentum ganda memberikan deteksi perubahan tren yang lebih akurat dan lebih sedikit sinyal palsu.

  • Momentum periode cepat bereaksi dengan cepat terhadap perubahan pasar, sementara periode lambat menyaring kebisingan.

  • Mode panjang/pendek atau hanya panjang yang fleksibel sesuai dengan preferensi perdagangan yang berbeda.

  • Opsional stop loss mengendalikan risiko.

  • Sifat bereaksi cepat membuatnya cocok untuk perdagangan tren pada jangka waktu harian atau lebih tinggi untuk keuntungan besar.

Analisis Risiko

  • Momentum ganda bergantung pada nilai indikator di atas / di bawah 0, yang memiliki beberapa lag.

  • Strategi ini lebih tergantung pada tren dan mungkin berkinerja buruk di pasar yang terikat dengan rentang dengan lebih banyak whipsaws.

  • Tidak menggunakan stop loss berisiko kerugian besar.

  • Pemilihan simbol atau jangka waktu yang salah dapat menyebabkan hasil yang buruk.

Untuk mengendalikan risiko, atur periode momentum, gunakan persentase stop loss tetap yang wajar, pilih simbol tren yang kuat dan jalankan pada jangka waktu harian atau lebih tinggi.

Peluang Peningkatan

Strategi ini dapat ditingkatkan dengan beberapa cara:

  1. Tambahkan filter seperti MACD atau RSI untuk menghindari perdagangan yang salah pada titik balik tren.

  2. Tambahkan stop loss adaptif untuk menyesuaikan jarak stop berdasarkan volatilitas pasar.

  3. Mengoptimalkan parameter momentum untuk simbol yang berbeda melalui optimasi bertahap, analisis berjalan maju dll.

  4. Tambahkan aturan ukuran posisi untuk menyesuaikan ukuran posisi baru berdasarkan kinerja masa lalu.

  5. Membedakan kondisi pasar panjang dan pendek untuk masuk dan keluar yang tidak simetris.

Kesimpulan

Strategi Dual Momentum menangkap arah tren menggunakan crossover momentum cepat dan lambat. Menggunakan indikator sederhana untuk mendeteksi perubahan tren, ini cocok untuk menunggang tren intraday atau multi-hari dan menghasilkan keuntungan berlebih. Kontrol risiko yang tepat melalui stop loss, simbol / optimasi parameter dapat meningkatkan konsistensi.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © QuantCT

//@version=4
strategy("Momentum Strategy Idea",
         shorttitle="Momentum", 
         overlay=false,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)

// ____ Inputs

fast_period = input(title="Fast Period", defval=5) 
slow_period = input(title="Slow Period", defval=10)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

mom_fast = mom(close, fast_period)
mom_slow = mom(close, slow_period)
    
enter_long = (mom_slow > 0 and mom_fast > 0)
exit_long = (mom_slow < 0 or mom_fast < 0)
enter_short = (mom_slow < 0 and mom_fast < 0)
exit_short = (mom_slow > 0 or mom_fast > 0)

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 
   
// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)
    
// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange

mom_fast_plot = plot(mom_fast, color=colors)
mom_slow_plot = plot(mom_slow, color=colors)
fill(mom_fast_plot, mom_slow_plot, color=colors, transp=50)








Lebih banyak