
Die Strategie nutzt ein Zwei-Wege-Tracking-Mechanismus, kombiniert mit einem Preis-Rückschlag-Signal und einem Handelsvolumen-Indikator, um einen automatisierten, quantifizierten Handel zu realisieren. Ihr größter Vorteil liegt in der zuverlässigen Risikokontrolle, die Gewinne durch die Verfolgung von Stop-Losses und die Vermeidung von Verlustvergrößerung sperrt. Gleichzeitig erhöht das Rückschlag-Trading-Signal die Gewinnchancen der Strategie.
Diese Strategie besteht aus zwei Unterstrategien. Die erste unterstrategische Strategie verwendet zufällige Indikatoren, um ein Preisumkehrsignal zu ermitteln. Die spezifische Logik ist:
Wenn der Schlusskurs zwei Tage in Folge steigt und die Slow K-Linie am 9. Tag unter 50 liegt, machen Sie mehr; wenn der Schlusskurs zwei Tage in Folge fällt und die Fast K-Linie am 9. Tag über 50 liegt, machen Sie leer.
Die zweite Strategie besteht in der Kombination von Transaktionsindikatoren und Schwächen in der Urteilsfähigkeit. Konkret ist es, die aktuelle Transaktionsmenge mit dem Durchschnitt der 40-Tage-Transaktionsmenge zu vergleichen. Wenn die aktuelle Transaktionsmenge größer als der Durchschnitt ist, gilt dies als offensiv und gehört zu den Umkehrsignalen und macht Platz.
Das End-Trading-Signal ist die Überschneidung der beiden oben genannten Unterstrategie-Signale. Das heißt, die Position wird erst geöffnet, wenn die beiden Unterstrategien gleichzeitig Signale senden. Durch diese Methode der Intersection Targets Filterung können einige Noise-Transaktionen gefiltert und die Signalqualität verbessert werden.
Die Optimierung kann in folgenden Bereichen weiter vorangetrieben werden:
Insgesamt ist diese Strategie mit zwei-Wege-Tracking und Preise umgekehrt als Haupthandelslogik, ergänzt durch quantitative Beurteilung, um die Signalqualität durch doppelte Bestätigung zu verbessern. In der praktischen Anwendung, müssen noch weiter getestet und optimiert werden, insbesondere um die Risiken in Bezug auf die Stop-Loss-und Geld-Management, um zu verhindern, dass die Rücknahme zu groß verursacht Insolvenz.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 16/11/2020
// 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
// Volume and SMA
//
// 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
VSAVol(Length) =>
pos = 0.0
xSMA_vol = sma(volume, Length)
pos := iff(volume > xSMA_vol, -1,
iff(volume < xSMA_vol, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MAVol = input(40, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posVSAVol = VSAVol(Length_MAVol)
pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1,
iff(posReversal123 == -1 and posVSAVol == -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 )