Quantitative Strategie, die auf Umkehrung und vergleichender relativer Stärke beruht

Schriftsteller:ChaoZhang, Datum: 2023-12-13 17:17:10
Tags:

img

Übersicht

Diese Strategie kombiniert zunächst die Umkehrstrategie, die Ulf Jensen auf Seite 183 seines Buches How I Tripped My Money in the Futures Market vorgeschlagen hat, mit dem Vergleichsrelativstärkenindikator, um stärkere Signale zu erhalten.

Die Hauptidee dieser Strategie besteht darin, anhand mehrerer Faktoren gleichzeitig zu beurteilen.Durch die Kombination des Umkehrfaktors und des Vergleichsrelativstärkungssignals werden nur Kauf- oder Verkaufsaufträge platziert, wenn beide das gleiche Signal geben, um die Stabilität der Strategie zu verbessern.

Strategieprinzip

Der erste Teil ist eine Umkehrstrategie. Die Strategie geht lang, wenn: der Schlusskurs in den letzten zwei Tagen kontinuierlich gestiegen ist und die 9-tägige Stochastic-Slowline unter 50 liegt. Die Schlusskondition ist: der Schlusskurs ist in den letzten zwei Tagen kontinuierlich gefallen und die 9-tägige Stochastic-Fastline liegt über 50.

Der zweite Teil ist der komparative Relative Strength-Indikator. Dieser Indikator berechnet den gleitenden Durchschnitt der N-Tage-Schlusskursänderung zwischen der Ziel-Aktie und dem Benchmark-Index und vergleicht ihn mit der voreingestellten Kaufzone, Verkaufszone und Schließzone. Er geht lang, wenn der Indikator über die Kaufzone geht, geht kurz, wenn er unter die Verkaufszone fällt, und schließt Positionen, wenn der Indikator unter die Schließzone fällt und wenn der Indikator über die Schließzone steigt.

Diese kombinierte Strategie beurteilt die Signale beider Parteien gleichzeitig. Sie wird nur dann Kauf- oder Verkaufsaufträge erteilen, wenn beide das gleiche Signal geben (beide kaufen oder beide verkaufen).

Analyse der Vorteile

Diese Strategie kombiniert die Vorteile von Umkehrfaktoren und relativer Stärke. Die Umkehrstrategie kann Extreme kurzfristig erfassen; die Relative Stärke-Strategie kann den Haupttrend des breiteren Marktes erfassen. Signale aus beiden Strategien können die Zuverlässigkeit verbessern und einige falsche Signale durch Lärm filtern.

Der Stochastische Indikator kann als Indikator für die Unterscheidung von Überkauf- und Überverkaufszonen die Umkehrpunkte besser bestimmen.

Risikoanalyse

Das größte Risiko von Umkehrstrategien besteht darin, dass sie den Zeitpunkt der Umkehrungen des Marktes nicht bestimmen können, was nach der Umkehrung des Marktes zu anhaltenden Verlusten führen kann.

Das Risiko der Relative Strength Strategie liegt in unangemessenen Parameter-Einstellungen, die zu viele falsche Signale erzeugen können.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Test mehr Umkehrfaktoren, um bessere Umkehrstrategien zu finden.

  2. Test und Optimierung der Parameter für den Relativstärkenindikator, um die optimale Parameterkombination zu finden, da die aktuellen Einstellungen subjektiv sind und wahrscheinlich nicht optimiert sind.

  3. Hinzufügen von Stop-Loss-Strategien. Derzeit gibt es keinen Stop-Loss, ein angemessener Stop-Loss kann das Abwärtsrisiko kontrollieren.

  4. Versuche verschiedene Benchmarkindizes, um die relative Stärke gegenüber dem Zielbestand zu berechnen und den am besten passenden Index zu finden.

Schlussfolgerung

Diese Strategie kombiniert Umkehrfaktoren und relative Stärkefaktoren für den Handel. Sie nutzt die Vorteile beider, um die Signalqualität zu verbessern und ist eine relativ reife kombinierte Strategie. Es gibt noch viel Raum für Optimierungen durch Parameter-Tuning, Hinzufügen von Stop-Loss-Strategien und Anpassung der Strategie-Kombinationsmethoden, um noch bessere Ergebnisse zu erzielen.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/10/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Comparative Relative Strength Strategy for ES
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

CRS(a, b, len, BuyBand, SellBand, CloseBand) =>
    pos = 0.0
    as = security(a, timeframe.period, close) 
    bs = security(b, timeframe.period, close) 
    nRes = sma(as/bs, len)
    pos := iff(nRes > BuyBand, 1,
	         iff(nRes < SellBand, -1,
	          iff(pos[1] == 1 and nRes < CloseBand, 0,
    	       iff(pos[1] == -1 and nRes > CloseBand, 0, nz(pos[1], 0)))))
    pos

strategy(title="Combo Backtest 123 Reversal & Comparative Relative Strength", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
a = syminfo.tickerid 
b = input("BTC_USDT:swap", type=input.symbol) 
LengthCRS = input(10) 
BuyBand = input(0.9988, step = 0.0001)
SellBand = input(0.9960, step = 0.0001)
CloseBand = input(0.9975, step = 0.0001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCRS = CRS(a, b, LengthCRS, BuyBand, SellBand, CloseBand)
pos = iff(posReversal123 == 1 and posCRS == 1 , 1,
	   iff(posReversal123 == -1 and posCRS == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mehr