
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.
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.
Ini adalah strategi arbitrage frekuensi tinggi yang relatif stabil dan dapat diandalkan. Keuntungan utama adalah:
Risiko utama yang perlu diperhatikan adalah:
Risiko dapat dikurangi dengan:
Strategi ini masih memiliki banyak ruang untuk dioptimalkan, terutama dalam hal:
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.
/*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())