Sumber daya yang dimuat... Pemuatan...

Strategi Perdagangan Jangka Pendek Bitcoin Berdasarkan Indeks Kekuatan Sejati

Penulis:ChaoZhang, Tanggal: 2023-10-07 15:12:08
Tag:

Gambaran umum

Strategi ini mengidentifikasi tren pasar bitcoin dengan menghitung Indeks Kekuatan Sejati (TSI) dan memasukkan posisi panjang / pendek yang disaring oleh indikator RSI untuk menerapkan perdagangan algoritmik bitcoin.

Logika Strategi

Inti dari strategi ini adalah Indeks Kekuatan Sejati (TSI). TSI mengukur besar mutlak dan arah perubahan harga dengan meratakan dua kali persentase perubahan harga, sehingga mengidentifikasi kekuatan mutlak pergerakan harga naik dan turun.

  1. Menghitung persentase perubahan harga Pc
  2. Double smooth Pc menggunakan EMA jangka panjang dan EMA jangka pendek untuk menghasilkan double_smoothed_pc
  3. Double smooth nilai mutlak dari Pc untuk menghasilkan double_smoothed_abs_pc
  4. Nilai TSI sama dengan double_smoothed_pc dibagi double_smoothed_abs_pc dikalikan dengan 100

Ketika TSI melintasi garis sinyalnya tsi2, sinyal panjang dihasilkan. Ketika TSI melintasi di bawah tsi2, sinyal pendek dihasilkan. Selain itu, strategi ini memfilter sinyal TSI dengan RSI - hanya mengambil sinyal panjang ketika RSI di atas 50 dan sinyal pendek ketika RSI di bawah 50, untuk menghindari beberapa sinyal palsu.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. TSI dapat mendeteksi kekuatan mutlak dan arah pergerakan harga, dan sensitif dalam menangkap tren.
  2. EMA ganda merata laju perubahan harga dan tahan terhadap kebisingan pasar dan lonjakan.
  3. Filter RSI juga menghindari perdagangan yang salah karena kebisingan.
  4. Perdagangan jangka pendek memungkinkan untuk menangkap peluang sementara di pasar.
  5. Strategi ini memiliki ruang penyesuaian parameter yang besar untuk optimasi, seperti periode EMA, parameter RSI dll.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Sebagai indikator yang mengikuti tren, TSI memiliki emisi yang tertinggal dan mungkin melewatkan titik pembalikan harga.
  2. Kondisi filter RSI terlalu ketat dan mungkin kehilangan beberapa peluang perdagangan.
  3. Filter EMA ganda juga dapat menyaring beberapa sinyal yang valid.
  4. Frekuensi perdagangan jangka pendek yang tinggi membawa biaya perdagangan yang lebih tinggi dan risiko slippage.

Emission yang tertinggal dan efek filter dapat dikurangi dengan melonggarkan aturan filter RSI dan memperpendek periode EMA. Strategi stop loss yang tepat harus digunakan untuk mengendalikan risiko per perdagangan secara ketat.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter TSI dan RSI untuk menemukan kombinasi terbaik.

  2. Memperkenalkan lebih banyak indikator teknis untuk membangun model multifaktor. MA, KD dll dapat ditambahkan untuk memanfaatkan setiap indikator.

  3. Optimalkan aturan masuk untuk menghindari panjang dalam tren menurun dan pendek dalam tren naik.

  4. Mengoptimalkan strategi stop loss seperti trailing stop loss, stop loss berbasis waktu, stop loss breakout dll.

  5. Mengoptimalkan aturan keluar untuk menghindari keluar prematur atau terlambat.

  6. Mengoptimalkan produk perdagangan, sesi perdagangan untuk fokus pada yang paling efektif.

Kesimpulan

Strategi ini mengidentifikasi tren jangka pendek bitcoin dengan True Strength Index dan menyaring sinyal dengan RSI untuk perdagangan bitcoin algoritmik. Ini memiliki keuntungan menangkap tren secara sensitif dan menyaring kebisingan, tetapi juga memiliki beberapa masalah yang tertinggal dan risiko perdagangan. Optimasi multi-faceted dapat lebih meningkatkan kinerja strategi untuk mengembangkan penasihat ahli perdagangan bitcoin yang dapat diandalkan.


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


// strategy("True Strength Indicator BTCUSD 15p", shorttitle="TSI BTCUSD 15p",initial_capital=1000, commission_value=0.15, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)

//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe",  defval="15" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)
price = request.security(syminfo.tickerid,resCustom,close)


double_smooth(src, long, short) =>
    fist_smooth = ta.ema(src, long)
    ta.ema(fist_smooth, short)
pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2=ta.ema(tsi_value, signal)
plot(tsi_value, color=color.lime,linewidth=2)
plot(tsi2, color=color.red,linewidth=2)




rsiserie = ta.rsi(price,7)
cciserie = ta.cci(price,14)
stochserie = ta.stoch(price,14,3,3)

plot(rsiserie,color=color.purple)



hline(30, title="Zero")
hline(50, title="Zero",linestyle=hline.style_solid, linewidth=2)
hline(70, title="Zero")

buy = ta.crossover(tsi_value, tsi2) //and rsiserie[1]<25 //and cciserie<-100 and stochserie<20
sell = ta.crossunder(tsi_value, tsi2) //and rsiserie[1]>85 //and cciserie>100 and stochserie>80


alertcondition(buy, title='TSI system', message='Buy signal at!' )
alertcondition(sell, title='TSI system', message='Sell signal at!' )

strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell ) 

greentsi =tsi_value
redtsi = tsi2

bgcolor( greentsi>redtsi and rsiserie > 50 ? color.lime : na, transp=90)
bgcolor( greentsi<redtsi and rsiserie < 50 ? color.red : na, transp=90)

yellow1= redtsi > greentsi and rsiserie > 50 
yellow2 = redtsi < greentsi and rsiserie < 50 
bgcolor( yellow1 ? yellow : na, transp=80)
bgcolor( yellow2  ? yellow : na, transp=50)

bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
bgcolor( yellow2  and yellow2[2] ? yellow : na, transp=70)

bgcolor( rsiserie > 70 ? color.lime : na, transp=60)
bgcolor( rsiserie < 30  ? color.red : na, transp=60)


Lebih banyak