Golden Cross Handelsstrategie


Erstellungsdatum: 2023-11-23 14:07:11 zuletzt geändert: 2023-11-23 14:07:11
Kopie: 0 Klicks: 614
1
konzentrieren Sie sich auf
1621
Anhänger

Golden Cross Handelsstrategie

Überblick

Die Gold-Cross-Trading-Strategie ist eine Trend-Tracking-Strategie mit mittlerer und langer Linie. Sie identifiziert die Trendrichtung des Aktienpreises durch die Berechnung der SR-Indikatoren und der SR-Signal-Indikatoren und erzeugt in Verbindung mit einem neuronalen Netzwerk einen Trendkanal, um Trend-Tracking-Operationen zu realisieren.

Strategieprinzip

Die Kernindikatoren der Strategie sind der SR-Indikator und der SR-Signal-Indikator. Der SR-Indikator ist eine Sekundärsynthese aus dem WMA-Meanline mit dem Parameter 8 Perioden und dem SMA-Meanline. Der SR-Signal-Indikator ist der SR-Indikator mit dem Parameter 20 Perioden.

Die Strategie verwendet Neuralnetz-Algorithmen, um automatisch die oberen und unteren Grenzen des Aktienpreises zu erstellen, um einen Adaptionskanal zu bilden. Die oberen Grenzen werden mit den historischen Maximalwerten des SR-Indikators als Input und die unteren Grenzen mit den historischen Minimalwerten als Input erfasst, und dann wird die Regressionskurve als die unteren Grenzen des Kanals berechnet. Die Kanalkurve wird nach einer Adaptionslinear-Regression-Schwankung glatter.

Wenn der SR-Indikator auf dem SR-Signal durchläuft, erzeugt er ein Kaufsignal; wenn der SR-Indikator unter dem SR-Signal durchläuft, erzeugt er ein Verkaufsignal. Nach dem Ausgabe des Plus-Low-Signals entscheidet die Beziehung zwischen dem Aktienpreis und der oberen und unteren Grenze des Kanals über die Stop-Loss-Stopposition.

Analyse der Stärken

  • Die Verwendung von Binär-Synthese-Technologie, um die Auswirkungen von Preisschwankungen zu beseitigen und die Richtung der Trends genau zu bestimmen;
  • Die Adaptive Passage Algorithmen optimieren die Einstiegs- und Ausstiegszeit und vermeiden soziale Durchbrüche.
  • Die Kanalkurve wird mit einer adaptiven linearen Regressionsfiltertechnologie gefiltert, um die Kurve von Extremwerten abzuhalten.
  • Die Stop-Loss-Stopp-Position verändert sich mit der Gangdynamik und folgt automatisch dem Trend.

Risikoanalyse

Die Strategie basiert hauptsächlich auf Trend-Tracking und beinhaltet folgende Hauptrisiken:

  • Es gibt viele falsche Signale und zu viele unwirksame Operationen in der Erschütterung.
  • Ein unerwartetes Ereignis, das zu einem starken Verlust führt, der die untere Grenze des Fast-Down-Kanals überschreitet;
  • Die falsche Einstellung der Parameter verursacht leicht die Ausfallstrategie.

Um das Risiko zu kontrollieren, empfiehlt es sich, andere Strategien zu kombinieren und einzelne Strategien zu vermeiden. Gleichzeitig werden die Parameter-Einstellungen optimiert, um sie an unterschiedliche Marktbedingungen anzupassen.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Parameter der SR- und Signalindikatoren zur Steigerung der Stabilität des Kreuzsignals;

  2. Optimierung der Längenzyklen des adaptiven Kanals und Glättung der Kanalkurve;

  3. Zusätzliche Filterindikatoren, um Fehlverhalten zu vermeiden, wie z. B. Energieindikatoren, Volatilitätsindikatoren usw.

  4. In Kombination mit Deep-Learning-Algorithmen optimiert die Channel-Kurve in Echtzeit und erhöht die Anpassungsfähigkeit.

