Smart Quantitative Bottom Reversal Trading Strategy (Strategi Perdagangan Pembaharuan Kuantitatif)

Penulis:ChaoZhang, Tanggal: 2023-12-08 10:45:49
Tag:

img

Gambaran umum

Strategi ini adalah strategi perdagangan pembalikan bawah kuantitatif yang cerdas yang dirancang untuk mata uang kripto. Ini memanfaatkan teknologi multi-frame waktu dan indikator RSI adaptif untuk mengidentifikasi potensi dasar jangka pendek pasar, dan masuk untuk pembalikan di dekat dasar untuk mencapai pengembalian yang berlebihan.

Prinsip Strategi

Pertama, strategi ini menggunakan perubahan harga dan volume perdagangan untuk menghitung indikator RSI adaptif, menilai kemungkinan terendah pasar jangka pendek. Kemudian, dikombinasikan dengan teknologi multi-timeframe, ia mengkonfirmasi sinyal terendah pada jangka waktu yang lebih besar. Sinyal beli dihasilkan ketika garis RSI adaptif melintasi di atas level 0.

Secara khusus, indikator RSI adaptif dihitung sebagai berikut: Pertama menghitung perubahan harga untuk setiap candlestick, kemudian menghitung volume perdagangan candlestick itu. Kalikan dua untuk mendapatkan momentum yang dikuantifikasi untuk candlestick itu. Terapkan perhitungan RSI pada momentum yang dikuantifikasi dan ambil rata-rata periode N untuk mendapatkan indikator RSI adaptif akhir. Indikator ini dapat dengan jelas mengidentifikasi dasar pasar.

Di atas itu, strategi ini menggabungkan teknologi multi-frame untuk menilai sinyal pada jangka waktu yang lebih tinggi, menghindari gangguan dari kebisingan pasar jangka pendek.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini terletak pada identifikasi yang akurat dari dasar pasar jangka pendek menggunakan indikator RSI adaptif, yang memberikan sinyal yang efektif untuk perdagangan pembalikan bawah.

Dibandingkan dengan indikator RSI tradisional, indikator RSI adaptif memperkenalkan momentum kuantifikasi dalam perhitungannya, membuatnya lebih sensitif terhadap pasar cryptocurrency yang berubah dengan cepat, dan karenanya dapat mengidentifikasi dasar lebih awal dan lebih tepat, memberikan awal untuk perdagangan pembalikan dasar.

Selain itu, strategi ini menggabungkan keuntungan dari kedua tren mengikuti dan pembalikan perdagangan. Dalam kondisi pasar yang tidak pasti, ia dapat mendapatkan keuntungan dari pembalikan perdagangan. Dalam pasar bull jelas, ia juga dapat mengikuti tren.

Analisis Risiko

Risiko utama dari strategi ini adalah bahwa keakuratan identifikasi dasar tidak dapat dijamin 100%. Ada fluktuasi irasional yang besar di pasar dalam jangka pendek. Jika dasar meluas lebih jauh ke bawah, risiko stop loss yang besar akan dihadapi.

Selain itu, divergensi dapat terjadi antara kerangka waktu yang berbeda.

Untuk mengendalikan risiko, strategi ini mengadopsi mekanisme stop loss yang relatif konservatif dan mengambil keuntungan dalam batch, secara progresif mengoptimalkan pengembalian.

Arahan Optimasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter RSI adaptif untuk meningkatkan akurasi dalam penilaian dasar pasar.

  2. Tambahkan indikator lain untuk konfirmasi untuk menghindari sinyal palsu, seperti menggabungkan dengan indikator volume dll.

  3. Mengoptimalkan mekanisme stop loss untuk memungkinkan rentang stop loss yang lebih luas sambil memastikan rasio risiko-manfaat yang baik, untuk menangkap lebih banyak keuntungan tren.

  4. Mengoptimalkan pilihan timeframe untuk memastikan keandalan sinyal pada skala yang lebih besar.

  5. Uji strategi ini pada produk cryptocurrency yang berbeda dan pilih yang berkinerja terbaik.

Ringkasan

Strategi trading reversal bottom yang cerdas ini mengidentifikasi potensi bottom jangka pendek dengan menggunakan indikator RSI adaptif dan teknologi multi-frame time. Sifat reversalnya memungkinkan keuntungan yang berlebihan dalam kondisi pasar yang tidak pasti, sementara juga dapat mengikuti tren yang jelas. Dengan optimasi terus-menerus, strategi ini memiliki potensi untuk menghasilkan sinyal trading yang lebih andal dan mencapai keuntungan stabil jangka panjang.


/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Low Scanner strategy crypto", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(10)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("60", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(1)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("60", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
l = crossover(zx,0) or buy
        
if l 
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=10, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=1, minval=0.01)
tp2=input(title=" Take profit2", defval=2, minval=0.01)
tp3=input(title=" Take profit3", defval=3, minval=0.01)
tp4=input(title=" Take profit4", defval=5, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Lebih banyak