Strategi ini menggabungkan sinyal perdagangan bilateral dari TSI dan indikator CCI yang ditingkatkan, dan mengadopsi pendekatan lindung nilai untuk posisi yang sering dibuka dan ditutup, bertujuan untuk mengejar keuntungan berkelanjutan yang lebih stabil. Logika utama adalah salib emas dan salib mati dari rata-rata bergerak cepat dan lambat dari indikator TSI, dikombinasikan dengan sinyal beli dan jual dari indikator HMACCI untuk menentukan arah pasar. Risiko dikendalikan dengan membatasi kondisi pembukaan, sementara logika stop loss dan take profit ditetapkan.
Strategi ini terutama didasarkan pada kombinasi indikator TSI dan HMACCI.
Indikator TSI berisi rata-rata bergerak cepat dan lambat untuk menentukan sinyal perdagangan. Ketika garis cepat menembus garis lambat ke atas, itu adalah sinyal beli, dan sebaliknya untuk sinyal jual. Ini dapat menangkap perubahan tren pasar dengan lebih sensitif.
Indikator HMACCI didasarkan pada indikator CCI tradisional yang menggunakan Hull Moving Average bukan harga itu sendiri, yang dapat menyaring beberapa kebisingan dan menilai zona overbought dan oversold.
Logika utama dari strategi ini adalah untuk menggabungkan penilaian dari kedua indikator ini dan menetapkan kondisi tambahan tertentu untuk menyaring sinyal palsu, seperti memeriksa harga penutupan bar sebelumnya dan harga maksimum dan minimum selama beberapa periode untuk mengontrol kualitas sinyal pembalikan.
Untuk posisi pembukaan, jika kondisi terpenuhi, pesanan pasar ditempatkan setiap kali bar ditutup, pergi baik panjang dan pendek.
Untuk mengambil keuntungan dan stop loss, stop loss yang mengambang dan menutup semua order saat mencapai target profit ditetapkan.
Ini adalah strategi lindung nilai frekuensi tinggi yang relatif stabil dan dapat diandalkan.
Risiko utama yang harus diperhatikan adalah:
Risiko dapat dikurangi dengan:
Masih banyak ruang untuk mengoptimalkan strategi ini, terutama:
Secara keseluruhan, strategi ini adalah strategi lindung nilai yang stabil dan dapat diandalkan dengan toleransi kesalahan yang tinggi. Ini menggabungkan indikator tren dan pembalikan, memperoleh pengembalian yang stabil melalui perdagangan dua arah yang sering. Juga, strategi itu sendiri memiliki potensi yang kuat untuk optimasi, dan merupakan ide perdagangan frekuensi tinggi yang berharga untuk penelitian 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())