
Die Strategie kombiniert 123 Reversals und Positionsschwankungen und ermöglicht ein doppelfaktorgetriebenes quantitatives Trading. Die Strategie erfasst kurzfristige Reversal-Gelegenheiten und identifiziert auch längerfristige Trends, um ein niedriges Risiko zu erzielen.
Der erste Teil ist die 123-Umkehrstrategie. Die Strategie nutzt die Eigenschaften einer Umkehr des Schlusskurses innerhalb von 2 Tagen, um einen Kauf- und Verkaufspunkt zu bestimmen. Wenn der Schlusskurs 2 Tage in Folge steigt und die langsame K-Linie unter 50 liegt, wird der Umschlag als überkorrigiert angesehen und ein Kaufpunkt erzeugt.
Der zweite Teil ist die Strategie der Positiv-Schwankungs-Indikator. Der Indikator berechnet die Positivzahl, die dem aktuellen Preis am nächsten liegt, und liefert die Differenz zum aktuellen Preis aus. Positive Werte bedeuten, dass der aktuelle Preis dem Positiv-Obergrenz nahe ist, und negative Werte bedeuten, dass der aktuelle Preis dem Positiv-Untergrenz nahe ist.
Die Handelssignal-Kombination der beiden Unterstrategien basiert auf dem Prinzip, dass bei gleichlaufenden Signalen ein tatsächliches Handelssignal erzeugt wird, bei abweichenden Signalen keine Positionen eröffnet werden.
Die Strategie kombiniert zwei Faktoren, die sowohl die kurzfristige Wirkung der Umkehrung berücksichtigen als auch die langfristigen Trendmerkmale, die Märkte aus mehreren Perspektiven beurteilen und die Risikobereitschaft der Strategie verbessern.
Im Gegensatz zur Single-Momentum-Strategie kann die Strategie bei kurzfristigen Preissprüngen durch unvorhergesehene Ereignisse den Rückschlagfaktor nutzen, um den Verlust zu stoppen oder die Position rückgängig zu machen und das Intraday-Risiko effektiv zu kontrollieren.
Im Gegensatz zu einer einzigen Reversal-Strategie führt diese Strategie einen positiven Schwankungsindikator ein, um die Richtung des Trends zu bestimmen und zu verhindern, dass häufige Reversal-Handel zu Overtrading führt.
Das größte Risiko dieser Strategie besteht darin, dass ein Signalkonflikt zwischen den beiden Faktoren besteht. Wenn die 123 Umkehrungen überkaufende und überverkaufte Signale erzeugen, die ein Umkehrsignal erzeugen, während die Positionsschwingung noch im Trend ist, kann dies zu Verlusten führen, wenn der direkte Umkehrhandel stattfindet.
Um dieses Risiko zu kontrollieren, wurde in die Strategie eine zusätzliche Beurteilungslogik eingebaut, die ein tatsächliches Handelssignal erzeugt, nur wenn die beiden Faktorsignale synchronisiert sind. Dies kann jedoch dazu führen, dass einige Handelschancen verpasst werden.
Optimierung der Stochastic-Indikator-Parameter, um eine Kombination von Umkehrparametern zu finden, die für die jeweilige Parameter geeignet ist
Optimierung der Kapazitätsdifferenz-Prozentsatzparameter für qualitative Schwingungskennzahlen, um den Noise-Trading zu reduzieren
Erhöhung der Stop-Loss-Strategie, um eine Ausweitung der einseitigen Verluste zu verhindern
Positionsmanagement-Modul hinzugefügt, um Positionen in unterschiedlichen Marktumständen anzupassen
Einsatz von Machine Learning-Modellen, um die Zwei-Faktor-Signalzuverlässigkeit zu beurteilen und die Wahrscheinlichkeit von Signalkonflikten zu verringern
Diese Strategie kombiniert erfolgreich kurzfristige Umkehrfaktoren mit langfristigen Trendfaktoren, um einen quantitativen Handel mit geringem Risiko zu ermöglichen. Die effektive Nutzung von Doppelfaktoren, um den Handel mit Geräusch zu filtern, und die Einstellung von zusätzlichem Urteilslogik, um das Risiko zu kontrollieren, ist eine praktische Strategie mit gleichbleibenden Erträgen. In der Folge wird die Optimierung der Parameter und die Funktionserweiterung fortgesetzt, um die Strategie besser an die Merkmale des realen Marktes anzupassen.
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 28/04/2021
// 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
// Determining market trends has become a science even though a high number or people
// still believe it’s a gambling game. Mathematicians, technicians, brokers and investors
// have worked together in developing quite several indicators to help them better understand
// and forecast market movements.
//
// Developed by Modulus Financial Engineering Inc., the prime number oscillator indicates the
// nearest prime number, be it at the top or the bottom of the series, and outlines the
// difference between that prime number and the respective series.
//
// 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
PrimeNumberOscillator(price, percent) =>
res = 0.0
res1 = 0.0
res2 = 0.0
for j = price to price + (price * percent / 100)
res1 := j
for i = 2 to sqrt(price)
res1 := iff(j % i == 0 , 0, j)
if res1 == 0
break
if res1 > 0
break
for j = price to price - (price * percent / 100)
res2 := j
for i = 2 to sqrt(price)
res2 := iff(j % i == 0 , 0, j)
if res2 == 0
break
if res2 > 0
break
res := iff(res1 - price < price - res2, res1 - price, res2 - price)
res := iff(res == 0, res[1], res)
res
PNO(percent) =>
pos = 0.0
xPNO = PrimeNumberOscillator(close, percent)
pos:= iff(xPNO > 0, 1,
iff(xPNO < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Prime Number Oscillator", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Prime Number Oscillator ----")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPNO = PNO(percent)
pos = iff(posReversal123 == 1 and posPNO == 1 , 1,
iff(posReversal123 == -1 and posPNO == -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 )