Strategi Dagangan Gabungan SMA dan RSI

Penulis:ChaoZhang, Tarikh: 2023-10-08 11:40:49
Tag:

Ringkasan

Strategi ini adalah berdasarkan pada sederhana Moving Average (SMA) dan Indeks Kekuatan Relatif (RSI) penunjuk. Ia pergi pendek apabila RSI melintasi di atas tahap kemasukan yang ditentukan dan harga penutupan adalah di bawah SMA, dengan trailing stop loss atau RSI mencetuskan stop loss. Strategi ini menggabungkan trend berikut dan overbought / oversold penunjuk, bertujuan untuk menangkap peluang pembalikan dalam jangka masa sederhana.

Logika Strategi

  1. Gunakan SMA (200 tempoh) untuk menentukan arah trend keseluruhan. Cari peluang pendek apabila harga di bawah SMA.

  2. Gunakan RSI (14 tempoh) untuk mengenal pasti keadaan overbought/oversold.

  3. Selepas membuka kedudukan pendek, tetapkan stop loss di harga penutupan terendah.

  4. Terdapat tiga jenis stop loss: price stop, RSI stop dan profit stop.

Kelebihan

  1. Menggabungkan trend berikut dan indikator overbought/oversold meningkatkan ketepatan masa untuk entri.

  2. Penghentian kerugian boleh melindungi keuntungan mengikut perubahan harga masa nyata, mengelakkan kerugian berhenti yang kaku.

  3. RSI pemicu dua hala membantu mengunci keuntungan dan mencegah kerugian tarik balik yang berlebihan.

  4. Menggunakan penunjuk mudah dengan parameter tetap memudahkan pelaksanaan untuk perdagangan jangka sederhana.

Risiko

  1. Parameter SMA dan RSI mungkin tidak sesuai dengan semua produk dan jangka masa, yang memerlukan pengoptimuman.

  2. Kos dagangan seperti slippage dan komisen diabaikan, memberi kesan kepada PnL sebenar.

  3. Faktor lain seperti jumlah dan struktur pasaran tidak dipertimbangkan, yang membawa kepada isyarat yang tidak boleh dipercayai.

  4. Terlalu bergantung kepada penunjuk dan mengabaikan tindakan harga itu sendiri boleh kehilangan masa pembalikan.

  5. Kaedah stop loss agak kaku, tidak dapat menyesuaikan diri dengan perubahan pasaran yang besar.

Peningkatan

  1. Uji dan optimumkan tempoh SMA dan parameter RSI untuk mencari kombinasi terbaik.

  2. Pertimbangkan untuk menambah penunjuk jumlah untuk mengelakkan pecah palsu dengan jumlah yang rendah.

  3. Kombinasi ujian dengan penunjuk lain seperti MACD, Bollinger Bands dan lain-lain

  4. Tambah algoritma pembelajaran mesin, meningkatkan ketepatan isyarat dengan latihan dengan data sejarah.

  5. Mengoptimumkan stop loss untuk menjadi lebih fleksibel, menyesuaikan diri dengan perubahan pasaran.

  6. Tambah pengurusan risiko untuk mengawal jumlah kerugian perdagangan tunggal.

Kesimpulan

Strategi ini mengintegrasikan kekuatan penunjuk SMA dan RSI, menapis beberapa peluang perdagangan yang bising. Logiknya yang mudah dilaksanakan tetapi masih memerlukan pengoptimuman parameter dan peraturan, bersama-sama dengan kawalan risiko yang betul untuk beroperasi dengan mantap dalam jangka panjang.


/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
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/
// © abdllhatn

//@version=5
// strategy("Alpha Short SMA and RSI Strategy", overlay=true, initial_capital=10000, default_qty_value=100)

// Inputs
sma_length = input(200, title="SMA Length")
rsi_length = input(14, title="RSI Length")
rsi_entry = input(51, title="RSI Entry Level")
rsi_stop = input(54, title="RSI Stop Level")
rsi_take_profit = input(32, title="RSI Take Profit Level")

// Indicators
sma_value = ta.sma(close, sma_length)
rsi_value = ta.rsi(close, rsi_length)

var float trailingStop = na
var float lastLow = na

// Conditions
shortCondition = ta.crossover(rsi_value, rsi_entry) and close < sma_value
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    trailingStop := na
    lastLow := na

if (strategy.position_size < 0)
    if (na(lastLow) or close < lastLow)
        lastLow := close
        trailingStop := close

if not na(trailingStop) and close > trailingStop
    strategy.close("Sell")

if (rsi_value >= rsi_stop)
    strategy.close("Sell")

if (rsi_value <= rsi_take_profit)
    strategy.close("Sell")

// Plot
plot(sma_value, color=color.red, linewidth=2)




Lebih lanjut