
Diese Strategie kombiniert bilaterale Handelssignale des TSI mit dem CCI-Index, wobei häufige Positionsöffnungen mit Arbitrage durchgeführt werden, um nachhaltigere Gewinne zu erzielen. Die entscheidende Logik ist der schnelle und langsame mittlere Gold- und Todesfork des TSI-Index, der in Kombination mit der HMACCI-Index-Poly-Hole-Signallinie die Kauf- und Verkaufsrichtung des Marktes bestimmen kann.
Die Strategie basiert hauptsächlich auf einer Kombination von zwei Indikatoren, dem TSI und dem HMACCI.
Der TSI enthält eine schnelle und eine langsame Durchschnittslinie, um ein Kauf- und Verkaufssignal zu ermitteln. Wenn die schnelle Linie die langsame Linie von unten nach oben durchbricht, ist dies ein Kaufsignal und umgekehrt ein Verkaufssignal. Auf diese Weise können die Markttrends sensibler erfasst werden.
Der HMACCI-Indikator basiert auf dem herkömmlichen CCI-Indikator und verwendet den Hull-Moving-Average anstelle des Preises selbst, um einen Teil des Geräusches abzuschalten und die Überkauf-Überverkauf-Bereich zu beurteilen. Die Überkauf-Überverkauf-Bereich kann die Signalrichtung des TSI-Indikators erneut bestätigen.
Die Schlüssellogik der Strategie besteht darin, die Ergebnisse dieser beiden Indikatoren zu kombinieren und bestimmte zusätzliche Bedingungen zu setzen, um Fehlsignale zu filtern, z. B. den Schlusskurs der K-Linie vor der Untersuchung und den Höchst-Legendpreis vor mehreren Zyklen, um die Qualität des Umkehrsignals zu kontrollieren.
In Bezug auf die Eröffnung von Positionen, wenn die Bedingungen erfüllt sind, wird bei jedem K-Linie-Abschluss der Marktpreis eröffnet, während mehr Leerlauf gemacht wird. Auf diese Weise kann ein stabilerer Ertrag erzielt werden, aber das Risiko des Arbitrages muss eingehen.
Im Bereich Stop-Loss wurde ein Floating Stop-Loss und ein Full-Plating-Plating eingerichtet, um das Risiko für einseitige Transaktionen gut zu kontrollieren.
Es ist eine relativ stabile und zuverlässige Hochfrequenz-Arbitrage-Strategie. Die Hauptvorteile sind:
Die wichtigsten Risiken, die zu beachten sind, sind:
Das Risiko kann durch folgende Maßnahmen verringert werden:
Die Strategie hat noch viel Optimierungsmöglichkeiten, und zwar in folgenden Bereichen:
Die Strategie ist insgesamt eine stabile, zuverlässige und fehlerfreie binäre Arbitrage-Strategie. Sie kombiniert Trendbeurteilung und Reversal-Indikatoren, um durch häufige binäre Positionen einen stabilen Gewinn zu erzielen. Die Strategie selbst hat jedoch einen starken Optimierungsraum und Potenzial und ist eine hochfrequente Handelsideologie, die es wert ist, eingehend untersucht zu werden.
/*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())