Strategi Perdagangan Bitcoin Harian Multi-Indikator

Penulis:ChaoZhang, Tanggal: 2023-10-30 10:37:58
Tag:

img

Gambaran umum

Strategi ini menggabungkan beberapa indikator untuk mengidentifikasi peluang perdagangan dalam kerangka waktu harian untuk Bitcoin. Ini terutama menggunakan indikator seperti MACD, RSI, Stoch RSI, bersama dengan arah moving average untuk menentukan arah tren saat ini untuk menghasilkan sinyal beli dan jual.

Logika Strategi

Strategi ini menggunakan indikator kunci berikut:

  1. MACD (Fast MA - Slow MA) dan garis sinyalnya.

  2. RSI (Relative Strength Index). RSI melintasi batas memberikan sinyal beli.

  3. Stoch RSI. Stoch RSI menunjukkan tingkat overbought/oversold dari RSI. Stoch RSI di bawah ambang batas memberikan sinyal beli, sedangkan di atas ambang batas memberikan sinyal jual.

  4. Gerak rata-rata arah. harga penutupan penyeberangan di bawah MA memberi sinyal jual.

Menurut indikator ini, sinyal perdagangan adalah:

Sinyal Beli: Kapan(Stoch RSI < Threshold) AND (MACD crossing above threshold OR RSI crossing above threshold)

Jual Sinyal: Kapan(MACD crossing below 0) AND (Close below MA OR Stoch RSI > Threshold)

Menggunakan beberapa indikator bersama-sama dapat lebih baik menentukan arah tren saat ini dan mengidentifikasi titik pembalikan tren untuk memasuki perdagangan.

Keuntungan

  1. Menggabungkan beberapa indikator meningkatkan akurasi dan menghindari sinyal palsu dari satu indikator.

  2. MACD menunjukkan arah dan kekuatan tren. RSI mencerminkan tingkat overbought/oversold. RSI saham menentukan overbought/oversold dari RSI. MA menunjukkan arah tren. Indikator ini saling memverifikasi.

  3. Sinyal beli/jual membutuhkan kombinasi dari beberapa indikator, menyaring beberapa sinyal palsu dan menghindari perdagangan yang tidak perlu.

  4. Backtest dimulai dari 2017/1/1, yang mencakup bull run besar Bitcoin pada akhir tahun 2017.

  5. Stop loss diatur untuk mengendalikan kerugian dalam perdagangan tunggal.

Risiko

  1. Meskipun menggunakan beberapa indikator meningkatkan akurasi, perbedaan di antara mereka masih dapat menyebabkan beberapa sinyal yang salah.

  2. Tingkat stop loss yang dioptimalkan mungkin memerlukan penyesuaian untuk situasi pasar yang berbeda. Stop loss yang terlalu luas meningkatkan kerugian dalam perdagangan tunggal, sementara yang terlalu ketat dapat dihentikan terlalu dini.

  3. Jangka waktu harian mencegah operasi rinci dalam rentang waktu yang lebih pendek.

  4. Strategi hanya backtested pada data sejarah terbatas. risiko overfit ada. membutuhkan pengujian lebih lanjut di jangka waktu yang lebih lama dan lebih banyak pasar.

Peluang Peningkatan

  1. Uji lebih banyak kombinasi indikator untuk menemukan strategi multi-indikator yang optimal.

  2. Mengoptimalkan parameter indikator untuk nilai yang lebih baik.

  3. Uji tingkat stop loss yang berbeda untuk menemukan rasio risiko / imbalan optimal.

  4. Melakukan backtest di data historis yang lebih lama untuk menghindari overfit.

  5. Jelajahi penerapan logika strategi dalam kerangka waktu frekuensi yang lebih tinggi untuk perdagangan yang lebih sering.

Kesimpulan

Strategi ini menggabungkan MACD, RSI, Stoch RSI dan indikator lain untuk menentukan arah tren harian bitcoin dan mengidentifikasi pembalikan tren untuk masuk perdagangan. Stop loss diatur untuk mengendalikan risiko perdagangan. Backtest menunjukkan hasil positif tetapi masih membutuhkan verifikasi lebih lanjut dalam jangka waktu yang lebih lama dan lebih banyak pasar untuk menghindari risiko overfit. Optimasi lebih lanjut pada parameter indikator dan stop loss / take profit level dapat meningkatkan hasil. Strategi ini memberikan gagasan awal pendekatan kombinasi multi-indikator yang layak eksplorasi dan peningkatan yang lebih dalam.


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

//@version=4
// Original code is from CredibleHulk and modified by bennef
strategy("BTC Daily Strategy BF", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)

/////////////// Time Frame ///////////////
testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

/////////////// Input Params /////////////// 
rsi_threshold = input(30)
rsi_length = input(4)
srsi_length = input(8)
srsi_smooth = input(4)
srsi_sell_threshold = input(57)
length = input(14)
dma_signal_threshold = input(-1)
fastLength = input(11)
slowlength = input(18)
MACDLength = input(6)
MACD_signal_threshold = input(-2)
short_loss_tol = input(5)
long_loss_tol = input(5)

stop_level_long = strategy.position_avg_price * (1 - long_loss_tol / 100.0)
stop_level_short = strategy.position_avg_price * (1 + short_loss_tol / 100.0)
    
///////////////  Signal generation ///////////////
// MACD 
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// RSI and Stochastic RSI 
rs = rsi(close, rsi_length)
k = sma(stoch(rs, rs, rs, srsi_length), srsi_smooth)

// SMA 
norm = sma(ohlc4, length)
threshold = close - norm   

/////////////// Strategy ///////////////
long = ((crossover(delta, MACD_signal_threshold) or crossover(rs, rsi_threshold)) and k < srsi_sell_threshold)
short = (crossunder(delta, 0) or (crossunder(threshold, dma_signal_threshold) and k > srsi_sell_threshold))

if testPeriod()
    strategy.entry("L", strategy.long, when = long)
    strategy.entry("S", strategy.short, when = short)
    strategy.exit("stop loss L", from_entry = "L", stop = stop_level_long)
    strategy.exit("stop loss S", from_entry = "S", stop = stop_level_short)

/////////////// Plotting ///////////////
// MACD
plot(delta, color = delta > MACD_signal_threshold ? color.lime : delta < 0 ? color.red : color.yellow)
MACD_signal_threshold_line = hline(MACD_signal_threshold, color = color.yellow, title = "MACD Signal Threshold")

// RSI
plot(rs, color = rs > rsi_threshold ? color.lime : color.fuchsia)
rsi_threshold_line = hline(rsi_threshold, color = color.fuchsia, title = "RSI Threshold")

// Stochastic RSI 
plot(k, color = k > srsi_sell_threshold ? color.lime : color.red)
srsi_sell_threshold_line = hline(srsi_sell_threshold, color = color.white, title = "Stoch RSI Threshold")

// SMA
plot(threshold / 100, color = threshold < dma_signal_threshold ? color.red : color.blue)
dma_signal_threshold_line = hline (dma_signal_threshold, color = color.blue, title = "DMA Signal Threshold")

bgcolor(long ? color.lime : short ? color.red : na, transp=50)

Lebih banyak