
Die Doppelfaktor-Zyklus-Handelsstrategie ist eine quantitative Handelsstrategie. Sie kombiniert zwei verschiedene Arten von technischen Indikatoren, um Handelssignale zu erzeugen, um Markttrends zu verfolgen und zusätzliche Gewinne zu erzielen.
Die Vorteile dieser Strategie bestehen darin, dass die Handelschancen durch die Kombination verschiedener Faktoren gesucht werden können. Die Doppelbestätigung erhöht die Signalsicherheit und reduziert die Wahrscheinlichkeit eines falschen Handels. Gleichzeitig nutzt die Strategie die Vorteile des Kreislaufhandels, d. h. die zeitnahen Stop-Loss- und Reverse-Open-Positionen, um das Risiko effektiv zu kontrollieren.
Die Strategie besteht aus zwei Teilen:
123 Umkehrung Die Strategie stammt aus Ulf Jensens Buch “Wie man Geld auf den Futurmärkten umdreht”. Die Handelslogik lautet: Wenn der Schlusskurs zwei Tage in Folge höher als der Schlusskurs des Vortages ist und die langsame K-Linie an neun Tagen unter 50 liegt, ist ein Plus; wenn der Schlusskurs zwei Tage in Folge niedriger als der Schlusskurs des Vortages ist und die schnelle K-Linie an neun Tagen über 50 liegt, ist ein Minus.
Resistenzstrategien zur Unterstützung von Kurs-/Bewertungsschwankungen Die Strategie erzeugt Signale, indem sie beurteilt, ob der Preis eine wichtige Unterstützung oder Resistenz durchbrechen wird. Bei einem Boll geht der Preis über den höchsten Preis des letzten Handelstages und bei einem Boll geht der Preis über den niedrigsten Preis des letzten Handelstages.
Das Signal der beiden oben genannten Strategien wird kombiniert, wenn beide Signale übereinstimmen, wird die Position aufgenommen, andernfalls wird die Position geklärt. Gleichzeitig wird der Reverse-Positions-Modus eingerichtet, um den Verlust bei Marktveränderungen rechtzeitig zu stoppen und den Handel umzukehren, um die Kreislauffunktion des Kapitals zu realisieren.
Diese Doppelfaktor-Circle-Trading-Strategie hat folgende Vorteile:
Die Multifaktor-Design gewährleistet eine hohe Signalzuverlässigkeit. Die 123 Umkehrstrategie und die Resistenzunterstützungsstrategie sind gegenseitig verifiziert und können Fehlsignale reduzieren.
Durch den Kreislaufhandel kann die Strategie auf Marktveränderungen reagieren und einseitige Verluste wirksam kontrollieren.
Der 9-Tage-Stochastics-Indikator filtert die Marktlärm aus, um die Signale klarer zu machen.
Es ist weniger riskant und weniger rückgängig zu machen als eine Ein-Faktor-Strategie. Mehrere Faktoren bilden einen Zusammenschluss und dämpfen die Auswirkungen irrationaler Schwankungen auf die Strategie.
Die Strategie birgt auch einige Risiken:
In einem wackligen Umfeld ist es schwierig, Trends zu erfassen, und es kommt häufig vor, dass Stop-Loss-Positionen rückgängig gemacht werden, was die Handelskosten erhöht. Die Stop-Loss-Linie kann entsprechend gelockert werden.
Die Einstellung der Stochastics-Parameter beeinflusst die Signalqualität. Fehlende Parameter können zu Fehlstellungen und Qualitätsverlusten führen. Die Parameter müssen wiederholt getestet und optimiert werden.
Zwei-Faktor-Design erhöht die Signalqualität, aber auch die Auswirkungen von Markt- und Lärmschutz auf die Strategie. Das erfordert, dass wir bei der Erstellung und Validierung von Strategien vorsichtiger sind.
Wir können diese Strategie in folgenden Bereichen weiter optimieren:
Stochastics mit unterschiedlich langen Phasen testen, um die beste Kombination von Parametern zu finden, um Marktlärm zu filtern
Trend-Filter, der die Erschütterungen filtert und nur bei klaren Trends Positionen eröffnet
Optimierung der Algorithmen für die Einstellung von Stop-Lines, um die Kosten der Transaktionen zu senken und die Stop-Loss-Effizienz zu gewährleisten
Verschiedene Kombinationen von Faktoren getestet, um ein klareres Handelssignal und eine stabilere Strategie zu finden
Die Strategie erzielt durch die Dual-Faktor-Design eine höhere Signalqualität und Risikobereitschaft. Die Strategie nutzt die Kreislauf-Handelsmechanismen, um die Einseitigkeit der Einseitigkeit zu kontrollieren. Die Strategie erzielt eine gute Balance zwischen Risiken und Erträgen.
/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 13/11/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
// Cueing Off Support And Resistance Levels, by Thom Hartle
// modified by HPotter for trade signals.
// The related article is copyrighted material from Stocks & Commodities.
//
// 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
COSRL(SigVal) =>
pos = 0.0
xLow = low
xHigh = high
xHighD = security(syminfo.tickerid,"W", high[1])
xLowD = security(syminfo.tickerid,"W", low[1])
sigpre1 = iff(xHigh <= xLowD, -1,
iff(xLow >= xHighD, 1, nz(pos[1], 0)))
sigpre2 = iff( xHigh <= xHighD, -1,
iff(xLow >= xLowD, 1, nz(pos[1], 0)))
pos := SigVal ? sigpre1 : sigpre2
pos
strategy(title="Combo Backtest 123 Reversal & Cueing Off Support And Resistance Levels", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SigVal = input(true, title="To Line \ From Line")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCOSRL = COSRL(SigVal)
pos = iff(posReversal123 == 1 and posCOSRL == 1 , 1,
iff(posReversal123 == -1 and posCOSRL == -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 )