Strategi perdagangan kuantitatif FNGU berdasarkan Bollinger Bands dan RSI


Tanggal Pembuatan: 2024-01-29 14:53:47 Akhirnya memodifikasi: 2024-01-29 14:53:47
menyalin: 0 Jumlah klik: 671
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif FNGU berdasarkan Bollinger Bands dan RSI

Ringkasan

Strategi ini disebut dengan “FNGU Quantitative Trading Strategy” yang mengacu pada garis Brinks dan RSI. Strategi ini adalah strategi posisi panjang khusus untuk saham FNGU. Strategi ini menggunakan indikator garis Brinks dan RSI untuk mengidentifikasi overbought dan oversold saham, yang menghasilkan sinyal beli dan jual.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada kombinasi antara indikator Brinline dan RSI.

Pertama, garis Brin terdiri dari tiga garis: garis tengah, garis atas, dan garis bawah. Di antaranya, garis tengah adalah rata-rata bergerak sederhana selama n hari, dan garis atas dan bawah masing-masing adalah selisih standar k kali positif negatif dari garis tengah.

Dalam strategi ini, periode Bollinger Bandung adalah 235 hari dan parameter k adalah 2. Sinyal beli dihasilkan ketika harga berada di bawah Bollinger Bandung atau ketika harga melintasi Bollinger Bandung dari bawah ke atas; Sinyal jual dihasilkan ketika harga berada di atas Bollinger Bandung.

Kedua, indikator RSI mencerminkan tingkat overbought dan oversold dari saham. RSI di atas 70 berarti overbought, dan di bawah 30 berarti oversold. Dalam strategi ini, panjang periode parameter RSI adalah 2.

Dalam strategi ini, kombinasi menggunakan indikator Bollinger Bands dan RSI: menghasilkan sinyal beli ketika indikator RSI menerobos zona oversold dan pada saat yang sama harga berada di bawah atau menyentuh garis bawah Bollinger Bands; menghasilkan sinyal jual ketika indikator RSI menerobos zona oversold dan harga berada di atas Bollinger Bands.

Keunggulan Strategis

Strategi ini memiliki beberapa keuntungan:

  1. Kombinasi Bollinger Bands dan RSI membuat sinyal jual beli lebih akurat dan lebih dapat diandalkan.

  2. Dengan menggunakan Brinline untuk mengidentifikasi area overbought dan oversold dari saham, RSI memfilter sinyal palsu, dan keduanya saling melengkapi.

  3. Hanya melakukan perdagangan jangka panjang, tanpa mempertimbangkan risiko perdagangan kosong.

  4. Parameter strategi telah dioptimalkan untuk FNGU, saham yang sangat berfluktuasi.

  5. Stop loss otomatis, mengurangi risiko kerugian.

  6. Pemrograman harus sederhana, jelas, mudah dipahami dan dimodifikasi.

Risiko dan Solusi

Strategi ini juga memiliki beberapa risiko, yang meliputi:

  1. Brinline dan RSI dapat menghasilkan sinyal palsu, mudah untuk melakukan arbitrage, perlu berhati-hati dalam perdagangan. Parameter dapat disesuaikan sesuai, atau menambahkan indikator lain untuk disaring.

  2. Saham FNGU sendiri sangat berfluktuasi, pengaturan stop loss yang tidak tepat dapat meningkatkan kerugian.

  3. Strategi ini hanya cocok untuk saham berfluktuasi tinggi seperti FNGU, tidak cocok untuk saham lainnya, perlu menyesuaikan parameter sesuai dengan berbagai saham.

  4. Parameter strategi telah dioptimalkan, tetapi perubahan pasar dapat menyebabkan parameter tidak berlaku lagi, dan perlu terus memperhatikan optimalisasi.

Arah optimasi strategi

Strategi ini juga dapat dioptimalkan dengan cara berikut:

  1. Menambahkan kombinasi indikator lainnya, seperti KDJ, MACD, dan lain-lain, membuat sinyal lebih akurat.

  2. Optimalkan parameter Brinline dan RSI untuk lebih banyak jenis saham.

  3. Menambahkan model pembelajaran mesin untuk membantu pengambilan keputusan, memanfaatkan lebih banyak data untuk menghasilkan sinyal perdagangan.

  4. Transaksi lintas-siklus, menggunakan data dimensi waktu yang lebih tinggi untuk menghasilkan sinyal.

  5. Dengan menggunakan analisis emosi, data sosial, dan lain-lain untuk menghasilkan sinyal transaksi.

  6. Mengembangkan sistem pengukuran kuantitatif untuk menguji cepat berbagai pengaturan parameter.

Meringkaskan

Strategi ini adalah strategi posisi panjang, terutama untuk saham yang berfluktuasi besar, seperti FNGU. Ini dikombinasikan dengan penggunaan indikator Brinline dan indikator RSI, untuk menghasilkan sinyal perdagangan ketika terjadi overbought dan oversold, yang bertujuan untuk menangkap peluang pembalikan harga saham.

Kode Sumber Strategi
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = 50
RSIoverBought = 50
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
BBtarget38 = BBbasis + 0.38 * BBdev  // Line at 38% of Bollinger Band width
BBtarget50 = BBbasis + 0.50 * BBdev  // Line at 50% of Bollinger Band width

///////////// EMA
emaLength = input(20, title="EMA Period Length")
ema = ema(close, emaLength)

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width")  // Line at 38%
plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width")  // Line at 50%
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
longCondition = crossover(vrsi, RSIoverSold) and buyEntry
sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper

close_long = close > BBbasis
close_short = close < BBbasis

if (not na(vrsi))
    if longCondition
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")

if (sellCondition)
    strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell")
else
    strategy.cancel(id="Sell")

if close_short
    strategy.close("Sell")