Strategi arbitrase bilateral berdasarkan indikator TSI dan HMACCI


Tanggal Pembuatan: 2024-01-23 11:26:14 Akhirnya memodifikasi: 2024-01-23 11:26:14
menyalin: 0 Jumlah klik: 575
1
fokus pada
1617
Pengikut

Strategi arbitrase bilateral berdasarkan indikator TSI dan HMACCI

Ringkasan

Strategi ini menggabungkan sinyal perdagangan bilateral dari TSI dan CCI yang disempurnakan, dengan menggunakan metode leasing untuk sering membuka posisi dengan tujuan untuk mengejar keuntungan yang lebih stabil dan berkelanjutan. Logika kunci adalah garpu emas dan garpu mati garis rata-rata cepat dan lambat dari TSI, yang dikombinasikan dengan garis sinyal polygon dari HMACCI untuk menentukan arah jual beli pasar.

Prinsip Strategi

Strategi ini didasarkan pada kombinasi dari dua indikator TSI dan HMACCI.

Indikator TSI terdiri dari satu garis rata-rata cepat dan satu garis rata-rata lambat untuk menilai sinyal jual beli. Ketika garis cepat dari bawah ke atas menerobos garis lambat sebagai sinyal beli, sebaliknya sebagai sinyal jual. Ini dapat menangkap tren perubahan pasar dengan lebih sensitif.

Indikator HMACCI menggunakan Hull Moving Average sebagai pengganti harga itu sendiri berdasarkan indikator CCI tradisional, yang dapat memfilter beberapa kebisingan untuk menilai zona overbought dan oversold. Zona overbought dan oversold dapat mengkonfirmasi kembali arah sinyal indikator TSI.

Logika kunci dari strategi ini adalah menggabungkan hasil penilaian dari kedua indikator ini dan mengatur beberapa kondisi tambahan untuk memfilter sinyal yang salah, seperti harga penutupan pada garis K dan harga tertinggi dan terendah sebelum beberapa siklus, untuk mengontrol kualitas sinyal reversal.

Dalam hal membuka posisi, jika kondisi terpenuhi, setiap kali K baris ditutup, posisi dibuka dengan harga pasar, dan di samping itu melakukan lebih banyak posisi kosong. Dengan demikian, Anda bisa mendapatkan keuntungan yang lebih stabil, tetapi Anda harus menanggung risiko lelang.

Dalam hal stop loss, setelan floating stop loss dan profit all-clear. Hal ini dapat mengontrol risiko perdagangan unilateral dengan baik.

Keunggulan Strategis

Ini adalah strategi arbitrage frekuensi tinggi yang relatif stabil dan dapat diandalkan. Keuntungan utama adalah:

  1. Kombinasi indikator ganda, dapat secara efektif menghindari sinyal palsu
  2. Setiap K-line membuka posisi, sering melakukan operasi arbitrage, keuntungan dan kerugian lebih rata
  3. Logika pembukaan posisi yang ketat dan kondisi stop loss yang dapat mengendalikan risiko
  4. Perbandingan tren dan pertimbangan terbalik, tingkat toleransi yang lebih tinggi
  5. Preferensi tanpa arah, berlaku untuk berbagai situasi pasar
  6. Parameter dapat disesuaikan dengan ukuran ruang dan dapat dioptimalkan untuk varietas yang berbeda

Analisis risiko

Risiko utama yang perlu diperhatikan adalah:

  1. Lebih banyak kerugian biaya proses yang disebabkan oleh transaksi frekuensi tinggi
  2. Kemungkinan untuk tidak terjebak dalam arbitrage
  3. Setting parameter yang tidak tepat dapat menyebabkan terlalu banyak masuk ke lapangan
  4. Kemungkinan kerugian besar yang tidak dapat ditanggung dalam waktu dekat

Risiko dapat dikurangi dengan:

  1. Adaptasi frekuensi penarikan untuk mengurangi biaya proses
  2. Optimalkan parameter indikator untuk memastikan kualitas sinyal
  3. Meningkatkan Stop Loss, Namun Mengambil Lebih Banyak Kerugian
  4. Tes pengaturan parameter varietas yang berbeda

Arah optimasi

