Trendsurfende Absicherungsstrategie auf der Grundlage von TSI- und HMACCI-Indikatoren

Schriftsteller:ChaoZhang, Datum: 2024-01-23 11:26:14
Tags:

img

Übersicht

Diese Strategie kombiniert die bilateralen Handelssignale der TSI mit verbesserten CCI-Indikatoren und verfolgt einen Absicherungsansatz bei häufig geöffneten und geschlossenen Positionen, um kontinuierlich stabilere Gewinne zu erzielen. Die Schlüssellogik ist das goldene Kreuz und das tote Kreuz der schnellen und langsam gleitenden Durchschnitte des TSI-Indikators, kombiniert mit den Kauf- und Verkaufssignalen des HMACCI-Indikators, um die Marktrichtung zu bestimmen. Die Risiken werden durch Begrenzung der Eröffnungsbedingungen kontrolliert, während Stop-Loss- und Take-Profit-Logiken festgelegt werden.

Strategieprinzip

Die Strategie beruht hauptsächlich auf der Kombination der TSI und der HMACCI-Indikatoren.

Der HMACCI-Indikator basiert auf dem traditionellen CCI-Indikator, bei dem anstelle des Preises selbst der Hull Moving Average verwendet wird, der ein gewisses Rauschen ausfiltern und überkaufte und überverkaufte Zonen beurteilen kann.

Die wichtigste Logik der Strategie besteht darin, die Beurteilungen dieser beiden Indikatoren zu kombinieren und bestimmte zusätzliche Bedingungen festzulegen, um falsche Signale auszufiltern, wie z. B. die Prüfung des Schlusskurses der vorherigen Barren sowie der Höchst- und Mindestpreise über mehrere Perioden hinweg, um die Qualität der Umkehrsignale zu kontrollieren.

Bei der Eröffnung von Positionen werden bei Erfüllung der Bedingungen bei jedem Schließen der Bar Marktordnungen platziert, die sowohl lang als auch kurz gehen.

Für Take Profit und Stop Loss werden schwebende Stop Loss und Schließung aller Aufträge bei Erreichen des Zielprofits festgelegt.

Vorteile der Strategie

Dies ist eine relativ stabile und zuverlässige Hochfrequenz-Hedging-Strategie.

  1. Die Kombination von zwei Indikatoren kann falsche Signale wirksam vermeiden
  2. Häufige Absicherungsgeschäfte pro Bar führen zu stabileren Gewinn- und Verlustschwankungen
  3. Strenge Eröffnungslogik und Stop-Loss-Bedingungen können Risiken kontrollieren
  4. Die Kombination von Trend- und Umkehrurteilen führt zu einer höheren Fehlertoleranz
  5. Keine Richtungsverzerrung, geeignet für verschiedene Marktbedingungen
  6. Großer einstellbarer Parameterraum, kann für verschiedene Produkte optimiert werden

Risikoanalyse

Die wichtigsten Risiken sind:

  1. Mehr Gebührenverluste durch Hochfrequenzhandel
  2. Unmöglichkeit, sich vollkommen vor einer Hecke zu schützen.
  3. Übermäßig aggressiver Einstieg, wenn die Parameter nicht richtig eingestellt sind
  4. Schwierigkeiten, kurzfristig einseitige große Verluste zu überstehen

Die Risiken können verringert werden, indem:

  1. Anpassung der Öffnungsfrequenz entsprechend zur Verringerung der Gebührenwirkung
  2. Optimierung der Indikatorparameter zur Sicherstellung der Signalqualität
  3. Erhöhung der Stop-Loss-Amplitude, aber mehr Absicherungsverluste
  4. Prüfparameter für verschiedene Produkte

Optimierungsrichtlinien

Es gibt noch viel Raum für die Optimierung dieser Strategie, vor allem:

  1. Optimierung von Parametern wie Periode, Länge usw. durch Tests
  2. Versuchung verschiedener Indikatorenkombinationen z.B. MACD, BOLL usw.
  3. Modifizierung der Öffnungslogik, Festlegung strengerer Filter
  4. Optimierung von Gewinn- und Stop-Loss-Strategien, z. B. dynamische, Breakout-Stops
  5. Mit Hilfe von Methoden des maschinellen Lernens stabilere Parameterbereiche zu finden
  6. Prüfung auf verschiedenen Handelsprodukten und Zeitrahmen
  7. Kombination der Trenderkennung zur Vermeidung von übermäßig aggressiven Geschäften auf den Märkten mit Bandbreite

Schlussfolgerung

Insgesamt ist diese Strategie eine stabile, zuverlässige Absicherungsstrategie mit hoher Fehlerverträglichkeit. Sie kombiniert Trend- und Umkehrindikatoren und erzielt durch häufigen dualem Richtungshandel eine stetige Rendite. Außerdem hat die Strategie selbst ein starkes Optimierungspotenzial und stellt eine lohnende Hochfrequenz-Handelsidee dar, um weiter zu recherchieren.


/*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()) 

Mehr