Perbezaan Bullish Strategi Pencari Perdagangan Jangka Pendek

Penulis:ChaoZhang, Tarikh: 2023-11-10 11:37:37
Tag:

img

Ringkasan

Strategi ini cuba mengenal pasti peluang jangka pendek di mana Bitcoin mungkin akan bangkit dengan mencari corak perbezaan menaik dalam penunjuk RSI, dan dengan itu menentukan titik masuk yang baik untuk perdagangan panjang.

Logika Strategi

  1. Mengenal pasti perbezaan menaik dengan penunjuk RSI

    • Menentukan parameter RSI (default 14 tempoh)
    • Mengira nilai RSI semasa
    • Periksa sama ada perbezaan menaik berikut wujud:
      • RSI membentuk rendah bawah
      • Harga terbentuk rendah yang lebih rendah pada masa yang sama
      • RSI kemudian membentuk rendah yang lebih tinggi
      • Harga kemudian membentuk yang lebih rendah
  2. Periksa sama ada nilai RSI di bawah ambang

    • Menentukan ambang rendah RSI (default 40)
    • Jika RSI semasa di bawah ambang ini, ia mungkin menandakan titik masuk panjang
  3. Periksa sama ada harga penutupan di bawah divergensi rendah sebelumnya

    • Jika ya, mengesahkan lebih lanjut isyarat pembelian perbezaan menaik
  4. Menentukan syarat keluar stop loss

    • Set stop loss peratusan (default 5%)
    • Keluar jika penggunaan mencapai peratusan ini
  5. Menentukan syarat keluar keuntungan

    • Tetapkan ambang tinggi RSI (default 75)
    • Keluar jika RSI meningkat di atas ambang ini

Analisis Kelebihan

  1. Menggunakan perbezaan RSI dapat menangkap peluang untuk lompatan harga jangka pendek

  2. Menggabungkan dengan ambang rendah RSI membantu menentukan titik masuk tertentu

  3. Tetap kehilangan dan mengambil keuntungan tetapan membantu menguruskan risiko dan ganjaran

  4. Strategi ini merujuk banyak pengalaman perdagangan sebenar dengan isyarat Bitcoin RSI dan sangat sesuai untuk Bitcoin scalping panjang

  5. Tetapan parameter yang munasabah menjadikan strategi disesuaikan dengan keadaan pasaran yang berbeza dan baik untuk perdagangan langsung

Analisis Risiko

  1. Perbezaan RSI mungkin gagal, yang membawa kepada kehilangan perdagangan jika dikenal pasti dengan salah

  2. Satu penunjuk tunggal cenderung menghasilkan isyarat palsu, harus digabungkan dengan yang lain

  3. Perlu memilih nilai parameter yang betul, tetapan yang tidak betul mempengaruhi keuntungan

  4. Dagangan panjang perlu mempertimbangkan trend keseluruhan, mengelakkan perdagangan terhadap trend

  5. Perlu berhati-hati dengan kos dagangan, perdagangan frekuensi tinggi memberi kesan kepada keuntungan

  6. Harus backtest dan mengoptimumkan parameter secara berkala berdasarkan pasaran yang berubah

Arahan pengoptimuman

  1. Pertimbangkan untuk menambah penunjuk lain seperti purata bergerak untuk keadaan penapis untuk mengurangkan isyarat palsu

  2. Uji tetapan tempoh yang berbeza pada setiap bingkai masa untuk mencari kombinasi yang optimum

  3. Menggabungkan analisis trend jangka masa yang lebih tinggi untuk mengelakkan pembelian terhadap pembalikan trend

  4. Melaksanakan stop loss dinamik yang secara beransur-ansur menaikkan berhenti apabila tahap keuntungan meningkat

  5. Sesuaikan peratusan stop loss berdasarkan saiz kedudukan tertentu

  6. Memperkenalkan pembelajaran mesin untuk pengoptimuman parameter automatik

Kesimpulan

Strategi ini bertujuan untuk mengenal pasti peluang lompatan jangka pendek Bitcoin dengan mengesan perbezaan bullish RSI dan menentukan titik masuk panjang yang baik. Strategi ini mudah dan berkesan, menggabungkan banyak pengalaman perdagangan praktikal, menjadikannya sangat sesuai untuk jangka panjang scalping Bitcoin. Walau bagaimanapun, bergantung pada satu penunjuk cenderung menghasilkan isyarat palsu, jadi ia harus digabungkan dengan penunjuk lain. Perhatian juga harus diberikan kepada pengoptimuman parameter, penempatan stop loss, kos dagangan, dll. Jika digunakan dengan betul, strategi ini boleh 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")


Lebih lanjut