
Strategi ini adalah berdasarkan kepada gabungan pelbagai indikator untuk mencari peluang perdagangan dalam jangka masa Bitcoin. Ia menggunakan indikator seperti MACD, RSI, dan Stoch RSI, yang dikombinasikan dengan arah garis rata, untuk menentukan arah trend semasa untuk menghantar isyarat beli dan jual.
Strategi ini menggunakan beberapa indikator berikut:
MACD (快线-慢线)Garis isyaratnya. Apabila MACD melalui garisan isyarat, ia adalah isyarat beli, dan apabila ia melalui 0 ia adalah isyarat jual.
RSI adalah indeks yang agak kuat. Ia adalah isyarat untuk membeli apabila RSI melewati set terowong.
Stoch RSI。 Indeks Stoch RSI mencerminkan keadaan RSI yang berlebih-lebihan. Apabila Stoch RSI berada di bawah paras set, ia memberi isyarat untuk membeli, dan apabila ia berada di atas paras set, ia memberi isyarat untuk menjual。
Arah garisan rata-rata memberi isyarat menjual apabila garisan rata-rata di bawah harga tutup
Berdasarkan indikator ini, isyarat perdagangan untuk strategi ini adalah seperti berikut:
Isyarat untuk membeliApabila:(Stoch RSI < 设定阈值) 且 (MACD上穿阈值 或 RSI上穿阈值)semasa
Jual isyaratApabila:(MACD下穿0) 且 (收盘价下穿均线 或 Stoch RSI > 设定阈值)semasa
Dengan menggunakan pelbagai petunjuk dalam kombinasi, anda boleh menilai arah trend semasa dengan lebih tepat dan memberi isyarat perdagangan pada titik perubahan trend.
Penggunaan pelbagai indikator dalam kombinasi dapat meningkatkan ketepatan penghakiman dan mengelakkan isyarat salah yang disebabkan oleh indikator tunggal.
Penunjuk MACD dapat menilai arah dan kekuatan trend semasa. Penunjuk RSI mencerminkan keadaan overbought dan oversold. RSI Sttoch menilai keadaan overbought dan oversold RSI. Garis rata menilai arah trend semasa.
Sinyal beli dan jual menetapkan syarat gabungan beberapa indikator, yang boleh menyaring beberapa isyarat palsu dan mengelakkan perdagangan yang tidak perlu.
Retrospeksi strategi ini bermula pada 1 Januari 2017 dan merangkumi situasi di mana Bitcoin meningkat dengan ketara pada akhir tahun 2017 untuk memeriksa bagaimana strategi ini berfungsi dalam keadaan tersebut.
Strategi ini mengandungi tetapan stop loss yang dapat mengawal kerugian dalam satu transaksi.
Walaupun kombinasi pelbagai petunjuk dapat meningkatkan ketepatan, perbezaan antara petunjuk juga boleh menyebabkan risiko kesalahan penilaian.
Tahap stop loss yang dioptimumkan oleh strategi mungkin perlu disesuaikan mengikut keadaan yang berbeza. Stop loss yang terlalu lebar akan meningkatkan kerugian tunggal, dan stop loss yang terlalu ketat akan dikeluarkan.
Strategi peringkat garisan hari, tidak dapat melakukan operasi terperinci dalam jangka masa yang lebih singkat. Tidak dapat bertindak balas apabila kejadian mendadak menyebabkan turun naik besar dalam jangka pendek.
Strategi hanya mengkaji semula sebahagian daripada sejarah, dan mungkin ada risiko overadaptasi. Ujian perlu dilakukan dalam jangka masa yang lebih lama dan lebih banyak pasaran untuk mengesahkan keberkesanan strategi.
Uji kombinasi lebih banyak indikator untuk mencari strategi gabungan pelbagai indikator yang lebih baik.
Optimumkan parameter penunjuk untuk mencari nilai parameter yang lebih sesuai.
Uji tahap kerugian yang berbeza untuk mencari kombinasi terbaik antara kadar kerugian dan kerugian.
Untuk mengkaji semula sejarah yang lebih panjang, elakkan over-fitting.
Cuba gunakan strategi ini pada jangka masa yang lebih tinggi untuk berdagang lebih kerap.
Strategi ini menghasilkan keputusan yang baik dengan menggabungkan beberapa indikator seperti MACD, RSI, Stoch RSI, dan lain-lain untuk menentukan arah trend semasa di peringkat garis harian Bitcoin, dan menghantar isyarat perdagangan pada titik perubahan trend. Strategi ini mempunyai prestasi yang baik, tetapi masih perlu diuji dalam jangka masa yang lebih lama dan lebih banyak pasaran untuk mengelakkan risiko penyesuaian.
/*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)