Quantitative Strategie zur zyklusübergreifenden Trendverfolgung


Erstellungsdatum: 2023-12-15 15:59:37 zuletzt geändert: 2023-12-15 15:59:37
Kopie: 0 Klicks: 600
1
konzentrieren Sie sich auf
1621
Anhänger

Quantitative Strategie zur zyklusübergreifenden Trendverfolgung

Überblick

Diese Strategie verwendet die Kombination von PSAR-Indikatoren, um Preistrends zu bestimmen, ADX-Indikatoren, um Trendstärken zu bestimmen, RSI-Indikatoren, um Überkauf-Überverkaufszonen zu bestimmen, und CMF-Indikatoren, um Kapitalströme zu bestimmen, um eine quantitative Handelsstrategie zu erstellen, die über einen Zyklus reicht. Die Strategie orientiert sich schnell an der Bestimmung der neuen Trendrichtung, wenn die Preise einen Ausgleichsbruch erfahren, und verfolgt die nachfolgende Tendenz kontinuierlich, während gleichzeitig die Prozessüberbrückungsbedingungen festgelegt werden, um das Positionsrisiko zu verringern, um die Erträge der Hauptrend zu gewährleisten.

Strategieprinzip

Die wichtigsten Kriterien dieser Strategie sind:

  1. Der PSAR-Indikator wird verwendet, um zu beurteilen, ob der Preis in einem Aufwärtstrend ist, wobei ein PSAR-Abbruch als ein Ende des Aufwärtstrends und eine Umkehrung in einen Absturz angesehen wird.

  2. Der RSI-Indikator verlangt, dass der Wert über der Mittellinie 50 liegt, um falsche Durchbrüche zu filtern, die in Überverkaufszonen entstehen.

  3. Der ADX verlangt eine höhere als die eigene EMA-Mittellinie, was ein anhaltendes Signal für die Ergebnisse der Trendanalyse bedeutet;

  4. Die CMF-Anforderung ist größer als 0 und wird als Kapitalzufluss beurteilt.

Wenn die oben genannten vier Bedingungen erfüllt sind, wird ein Kaufsignal erzeugt. Wenn der RSI unter 50 liegt, die ADX unter der eigenen EMA-Mittellinie liegt und die CMF unter 0 liegt, wird ein Verkaufsignal erzeugt.

Die Strategie berücksichtigt die Richtung des Preistrends, die Trendstärke, den Überkauf-Überverkaufszustand und den Kapitalfluss in mehrere Dimensionen, um die Handelsregeln einzurichten. Sie setzt strenge logische Urteile bei der Entscheidung, ob ein Handelssignal erzeugt wird, um falsche Durchbrüche wirksam zu filtern und sicherzustellen, dass die Richtung eines Trends, der mit hoher Wahrscheinlichkeit nachhaltig ist, erfasst wird.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. In Kombination mit einer Vielzahl von Indicator-Set-Trading-Regeln kann eine effektive Verhinderung von False-Breaks und die Sicherstellung der Qualität von Handelssignalen gewährleistet werden.

  2. Schnelle Orientierung und Nachverfolgung neuer Trends, um die Vorteile des Trendprozesses zu nutzen;

  3. Einrichtung von Prozessen, die die Filterbedingungen verfolgen, um Risiken effektiv zu kontrollieren und die Verfolgung zu gewährleisten;

  4. In Kombination mit einer Bewertung der Trendstärke können Sie eine Ausgleichssituation vermeiden.

Risikoanalyse

Diese Strategie birgt folgende Risiken:

  1. Eine einzelne Strategie kann zu einem hohen Risiko führen und erfordert eine angemessene Anpassung der Positionen, um das Gesamtrisiko zu kontrollieren.

  2. Die Verfolgung der Änderungen der Filterbedingungen muss sorgfältig verfolgt werden, um einen Verlustschnitt zu vermeiden, wenn die Bedingungen aufgehoben werden.

  3. Diese Strategie basiert auf der mittleren und langen Linie, wobei kurzfristige Inhalte von Schwankungen betroffen sind und ein Stop-Loss-Risiko darstellen.

Entsprechende Risikomanagement-Maßnahmen umfassen: Optimierung der Positionsmanagement-Regeln, Einstellung von Risikowarnlinien, angemessene Lockerung der Stop-Loss-Distanz usw.

Optimierungsrichtung

Die Strategie bietet folgende Optimierungsmöglichkeiten:

  1. Optimierung der Parameter-Einstellungen, die derzeit eher subjektiv sind und automatisch optimiert werden können, indem eine Machine-Learning-Methode eingeführt wird;

  2. Ein zusätzliches Modul zur Positionsverwaltung, mit dem Positionen dynamisch an die Risikostellung angepasst werden können.

  3. Optimierung von Stop-Loss-Mechanismen wie Tracking-Stop, Time-Stop und Break-Stop.

Zusammenfassen

Die Strategie umfasst mehrere Richtlinien für die Beurteilung von Indikatoren, ermöglicht die schnelle Identifizierung und kontinuierliche Verfolgung neu auftretender Trends und bestätigt die Wirksamkeit von multidimensionalen Analysen wie der Kombination von Trends und Kapital in quantifizierten Transaktionen. Die Strategie kann als Basisstrategie für die Verfolgung von Trends über die Perioden hinweg als Index verwendet werden oder nach Optimierung von Parametern und Modulen zu einer stabilen mittelfristigen linearen Quantifizierungsstrategie aufgebaut werden.

Strategiequellcode
/*backtest
start: 2023-11-14 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("psar+ adx + cmf + rsi Strategy", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

start = input(1.02)
increment = input(1.02)
maximum = input(1.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)

//rsi strat
length = input( 50 )
middle_RSI=input(49)
price = close
vrsi = rsi(price, length)

//cmf
lengthCMF = input(20, minval=1)
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthCMF) / sum(volume, lengthCMF)

//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
ema_length=input(10)
ema_sig= ema(sig,ema_length)


long = not uptrend  and vrsi > middle_RSI and sig > ema_sig   and mf>0 
short= uptrend   and vrsi < middle_RSI and sig<ema_sig and mf<0

strategy.entry("long",1,when=long)
strategy.close('long',when=short)