Strategi dagangan Bitcoin kuantitatif menggabungkan MACD, RSI dan FIB


Tarikh penciptaan: 2023-12-26 17:08:03 Akhirnya diubah suai: 2023-12-26 17:08:03
Salin: 0 Bilangan klik: 932
1
fokus pada
1623
Pengikut

Strategi dagangan Bitcoin kuantitatif menggabungkan MACD, RSI dan FIB

Gambaran keseluruhan

Strategi ini dinamakan sebagai “Finch’s Gold Crossed Strategy” dan menggabungkan MACD, RSI, dan teori Fibonacci Retracement/Expansion dalam prinsip Gold Divide Line untuk mencapai transaksi kuantitatif terhadap mata wang kripto seperti Bitcoin.

Prinsip Strategi

  1. Indeks MACD menilai titik jual beli
  • Tempoh EMA 15 dan 30 untuk MACD Fastline dan Slowline
  • “Saya tidak tahu apa-apa mengenai apa yang berlaku di Malaysia, tetapi saya tidak tahu apa yang berlaku di Malaysia”, katanya.
  1. RSI menapis isyarat palsu
  • Tetapkan parameter RSI kepada 50 kitaran
  • Penunjuk RSI boleh digunakan untuk membantu menyaring beberapa isyarat palsu yang diberikan oleh MACD
  1. Teori Fibonacci menentukan SUPPORT/RESISTANCE
  • Gabungan harga tertinggi dan terendah terkini (seperti 38 K line)
  • Hitung titik pelepasan dan pelebaran 0.5 Fibonacci pada garisan pemisah emas
  • Boleh digunakan untuk menentukan kedudukan sokongan dan rintangan
  1. Garis purata dan RSI menilai terlalu banyak membeli dan terlalu banyak menjual
  • 50 purata kitaran untuk menentukan sama ada anda berada dalam keadaan overbought atau oversold
  • Indeks RSI juga boleh dilihat sebagai overbought dan oversold.
  1. Mekanisme Penangkal Pembukaan Kedudukan
  • Memberi pengguna pilihan untuk membuat satu tindakan balas
  • Logik ruang kosong yang fleksibel mengikut pilihan pengguna

Analisis kelebihan

Kelebihan utama strategi ini adalah bahawa ia boleh beroperasi sepanjang masa, yang dapat mengurangkan kos pengendalian secara besar-besaran. Selain itu, ia dapat meningkatkan kemenangan melalui gabungan pelbagai indikator, yang kesannya sangat jelas di pasaran lembu. Kelebihan khusus adalah sebagai berikut:

  1. 7 boleh*24 jam kuantiti automatik tanpa campur tangan manusia
  2. Indeks MACD menentukan masa yang tepat untuk membeli dan menjual
  3. RSI boleh menyaring beberapa isyarat palsu
  4. Teori Fibonacci menambah asas untuk membuat keputusan perdagangan
  5. 50 rata-rata dan RSI menilai keadaan overbought dan oversold
  6. Mekanisme yang boleh disesuaikan dengan perubahan pasaran

Analisis risiko

Strategi ini juga mempunyai beberapa risiko, terutamanya dari perubahan besar dalam pasaran, di mana halangan mungkin lebih sukar untuk berfungsi. Selain itu, jangka masa memegang terlalu lama juga akan mempunyai risiko tertentu.

  1. Terlalu dekat dengan halangan kerosakan, keadaan tidak dapat melindungi.
  2. Risiko sistemik yang disebabkan oleh jangka masa yang terlalu lama

Penyelesaian yang sesuai adalah seperti berikut:

  1. Perlahankan jarak penghentian kerosakan untuk memastikan penghentian kerosakan berfungsi dengan baik
  2. Mengoptimumkan kitaran pegangan dan mengurangkan risiko pegangan yang terlalu lama

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Mengoptimumkan parameter MACD untuk meningkatkan ketepatan isyarat jual beli
  2. Mengoptimumkan parameter RSI dan meningkatkan kegunaan RSI
  3. Ujian lebih banyak kitaran Fibonacci
  4. Tambah lebih banyak penunjuk penyaringan untuk mengurangkan kemungkinan isyarat palsu
  5. Kaedah untuk menilai trend pasaran dengan menggunakan lebih banyak indikator kitaran besar

ringkaskan

Strategi ini menggabungkan beberapa petunjuk kuantitatif untuk menentukan masa membeli dan menjual, boleh melakukan perdagangan automatik sepanjang masa di pasaran cryptocurrency. Dengan mengoptimumkan parameter setiap petunjuk dan menambahkan lebih banyak petunjuk tambahan, diharapkan dapat meningkatkan tahap keuntungan strategi. Strategi ini dapat menjimatkan banyak kos masa operasi manual untuk pengguna, yang patut dikaji dan diterapkan oleh pedagang kuantitatif.

Kod 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)