Strategi perdagangan Bitcoin kuantitatif yang menggabungkan MACD, RSI dan FIB


Tanggal Pembuatan: 2023-12-26 17:08:03 Akhirnya memodifikasi: 2023-12-26 17:08:03
menyalin: 0 Jumlah klik: 932
1
fokus pada
1623
Pengikut

Strategi perdagangan Bitcoin kuantitatif yang menggabungkan MACD, RSI dan FIB

Ringkasan

Strategi ini, yang dikenal sebagai “Finch’s Golden Cross” strategi, menggabungkan MACD, RSI, dan teori Fibonacci Retracement/Expansion dari Gold Dividing Line Principle untuk melakukan transaksi kuantitatif terhadap cryptocurrency seperti Bitcoin.

Prinsip Strategi

  1. Indeks MACD menentukan titik jual beli
  • Periode EMA 15 dan 30 untuk MACD fastline dan slowline
  • Perhatikan bahwa garis cepat adalah titik beli dan garis lambat adalah titik jual.
  1. Indeks RSI memfilter sinyal palsu
  • Setel parameter RSI menjadi 50 siklus
  • Indikator RSI dapat digunakan untuk membantu memfilter beberapa sinyal palsu yang diberikan MACD
  1. Teori Fibonacci menentukan SUPPORT/RESISTANCE
  • Kombinasi harga tertinggi dan terendah dalam waktu dekat (seperti 38 garis K)
  • Hitung titik Fibonacci retracement dan ekspansi 0,5 dari garis pemisah emas
  • Dapat digunakan untuk menentukan posisi dukungan dan resistensi
  1. Garis rata-rata dan RSI menilai overbought dan oversold
  • 50 Periode rata-rata dapat menentukan apakah saat ini dalam keadaan overbought atau oversold
  • Indeks RSI juga bisa digunakan untuk menilai overbought dan oversold.
  1. Mekanisme Penanggulangan Pencurian
  • Memberikan pengguna pilihan untuk melakukan atau menolak
  • Logika multitasking dapat disesuaikan secara fleksibel sesuai dengan pilihan pengguna

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah dapat beroperasi sepanjang hari, dapat mengurangi biaya operasi secara signifikan. Selain itu, kombinasi berbagai indikator dapat meningkatkan tingkat kemenangan, yang terutama terlihat di pasar banteng. Keuntungan spesifiknya adalah sebagai berikut:

  1. bisa 7*24 jam, transaksi otomatis tanpa intervensi manusia
  2. Indikator MACD menentukan waktu yang tepat untuk membeli atau menjual
  3. RSI dapat memfilter beberapa sinyal palsu
  4. Teori Fibonacci meningkatkan basis keputusan perdagangan
  5. 50 rata-rata dan RSI menilai overbought oversold status
  6. Adaptasi terhadap perubahan pasar melalui mekanisme yang dapat dilakukan secara manual

Analisis risiko

Strategi ini juga memiliki beberapa risiko, terutama berasal dari perubahan besar dalam pasar, di mana stop loss mungkin lebih sulit untuk bekerja. Selain itu, terlalu lama memegang posisi juga akan memiliki risiko tertentu.

  1. “Sebuah hal yang tidak mungkin terjadi, karena jarak yang terlalu dekat dan situasi yang sangat buruk”.
  2. Risiko sistemik dari kepemilikan jangka panjang

Solusi yang sesuai adalah sebagai berikut:

  1. Relaksasi jarak penghentian yang tepat untuk memastikan penghentian bekerja dengan baik
  2. Optimalkan Siklus Pemegang Posisi, Kurangi Risiko Pemegang Posisi Terlalu Lama

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Optimalkan parameter MACD untuk meningkatkan akurasi sinyal jual beli
  2. Optimalkan parameter RSI untuk meningkatkan kepraktisan indikator
  3. Uji nilai teori Fibonacci dengan lebih banyak siklus
  4. Menambahkan lebih banyak indikator filter untuk mengurangi kemungkinan sinyal palsu
  5. Menentukan Tren Pasar dengan Menggunakan Indikator Siklus Besar

Meringkaskan

