Strategi ini terutamanya berdasarkan gabungan penunjuk TSI dan HMACCI.
Indikator TSI mengandungi purata bergerak pantas dan perlahan untuk menentukan isyarat perdagangan. Apabila garis pantas memecahkan garis perlahan ke atas, ia adalah isyarat beli, dan sebaliknya untuk isyarat jual. Ini dapat menangkap perubahan dalam trend pasaran dengan lebih sensitif.
Indikator HMACCI adalah berdasarkan penunjuk CCI tradisional yang menggunakan Hull Moving Average dan bukannya harga itu sendiri, yang boleh menapis beberapa bunyi bising dan menilai zon overbought dan oversold. Zon overbought dan oversold dapat mengesahkan arah isyarat penunjuk TSI.
Logik utama strategi ini adalah untuk menggabungkan penilaian kedua-dua penunjuk ini dan menetapkan beberapa syarat tambahan untuk menapis isyarat palsu, seperti memeriksa harga penutupan bar terdahulu dan harga maksimum dan minimum dalam beberapa tempoh untuk mengawal kualiti isyarat pembalikan.
Untuk membuka kedudukan, jika syarat dipenuhi, pesanan pasaran diletakkan setiap kali bar ditutup, pergi lama dan pendek.
Untuk mengambil keuntungan dan menghentikan kerugian, pembiakan berhenti rugi terapung dan menutup semua pesanan apabila mencapai keuntungan sasaran ditetapkan.
Ini adalah strategi lindung nilai frekuensi tinggi yang agak stabil dan boleh dipercayai.
Risiko utama yang perlu diperhatikan ialah:
Risiko boleh dikurangkan melalui:
Masih ada ruang yang besar untuk mengoptimumkan strategi ini, terutamanya:
Secara keseluruhan, strategi ini adalah strategi lindung nilai yang stabil dan boleh dipercayai dengan toleransi ralat yang tinggi. Ia menggabungkan indikator trend dan pembalikan, memperoleh pulangan yang stabil melalui perdagangan dua arah yang kerap. Juga, strategi itu sendiri mempunyai potensi yang kuat untuk pengoptimuman, dan mewakili idea perdagangan frekuensi tinggi yang berbaloi untuk diteliti lebih lanjut.
/*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())