Zusammenfassen

Die Gold-Cross-Trading-Strategie ist eine quantitative Strategie, mit der sich langfristige Trends im Zentrum effektiv verfolgen lassen. Die Wahrscheinlichkeit, dass die Trendrichtung korrekt beurteilt wird, ist hoch, die Risiken sind gering. Mit dem großen Spielraum für die Optimierung von Algorithmusmodellen wird die Strategie zu einem leistungsfähigen Werkzeug für die Verfolgung von Trendänderungen in Aktien werden.

Strategiequellcode
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

strategy(title = " Strategy PyramiCover",
         shorttitle = "S-PC",
         overlay = true,
         precision = 8,
         calc_on_order_fills = true,
         calc_on_every_tick = true,
         backtest_fill_limits_assumption = 0,
         default_qty_type = strategy.fixed,
         default_qty_value = 2,
         initial_capital = 10000,
         pyramiding=50,
         currency = currency.USD,
         linktoseries = true)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)

FromMonth         = input(defval = 1, title = "Month", minval = 1)
FromDay           = input(defval = 1, title = "Day", minval = 1)
FromYear          = input(defval = 2014, title = "Year", minval = 2014)

backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth           = input(defval = 31, title = "Month", minval = 1)
ToDay             = input(defval = 12, title = "Day", minval = 1)
ToYear            = input(defval = 9999, title = "Year", minval = 2014)

backTestPeriod() => (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

per = input(14,title="🔹 Length")
//
up = 0.0
nup= 0.0
lowl = 0.0
nin = 0.0
//
srl=wma(close,8)
srr = sma(close,8)
sr = 2*srl - srr
//
srsl=wma(close,20)
srsr= sma(close,20)
srsignal = 2*srsl - srsr
//
if sr>srsignal
    up := highest(sr,round(150))
    nup :=highest(srsignal,round(20))
else
    up := highest(srsignal,round(150))
    nup := highest(sr,round(20))
//
if sr<srsignal
    lowl := lowest(sr,round(150))
    nin := lowest(srsignal,round(20))
else
    lowl := lowest(sr,round(150))
    nin := lowest(srsignal,round(20))
//reg alexgrover
f_reg(src,length)=>
    x = bar_index
    y = src
    x_ = sma(x, length)
    y_ = sma(y, length)
    mx = stdev(x, length)
    my = stdev(y, length)
    c = correlation(x, y, length)
    slope = c * (my / mx)
    inter = y_ - slope * x_
    reg = x * slope + inter
    reg
//
up_=f_reg(up,per)
lowl_=f_reg(lowl,per)
nup_=f_reg(nup,per)
nin_=f_reg(nin,per)
//
plot(sr, title='SR', color=color.green, linewidth=2, style=plot.style_line,transp=0)
plot(srsignal, title='SR-Signal', color=color.red, linewidth=2, style=plot.style_line,transp=0)
plot(up_, title='Upper limit', color=color.blue, linewidth=3, style=plot.style_line,transp=0)
plot(lowl_, title='Lower limit', color=color.blue, linewidth=3, style=plot.style_line,transp=0)
a=plot(nup_, title='Neuronal Upper', color=color.gray, linewidth=1, style=plot.style_line,transp=0)
b=plot(nin_, title='Neuronal Lower', color=color.gray, linewidth=1, style=plot.style_line,transp=0)
fill(a, b, color=color.gray)
plotshape(crossunder(sr,nup_)? sr+atr(20):na, title="Sell", text="🐻", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.black,transp=0)
plotshape(crossover(sr,nin_)? sr-atr(20):na, title="Buy", text="🐂", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.black,transp=0)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

if backTestPeriod()

    strategy.entry("Buy", true, 1, when = crossover(sr,nin_)) 
    strategy.entry("Short", false, 1, when = crossunder(sr,nup_))