Strategi Dagangan RSI Rata-rata Bergerak Eksponensial Berganda

Penulis:ChaoZhang, Tarikh: 2024-01-30 15:44:11
Tag:

img

Ringkasan

Strategi ini dinamakan Double Exponential Moving Average RSI Trading Strategy. Ia menggunakan EMA Ganda dan Indeks Kekuatan Relatif (RSI) sebagai penunjuk perdagangan utama untuk melaksanakan perdagangan automatik.

Prinsip Strategi

Strategi ini mula-mula mengira Purata Bergerak Eksponensial Ganda (MA) harga, kemudian mengira RSI berdasarkan MA, dan seterusnya mengira Purata Bergerak Eksponensial RSI (Smooth). Ia menghasilkan isyarat beli apabila RSI melintasi di atas purata bergerak dan isyarat jual apabila RSI melintasi di bawah purata bergerak.

Kekuatan Strategi

  1. Double EMA bertindak balas lebih cepat terhadap perubahan harga dan menapis beberapa bunyi bising.
  2. Pengiraan RSI berdasarkan MA menjadikannya lebih stabil dan mengelakkan perdagangan palsu.
  3. Purata bergerak RSI membantu mengesahkan isyarat perdagangan dan mengelakkan pecah palsu.
  4. Menetapkan jumlah maksimum dagangan setiap hari membantu mengawal risiko harian.
  5. Menetapkan saiz perdagangan sebagai peratusan modal sendiri mengelakkan kerugian perdagangan tunggal yang terlalu besar.
  6. Menetapkan sesi masa dagangan mengelakkan nod masa utama dan mengawal risiko kecairan.
  7. Ambil keuntungan dan hentikan kerugian dalam mata membantu mengehadkan P & L perdagangan tunggal.
  8. Penghentian di titik membantu mengunci keuntungan terapung dan mengurangkan pengeluaran.

Risiko Strategi

  1. EMA berganda bertindak balas lebih perlahan terhadap peristiwa pasaran, kehilangan peluang perdagangan jangka pendek.
  2. RSI cenderung untuk membentuk isyarat kematian palsu / salib emas.
  3. Peratusan ekuiti tetap tidak dapat menyesuaikan diri dengan turun naik pasaran yang berbeza, risiko penggunaan dana yang tidak mencukupi.
  4. Sasaran stop loss / keuntungan tetap gagal menyesuaikan diri dengan produk dan keadaan pasaran yang berbeza, risiko keluar lebih awal.
  5. Penghentian penghantaran cenderung untuk mencetuskan terlalu kerap di pasaran bergolak.

Tindakan balas:

  1. Memendekkan tempoh MA untuk meningkatkan kepekaan.
  2. Tambah penunjuk lain seperti kelantangan untuk menapis isyarat.
  3. Sesuaikan saiz perdagangan secara dinamik.
  4. Sesuaikan sasaran stop loss/profit berdasarkan turun naik pasaran.
  5. Relaks titik stop loss belakang dengan betul.

Arahan pengoptimuman

  1. Uji kombinasi EMA berganda jangka pendek/panjang yang berbeza untuk mencari parameter yang optimum.
  2. Uji parameter tempoh pengiraan RSI untuk meningkatkan kebolehpercayaan isyarat kematian/salib emas.
  3. Tambah penunjuk seperti jumlah, Bollinger Bands untuk menapis bunyi isyarat.
  4. Sesuaikan secara dinamik saiz perdagangan dan sasaran stop loss/profit berdasarkan harga penutupan harian, turun naik dan lain-lain.
  5. Mengoptimumkan mekanisme penghentian penghantaran untuk produk dan persekitaran pasaran yang berbeza.

Ringkasan

Strategi ini mempunyai peraturan mekanikal yang jelas dan kebolehpercayaan yang tinggi secara keseluruhan, sesuai untuk produk trend jangka menengah hingga panjang. Apabila dioptimumkan, ia boleh menjadi trend asas mengikut strategi mekanikal dengan risiko yang boleh dikawal, bernilai penilaian lanjut mengenai prestasi langsung.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='[STRATEGY][RS]DemaRSI V0', shorttitle='D', overlay=false, initial_capital=100000, currency=currency.USD)
src = input(close)
ma_length = input(21)
rsi_length = input(4)
rsi_smooth = input(4)

ma = ema(ema(src, ma_length), ma_length)
marsi = rsi(ma, rsi_length)
smooth = ema(marsi, rsi_smooth)
plot(title='M', series=marsi, color=black)
plot(title='S', series=smooth, color=red)
hline(0)
hline(50)
hline(100)

max_order_per_day = input(6)
// strategy.risk.max_intraday_filled_orders(max_order_per_day)
trade_size_as_equity_factor = input(false)
trade_size = input(type=float, defval=10000.00) * (trade_size_as_equity_factor ? strategy.equity : 1)
take_profit_in_points = input(100000)
stop_loss_in_points = input(100000)
trail_in_points = input(150)

USE_SESSION = input(true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_SESSION ? true : not na(time('1', trade_session))

buy_entry = istradingsession and crossover(marsi, smooth)
sel_entry = istradingsession and crossunder(marsi, smooth)

strategy.entry('buy', long=true, qty=1, when=buy_entry)
strategy.entry('sel', long=false, qty=1, when=sel_entry)

strategy.exit('buy.Exit', from_entry='buy', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points)
strategy.exit('sel.Exit', from_entry='sel', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points)
strategy.close_all(when=not istradingsession)

Lebih lanjut