Strategi ini masih memiliki banyak ruang untuk dioptimalkan, terutama dalam hal:

  1. Optimasi dan pengujian parameter seperti siklus, durasi, dan lain-lain
  2. Cobalah kombinasi indikator yang berbeda, seperti MACD, BOLL, dan lain-lain
  3. Memodifikasi logika open-output untuk menyetel filter yang lebih ketat
  4. Mengoptimalkan strategi stop loss untuk mencapai stop loss yang dinamis dan terobosan
  5. Mencoba metode pembelajaran mesin untuk mencari parameter yang lebih stabil
  6. Uji coba varietas dan periode perdagangan
  7. Menggunakan indikator untuk mengevaluasi tren dan menghindari pergerakan yang terlalu radikal

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi arbitrage bilateral yang stabil, andal, dan toleransi kesalahan yang tinggi. Strategi ini menggabungkan penilaian tren dan indikator pembalikan untuk mendapatkan keuntungan yang stabil melalui pembukaan posisi bilateral yang sering. Strategi ini sendiri memiliki ruang dan potensi yang kuat untuk dioptimalkan, dan merupakan ide perdagangan frekuensi tinggi yang layak untuk diteliti secara mendalam.

Kode Sumber Strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the suns bipolarity
//©SeaSide420
//@version=4
strategy(title="TSI HMA CCI", default_qty_type=strategy.cash,default_qty_value=1000,commission_type=strategy.commission.percent,commission_value=0.001)
long = input(title="TSI Long Length", type=input.integer, defval=25)
short = input(title="TSI Short Length", type=input.integer, defval=25)
signal = input(title="TSI Signal Length", type=input.integer, defval=13)
length = input(33, minval=1, title="HMACCI Length")
src = input(open, title="Price Source")
ld = input(50, minval=1, title="Line Distance")
CandlesBack = input(8,minval=1,title="Candles Look Back")
StopLoss= input(3000,minval=1, title="Stop Loss")
TargetProfitAll= input(3000,minval=1, title="Target Profit Close All")
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2020,title="FromYear",minval=2020)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true
ul = (ld)
ll = (ld-ld*2)
ma = hma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)*10
tsi_value2=ema(tsi_value/10, signal)*10
cc = color.white
ct = color.new(color.gray, 90)
if cci<ll or cci[1]<ll
    cc:=color.red
if cci>ul or cci[1]>ul
    cc:=color.green
if cci<ul and cci>ll
    cc:=color.new(color.yellow, 90)
ccc = color.white
if cci>ul
    ccc:=color.green
if cci<cci[1] and cci<ul and cci>ll
    ccc:=color.red
if cci<ll
    ccc:=color.red
if cci>cci[1] and cci>ll and cci<ul
    ccc:=color.green
tsiplot= plot(tsi_value, color=color.lime)
tsiplot2=plot(tsi_value2, color=color.red)    
colorchange2 =tsi_value>tsi_value2?color.lime:color.orange
fill(tsiplot, tsiplot2, color=colorchange2, title="TSIBackground", transp=50)
band1 = hline(ul, "Upper Band 1", color=ct, linestyle=hline.style_dashed)
band0 = hline(ll, "Lower Band 1", color=ct, linestyle=hline.style_dashed)
fill(band1, band0, color=cc, title="MidBandBackground", transp=0)
band2 = hline(ul, "Upper Band 2", color=ct, linestyle=hline.style_dashed)
band3 = hline(ll, "Lower Band 2", color=ct, linestyle=hline.style_dashed)
cciplot2 = plot(cci, "CCIvHMA 2", color=color.black, transp=0, linewidth=5)
cciplot = plot(cci, "CCIvHMA", color=ccc, transp=0, linewidth=3)
hline(0, title="Zero")
hline(420, title="420")
hline(-420, title="-420")
fill(cciplot, cciplot2, color=ccc, title="CCIBackground", transp=0)
LongCondition=cci>cci[1] and cci>ll and src>src[CandlesBack] and tsi_value>tsi_value2
ShortCondition=cci<cci[1] and cci<ul and src<src[CandlesBack] and tsi_value<tsi_value2
plotshape(LongCondition, title="BUY", style=shape.circle, location=location.top, color=color.green)
plotshape(ShortCondition, title="SELL", style=shape.circle, location=location.top, color=color.red)
if  strategy.openprofit>TargetProfitAll
    strategy.close_all(when=window(),comment="close all profit target")
if LongCondition and strategy.openprofit>-1
    strategy.order("BUY", strategy.long,when=window())
if ShortCondition and strategy.openprofit>-1
    strategy.order("SELL", strategy.short,when=window())
strategy.exit("SL exit a sell", "SELL", loss = StopLoss,when=window())     
strategy.exit("SL exit a buy", "BUY", loss = StopLoss,when=window())