Strategi perdagangan harian Bitcoin berdasarkan beberapa indikator


Tanggal Pembuatan: 2023-10-30 10:37:58 Akhirnya memodifikasi: 2023-10-30 10:37:58
menyalin: 0 Jumlah klik: 728
1
fokus pada
1617
Pengikut

Strategi perdagangan harian Bitcoin berdasarkan beberapa indikator

Ringkasan

Strategi ini didasarkan pada kombinasi dari beberapa indikator untuk mencari peluang perdagangan dalam jangka waktu Bitcoin. Indikator MACD, RSI, dan Stoch RSI digunakan untuk menentukan arah tren saat ini, dan untuk memberi sinyal beli dan jual.

Prinsip Strategi

Strategi ini didasarkan pada beberapa indikator berikut:

  1. MACD (快线-慢线)Garis sinyalnya. Ketika MACD melewati garis sinyal, itu adalah sinyal beli, dan saat melewati 0 adalah sinyal jual.

  2. Indeks RSI relatif kuat lemah. Sebagai sinyal beli ketika RSI melewati set threshold.

  3. Stoch RSI。 Indikator Stoch RSI mencerminkan kondisi overbought dan oversold RSI。 Ketika Stoch RSI berada di bawah seting threshold sebagai sinyal beli, dan di atas seting threshold sebagai sinyal jual。

  4. Ke arah garis rata-rata. Ketika harga tutup di bawah garis rata-rata, sinyal jual.

Berdasarkan indikator-indikator tersebut, sinyal perdagangan strategi ini adalah sebagai berikut:

Sinyal pembelianKetika:(Stoch RSI < 设定阈值) 且 (MACD上穿阈值 或 RSI上穿阈值)saat

Menjual sinyalKetika:(MACD下穿0) 且 (收盘价下穿均线 或 Stoch RSI > 设定阈值)saat

Dengan menggunakan kombinasi dari beberapa indikator, Anda dapat dengan lebih akurat menilai arah tren saat ini dan mengirimkan sinyal perdagangan pada titik-titik perubahan tren.

Keunggulan Strategis

  1. Kombinasi menggunakan beberapa indikator dapat meningkatkan akurasi penilaian dan menghindari sinyal yang salah yang disebabkan oleh satu indikator.

  2. Indikator MACD dapat menilai arah dan kekuatan tren saat ini. Indikator RSI mencerminkan overbought dan oversold. Indikator Stoch RSI menilai overbought dan oversold RSI. Indikator rata-rata menilai arah tren saat ini.

  3. Sinyal beli dan jual mengatur kombinasi dari beberapa indikator, yang dapat memfilter beberapa sinyal palsu dan menghindari transaksi yang tidak perlu.

  4. Retrospeksi strategi ini dimulai pada tanggal 1 Januari 2017, dan mencakup situasi di mana Bitcoin mengalami kenaikan besar pada akhir 2017, yang dapat menguji kinerja strategi dalam situasi tersebut.

  5. Strategi ini mencakup pengaturan stop loss yang dapat mengontrol kerugian dalam satu transaksi.

Risiko Strategis

  1. Kombinasi dari beberapa indikator dapat meningkatkan akurasi, tetapi juga dapat menimbulkan perbedaan antara indikator, yang menyebabkan risiko kesalahan penilaian.

  2. Tingkat stop loss yang dioptimalkan untuk strategi, mungkin perlu disesuaikan dengan situasi yang berbeda. Stop loss yang terlalu lebar akan meningkatkan kerugian tunggal, dan stop loss yang terlalu sempit akan dihapus.

  3. Strategi tingkat garis waktu, tidak dapat melakukan operasi rinci dalam jangka waktu yang lebih singkat. Tidak dapat bertindak sebagai respons ketika kejadian mendadak menyebabkan fluktuasi besar dalam jangka pendek.

  4. Strategi hanya memantau sebagian dari sejarah, dan mungkin ada risiko over-adaptasi. Perlu diuji dalam jangka waktu yang lebih lama dan di lebih banyak pasar untuk memverifikasi efektivitas strategi.

Arah optimasi

  1. Tes lebih banyak kombinasi indikator untuk menemukan strategi kombinasi multi-indikator yang lebih baik.

  2. Optimalkan parameter indikator untuk menemukan nilai parameter yang lebih sesuai.

  3. Uji berbagai tingkat stop loss untuk menemukan kombinasi optimal dari stop loss dan stop loss ratio.

  4. Untuk menghindari over-fitting, periksa kembali dalam konteks sejarah yang lebih panjang.

  5. Cobalah untuk menerapkan strategi ini pada rentang waktu yang lebih tinggi dan melakukan transaksi yang lebih sering.

Meringkaskan

Strategi ini menggunakan kombinasi dari beberapa indikator seperti MACD, RSI, dan Stoch RSI untuk menentukan arah tren saat ini di tingkat garis harian Bitcoin dan mengirimkan sinyal perdagangan pada titik perubahan tren. Strategi ini memberikan hasil yang baik, tetapi masih perlu diuji dalam waktu yang lebih lama dan di lebih banyak pasar untuk menghindari risiko adaptasi.

Kode Sumber Strategi
/*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)