Strategi ini mengintegrasikan beberapa indikator kuantitatif untuk menentukan waktu membeli dan menjual, dapat melakukan perdagangan otomatis sepanjang waktu di pasar cryptocurrency. Dengan mengoptimalkan parameter masing-masing indikator dan menambahkan lebih banyak indikator tambahan, diharapkan dapat meningkatkan tingkat keuntungan strategi. Strategi ini dapat menghemat banyak biaya waktu operasi manual bagi pengguna, layak untuk penelitian dan aplikasi yang mendalam oleh pedagang kuantitatif.

Kode Sumber Strategi
/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 10m
basePeriod: 1m
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/
// © onurenginogutcu

//@version=4
strategy("STRATEGY R18-F-BTC", overlay=true, margin_long=100, margin_short=100)

///////////default girişler 1 saatlik btc grafiği için geçerli olmak üzere - stop loss'lar %2.5 - long'da %7.6 , short'ta %8.1

sym = input(title="Symbol", type=input.symbol, defval="BINANCE:BTCUSDT") /////////btc'yi indikatör olarak alıyoruz

lsl = input(title="Long Stop Loss (%)",
     minval=0.0, step=0.1, defval=2.5) * 0.01
     
ssl = input(title="Short Stop Loss (%)",
     minval=0.0, step=0.1, defval=2.5) * 0.01
     
longtp = input(title="Long Take Profit (%)",
     minval=0.0, step=0.1, defval=7.6) * 0.01
     
shorttp = input(title="Short Take Profit (%)",
     minval=0.0, step=0.1, defval=7.5) * 0.01
     
capperc = input(title="Capital Percentage to Invest (%)",
     minval=0.0, maxval=100, step=0.1, defval=90) * 0.01
     
choice = input(title="Reverse ?", type=input.bool, defval=false)

symClose = security(sym, "", close)
symHigh = security(sym, "", high)
symLow = security(sym, "", low)

i = ema (symClose , 15) - ema (symClose , 30) ///////// ema close 15 ve 30 inanılmaz iyi sonuç verdi (macd standartı 12 26)
r = ema (i , 9)

sapust = highest (i , 100) * 0.729 //////////0.729 altın oran oldu 09.01.2022
sapalt = lowest (i , 100) * 0.729  //////////0.729 altın oran oldu 09.01.2022

///////////highx = highest (close , 365) * 0.72 fibo belki dahiledilebilir
///////////lowx = lowest (close , 365) * 1.272 fibo belki dahil edilebilir
simRSI = rsi (symClose , 50 ) /////// RSI DAHİL EDİLDİ "50 MUMLUK RSI EN İYİ SONUCU VERİYOR"


//////////////fibonacci seviyesi eklenmesi amacı ile koyuldu fakat en iyi sonuç %50 seviyesinin altı ve üstü (low ve high 38 barlık) en iyi sonuç verdi
fibvar = 38
fibtop = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50)
fibbottom = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50)

///////////////////////////////////////////////////////////// INDICATOR CONDITIONS

longCondition = crossover(i, r) and i < sapalt and symClose < sma (symClose , 50) and simRSI < sma (simRSI , 50) and symClose < fibbottom
shortCondition = crossunder(i, r) and i > sapust and symClose > sma (symClose , 50) and simRSI > sma (simRSI , 50)  and symClose > fibtop

////////////////////////////////////////////////////////////////

///////////////////////////////////////////STRATEGY ENTRIES AND STOP LOSSES /////stratejilerde kalan capital için strategy.equity kullan (bunun üzerinden işlem yap)


if (choice == false and longCondition)
    strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ,   when = strategy.position_size == 0)
   

if (choice == false and shortCondition)
    strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ,  when = strategy.position_size == 0)

if (choice == true and longCondition)
    strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ,  when = strategy.position_size == 0)

if (choice == true and shortCondition)
    strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ,   when = strategy.position_size == 0)
    

if (strategy.position_size > 0)
    strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price*(1 - lsl) , limit=strategy.position_avg_price*(1 + longtp))

if (strategy.position_size < 0)
    strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price*(1 + ssl) , limit=strategy.position_avg_price*(1 - shorttp))


////////////////////////vertical colouring signals
bgcolor(color=longCondition ? color.new (color.green , 70) : na)
bgcolor(color=shortCondition ? color.new (color.red , 70) : na)