Strategi mengikuti tren yang didorong oleh multi-faktor


Tanggal Pembuatan: 2024-01-17 14:02:22 Akhirnya memodifikasi: 2024-01-17 14:02:22
menyalin: 0 Jumlah klik: 568
1
fokus pada
1617
Pengikut

Strategi mengikuti tren yang didorong oleh multi-faktor

Ringkasan

Strategi ini menggabungkan dua faktor untuk menentukan arah tren pasar dengan kombinasi indikator dispersi rata-rata bergerak (MACD) dan indikator relatif kuat acak (Stoch RSI), melakukan lebih banyak ketika tren naik, melakukan lebih banyak ketika tren turun, dan merupakan jenis strategi yang mengikuti tren.

Prinsip Strategi

Strategi ini menggunakan MACD dan Stoch RSI untuk menentukan arah tren pasar.

Indikator MACD terdiri dari garis cepat ((ema garis cepat) dan garis lambat ((ema garis lambat) dan diferensinya, yang mencerminkan agregasi dan pemisahan antara rata-rata jangka pendek dan jangka panjang. Ketika garis cepat melewati garis lambat, itu adalah sinyal beli, dan ketika garis cepat melewati garis lambat, itu adalah sinyal jual.

Stoch RSI mengkombinasikan RSI dan Stoch untuk memperlihatkan fenomena overbought dan oversold di pasar. Stoch RSI lebih besar dari garis sinyal Stoch RSI untuk sinyal beli dan lebih kecil dari garis sinyal untuk sinyal jual.

Strategi ini menggunakan MACD dan Stoch RSI untuk menentukan arah tren pasar pada garis harian dan garis 4 jam. Jika dua indikator pada garis harian dan garis 4 jam mengirimkan sinyal beli pada saat yang sama, lakukan over; Jika dua indikator mengirimkan sinyal jual pada saat yang sama, lakukan short. Ini dapat secara efektif memfilter sinyal palsu dan meningkatkan keandalan sinyal.

Keunggulan Strategis

  1. Kombinasi faktor ganda untuk menilai tren pasar, dapat secara efektif menyaring sinyal palsu, meningkatkan akurasi sinyal

  2. Verifikasi sinyal pada garis waktu yang tinggi dan rendah (gambar garis matahari dan garis 4 jam) untuk menghindari terjadinya arbitrage

  3. Mengikuti tren dan menghindari pasar yang bergoyang

  4. Strategi yang jelas, sederhana, dan mudah dipahami

Risiko dan Solusi

  1. Tidak dapat menentukan titik balik tren yang efektif, mungkin membalikkan stop loss
  • Pengaturan parameter yang tepat, pengoptimalan, atau penambahan penilaian indikator lainnya
  1. Kontrak tunggal tidak dapat mendistribusikan risiko sistemik pasar
  • Menambahkan kontrak lain atau saham untuk investasi terdesentralisasi
  1. Tidak dapat menilai dampak dari peristiwa besar yang tiba-tiba
  • Analisis Fundamental dan Peningkatan Kesadaran Perlindungan Risiko

Arah optimasi

  1. Menyesuaikan parameter MACD dan Stoch RSI untuk mengoptimalkan titik jual beli

  2. Meningkatkan strategi stop loss mobile untuk mengunci keuntungan

  3. Menambahkan Modul Manajemen Uang untuk Mengontrol Posisi Tunggal

  4. Dengan lebih banyak faktor penilaian, peningkatan akurasi sinyal

  5. Parameter pengoptimalan dinamis dengan metode pembelajaran mesin

Meringkaskan

Strategi ini menggunakan model dua faktor untuk menilai arah tren pasar, digabungkan dengan sinyal verifikasi sumbu waktu tinggi dan rendah, merupakan strategi pelacakan tren yang lebih stabil dan andal. Memiliki kemampuan pencegahan risiko dan ruang untuk kesalahan. Di masa depan, diharapkan untuk mendapatkan kinerja strategi yang lebih baik dengan menambahkan modul seperti optimasi parameter, strategi stop loss, dan manajemen dana.

Kode Sumber Strategi
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='[RS]Khizon (UGAZ) Strategy V0', shorttitle='K', overlay=false, pyramiding=0, initial_capital=100000, currency=currency.USD)
//  ||  Inputs:
macd_src = input(title='MACD Source:',  defval=close)
macd_fast = input(title='MACD Fast Length:',  defval=12)
macd_slow = input(title='MACD Slow Length:',  defval=26)
macd_signal_smooth = input(title='MACD Signal Smoothing:',  defval=9)
srsi_src = input(title='SRSI Source:',  defval=close)
srsi_rsi_length = input(title='SRSI RSI Length:',  defval=14)
srsi_stoch_length = input(title='SRSI Stoch Length:',  defval=14)
srsi_smooth = input(title='SRSI Smoothing:',  defval=3)
srsi_signal_smooth = input(title='SRSI Signal Smoothing:',  defval=3)
//  ||  Strategy Inputs:
trade_size = input(title='Trade Size in USD:', type=float, defval=1)
buy_trade = input(title='Perform buy trading?', type=bool, defval=true)
sel_trade = input(title='Perform sell trading?', type=bool, defval=true)
//  ||  MACD(close, 12, 26, 9):     ||---------------------------------------------||
f_macd_trigger(_src, _fast, _slow, _signal_smooth)=>
    _macd = ema(_src, _fast) - ema(_src, _slow)
    _signal = sma(_macd, _signal_smooth)
    _return_trigger = _macd >= _signal ? true : false
//  ||  Stoch RSI(close, 14, 14, 3, 3)  ||-----------------------------------------||
f_srsi_trigger(_src, _rsi_length, _stoch_length, _smooth, _signal_smooth)=>
    _rsi = rsi(_src, _rsi_length)
    _stoch = sma(stoch(_rsi, _rsi, _rsi, _stoch_length), _smooth)
    _signal = sma(_stoch, _signal_smooth)
    _return_trigger = _stoch >= _signal ? true : false
//  ||-----------------------------------------------------------------------------||
//  ||-----------------------------------------------------------------------------||
//  ||  Check Directional Bias from daily timeframe:
daily_trigger = security('NGAS', 'D', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))
h4_trigger = security('NGAS', '240', f_macd_trigger(macd_src, macd_fast, macd_slow, macd_signal_smooth) and f_srsi_trigger(srsi_src, srsi_rsi_length, srsi_stoch_length, srsi_smooth, srsi_signal_smooth))

plot(title='D1T', series=daily_trigger?0:na, style=circles, color=blue, linewidth=4, transp=65)
plot(title='H4T', series=h4_trigger?0:na, style=circles, color=navy, linewidth=2, transp=0)

sel_open = sel_trade and not daily_trigger and not h4_trigger
buy_open = buy_trade and daily_trigger and h4_trigger
sel_close = not buy_trade and daily_trigger and h4_trigger
buy_close = not sel_trade and not daily_trigger and not h4_trigger
strategy.entry('sel', long=false, qty=trade_size, comment='sel', when=sel_open)
strategy.close('sel', when=sel_close)
strategy.entry('buy', long=true, qty=trade_size, comment='buy', when=buy_open)
strategy.close('buy', when=buy_close)