Strategi penapisan dwi jangka pendek berdasarkan SMA dan RSI


Tarikh penciptaan: 2023-10-08 12:14:36 Akhirnya diubah suai: 2023-10-08 12:14:36
Salin: 0 Bilangan klik: 659
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini direka berdasarkan kedua-dua indikator, purata bergerak sederhana ((SMA) dan indeks kekuatan relatif ((RSI)). Ia dibuat kosong apabila nilai RSI menembusi garis isyarat masuk, dan harga penutupan berada di bawah SMA; posisi kosong apabila isyarat berhenti atau berhenti muncul. Strategi ini digabungkan dengan syarat penapisan berganda untuk masuk ke dalam pasaran, yang dapat dengan berkesan mengelakkan perdagangan yang tidak sah.

Prinsip

Strategi ini dilihat berdasarkan dua indikator:

  1. SMA: Pengiraan purata bergerak sederhana harga penutupan 200 hari terakhir, yang mewakili arah trend garis tengah dan panjang.

  2. RSI: Berkenaan dengan harga penutupan 14 hari terakhir yang agak kuat, RSI mewakili kegemilangan dalam jangka pendek.

Apabila RSI melintasi 51 ke kawasan overbought dan di atas garis SMA, ini menunjukkan bahawa garis pendek dan garis panjang tengah bertukar dari trend, dan oleh itu kosong.

Kemudian set garis hentian dan hentian. Hentikan apabila RSI di bawah 32; Hentikan apabila RSI di atas 54 atau Hentikan apabila garis hentian telah ditembusi.

Kelebihan

  1. Penapisan dua petunjuk meningkatkan ketepatan masuk. RSI menentukan isyarat overbought jangka pendek, dan SMA menentukan isyarat kosong garis tengah, kombinasi keduanya lebih dipercayai.

  2. Menggunakan kaedah tracking stop loss, ia boleh mengunci keuntungan mengikut pergerakan pasaran, dan mengelakkan pulangan kepada keuntungan.

  3. Logik strategi mudah difahami dan mudah diubah suai.

Risiko

  1. Tidak mengambil kira faktor-faktor seperti jumlah dagangan, kadar turun naik.

  2. Parameter RSI lebih tetap dan mungkin tidak berlaku untuk semua jenis dan tempoh.

  3. Kos urus niaga seperti slippage, bayaran dan lain-lain tidak diambil kira.

  4. Strategi yang lebih mudah, ruang untuk memperluasnya adalah terhad.

Optimum idea

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

  2. Menambah cara berhenti berhenti seperti berhenti bergerak, berhenti peratusan dan sebagainya.

  3. Penapisan digabungkan dengan penunjuk trend seperti MACD untuk mengelakkan dagangan berlawanan arah.

  4. Pertimbangkan untuk menambah petunjuk jumlah transaksi untuk menyaring jumlah yang rendah daripada pelanggaran palsu.

ringkaskan

Strategi ini secara keseluruhannya jelas dan mempunyai nilai praktikal tertentu. Tetapi parameternya lebih tetap dan tidak mengambil kira perubahan pasaran. Selain itu, terdapat beberapa butiran yang dapat dioptimumkan. Secara keseluruhan, strategi ini boleh digunakan sebagai contoh bagi pemula untuk memahami strategi penapisan indeks ganda, tetapi perlu diuji dan disempurnakan lebih lanjut semasa operasi.

Kod sumber strategi
/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 3h
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/
// © 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)