Strategi ini mencoba mengidentifikasi peluang jangka pendek di mana Bitcoin cenderung bangkit dengan mencari pola divergensi bullish dalam indikator RSI, dan dengan demikian menentukan titik masuk yang baik untuk perdagangan panjang.
Mengidentifikasi divergensi bullish dengan indikator RSI
Periksa apakah nilai RSI di bawah ambang batas
Periksa apakah harga penutupan di bawah divergensi rendah sebelumnya
Mendefinisikan kondisi stop loss exit
Mendefinisikan kondisi keluar dari keuntungan
Menggunakan divergensi RSI dapat secara efektif menangkap peluang untuk harga bounce jangka pendek
Menggabungkan dengan ambang rendah RSI membantu menentukan titik masuk tertentu
Stop loss dan mengambil keuntungan pengaturan membantu mengelola risiko dan imbalan
Strategi ini merujuk banyak pengalaman perdagangan nyata dengan sinyal Bitcoin RSI dan sangat cocok untuk Bitcoin scalping panjang
Pengaturan parameter yang wajar membuat strategi dapat disesuaikan dengan kondisi pasar yang berbeda dan baik untuk perdagangan langsung
Divergensi RSI mungkin gagal, menyebabkan kehilangan perdagangan jika diidentifikasi secara salah
Sebuah indikator tunggal cenderung menghasilkan sinyal palsu, harus dikombinasikan dengan yang lain
Perlu memilih nilai parameter yang tepat, pengaturan yang tidak tepat mempengaruhi profitabilitas
Perdagangan panjang perlu mempertimbangkan tren keseluruhan, menghindari perdagangan melawan tren
Perlu berhati-hati terhadap biaya perdagangan, perdagangan frekuensi tinggi mempengaruhi keuntungan
Harus backtest dan mengoptimalkan parameter secara teratur berdasarkan perubahan pasar
Pertimbangkan untuk menambahkan indikator lain seperti moving average untuk kondisi filter untuk mengurangi sinyal palsu
Uji pengaturan periode yang berbeda pada setiap kerangka waktu untuk menemukan kombinasi optimal
Menggabungkan analisis tren jangka waktu yang lebih tinggi untuk menghindari pembelian terhadap pembalikan tren
Mengimplementasikan stop loss dinamis yang secara bertahap meningkatkan stop saat tingkat keuntungan meningkat
Sesuaikan persentase stop loss berdasarkan ukuran posisi tertentu
Memperkenalkan pembelajaran mesin untuk optimasi parameter otomatis
Strategi ini bertujuan untuk mengidentifikasi peluang bouncing jangka pendek Bitcoin dengan mendeteksi divergensi bullish RSI dan menentukan titik masuk panjang yang baik. Strategi ini sederhana dan efektif, menggabungkan banyak pengalaman perdagangan praktis, menjadikannya sangat cocok untuk scalping Bitcoin. Namun, ketergantungan pada satu indikator cenderung menghasilkan sinyal palsu, sehingga harus dikombinasikan dengan indikator lain. Perhatian juga harus diberikan pada optimasi parameter, penempatan stop loss, biaya perdagangan, dll. Jika digunakan dengan benar, strategi ini dapat sangat menguntungkan dalam perdagangan langsung.
/*backtest start: 2023-11-02 00:00:00 end: 2023-11-09 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bullish Divergence Short-term Long Trade Finder", overlay=false) max_range = 50 min_range = 5 ///pivot_left = 25 pivot_right = 5 //Inputs src = input(close, title="Source") rsiBearCondMin = input.int(50, title="RSI Bearish Condition Minimum") rsiBearCondSellMin = input.int(60, title="RSI Bearish Condition Sell Min") rsiBullCondMin = input.int(40, title="RSI Bull Condition Minimum") pivot_left = input.int(25, title="Look Back this many candles") SellWhenRSI = input.int(75, title="RSI Sell Value") StopLossPercent = input.int(5, title="Stop loss Percentage") rsiPeriod = input.int(14, title="RSI Length") rsiOversold = input.int(30, title="RSI Oversold Level") rsiOverbought = input.int(70, title="RSI Overbought Level") //RSI Function/ value rsi_value = ta.rsi(src, rsiPeriod) rsi_hour = request.security(syminfo.tickerid,'60',rsi_value) rsi_4hour = request.security(syminfo.tickerid,'240',rsi_value) rsi_Day = request.security(syminfo.tickerid,'D',rsi_value) plot(rsi_value, title="RSI", linewidth = 2, color = color.black, display =display.all) hline(50, linestyle = hline.style_dotted) rsi_ob = hline(70, linestyle=hline.style_dotted) rsi_os = hline(30, linestyle=hline.style_dotted) fill(rsi_ob, rsi_os, color.white) SL_percent = (100-StopLossPercent)/100 pivot_low_true = na(ta.pivotlow(rsi_value, pivot_left, pivot_right)) ? false : true //create a function that returns truee/false confirm_range(x) => bars = ta.barssince(x == true) //counts the number of bars since thee last time condition was true min_range <= bars and bars <= max_range // makees sure bars is less than max_range(50) and greater than min_range(5) // RSI higher check / low check RSI_HL_check = rsi_value<rsiBullCondMin and rsi_value > ta.valuewhen(pivot_low_true and rsi_value<rsiBullCondMin, rsi_value,1) and confirm_range(pivot_low_true[1]) // price check for lower low price_ll_check = low < ta.valuewhen(pivot_low_true, low, 1) bullCond = price_ll_check and RSI_HL_check and pivot_low_true //pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true pivot_high_true = na(ta.pivothigh(rsi_value, pivot_left, pivot_right)) ? false : true // RSI Lower check / high check ensuring that the RSI dips below 30 to start divergence RSI_LH_check = rsi_value < ta.valuewhen(pivot_high_true and rsi_value>rsiBearCondMin, rsi_value,1) and confirm_range(pivot_high_true[1]) //and rsi_value[pivot_right] >= 65 // price check for lower low price_hh_check = high > ta.valuewhen(pivot_high_true, high, 1) bearCond = price_hh_check and RSI_LH_check and pivot_high_true and rsi_value[3] > rsiBearCondSellMin plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bullCond ? color.green : color.new(color.white, 100))) plotshape(bullCond ? rsi_value : na , text = "BUY", style = shape.labelup, location = location.absolute, color = color.green, offset =0, textcolor = color.white ) plot(pivot_low_true ? rsi_value : na, offset=-5, linewidth=3, color=(bearCond ? color.red : color.new(color.white, 100))) plotshape(bearCond ? rsi_value : na , text = "Sell", style = shape.labelup, location = location.absolute, color = color.red, offset =0, textcolor = color.white ) //[bbUpperBand, bbMiddleBand, bbLowerBand] = ta.bb(src, bbPeriod, bbDev) //Entry Condition longCondition = false //bullEntry = bullCond and RSI_HL_check and confirm_range(pivot_low_true[1]) if bullCond and close < ta.valuewhen(pivot_low_true, low, 1) and rsi_hour <40 ///and rsi_4hour<40 //and rsi_Day<50 strategy.entry("Long", strategy.long) //Exit Condition if (strategy.position_size > 0 and close < strategy.position_avg_price*SL_percent) strategy.close("Long") if (strategy.position_size > 0 and (rsi_value > SellWhenRSI or bearCond)) strategy.close("Long")