Optimierungsstrategie für den gleitenden Durchschnitt nach Trendfolge


Erstellungsdatum: 2024-01-04 15:44:23 zuletzt geändert: 2024-01-04 15:44:23
Kopie: 0 Klicks: 526
1
konzentrieren Sie sich auf
1621
Anhänger

Optimierungsstrategie für den gleitenden Durchschnitt nach Trendfolge

Überblick

Die Strategie nutzt Stochastic-Indikatoren, um Kauf- und Verkaufssignale zu erzeugen, und filtert die Signale in Verbindung mit OTT-Indikatoren, um zu versuchen, große Trends zu erfassen und die Auswirkungen von Falschsignalen durch Marktschwankungen zu reduzieren. In diesem Artikel wird die Strategie eingehend bewertet.

Strategieprinzip

Die Kernidee der Strategie besteht darin, OTT-Indikatoren auf Stochastic-Indikatoren zu überlagern, um die Signale zu filtern. Die Stochastic-Indikatoren vergleichen die Preise mit den Höchst- und Tiefstpreisen innerhalb eines bestimmten Zeitraums, um zu beurteilen, ob die Preise in extremen Bereichen liegen. Die OTT-Indikatoren verwenden bewegliche Durchschnitte und dynamische Stopps, um den Trend zu verfolgen.

Der Code setzt Stochastic auf eine Höchstgrenze von 1080 und eine Niedriggrenze von 1020, wobei der Stochastic-Mittelwert eine flache Spanne darstellt. Wenn Stochastic ein Kauf-/Verkaufssignal erzeugt, beurteilt der Code die Wirksamkeit des Signals anhand der OTT-Indikatoren. Wenn der Preis die OTT-Durchschnittslinie nach oben durchbricht, wird ein Kaufsignal ausgesendet, und wenn der Preis die OTT-Durchschnittslinie nach unten durchbricht, wird ein Verkaufssignal ausgesendet.

Diese Kombination nutzt Stochastic, um Überkaufe und Überverkäufe zu beurteilen und ein Einstiegssignal zu senden. OTT ist verantwortlich für die Trendverfolgung und nutzt die falschen Signale, die durch die Stop-loss-Filter verursacht werden, die zu starke Erschütterungen auslösen, um die Genauigkeit und Schwankungen des Signals zu optimieren.

Analyse der Stärken

Die Strategie nutzt eine Kombination aus Stochastic und OTT-Indikatoren, um folgende Aspekte zu optimieren:

  1. Stochastic beurteilt Überkäufe und OTT ist verantwortlich für die Beseitigung von Falschsignalen, die durch Erschütterungen verursacht werden.
  2. Die Schwankungen in der Strategie wurden reduziert. Die Verluste wurden durch dynamische Stop-Losses begrenzt und viele falsche Durchbrüche wurden gefiltert.
  3. Stochastic gibt die Basissignale, OTT folgt den großen Trends.
  4. Die übermäßige Störung des Signals wird verringert. Die Signalqualität wird verbessert und gleichzeitig die unnötigen Signale reduziert.
  5. Quantitative dynamische Stop-Loss-Einstellungen. Qualitative Absicherung des aktuellen Verlustes, um die Strategiefluktuation weiter zu verringern.
  6. Das System kombiniert Trends und Überkauf-Überverkauf-Indikatoren. Die beiden Indikatoren werden verwendet, um die Nachteile des jeweils anderen zu optimieren.

Insgesamt verbessert die Strategie die Signalqualität und die Strategieerträge durch die Filterung von stochastischen Signalen durch die Verwendung von OTT, während die Anzahl der Geschäfte und die Strategiefluktuation reduziert werden, was zu einer Tendenznähe, einem niedrigen Risiko und einem hohen Ertrag führt.

Risikoanalyse

  • Diese Strategie ist relativ eng. Sie gilt hauptsächlich für Aktien, bei denen ein deutlicher Trend zu beobachten ist. Die Auswirkungen auf Aktien, bei denen die Preise stark schwanken, oder auf Aktien, bei denen die Preise in einer schwankenden Aufbereitung sind, sind gering.
  • Die Strategie berücksichtigt nicht die Grundlagen der Aktien und die Makrospektive des Marktes, und es gibt eine gewisse Blindheit.
  • Die Parameter sind sensibel eingestellt. Mehrere Parameter von Stochastic und OTT müssen professionell angepasst werden, da dies die Profitabilität der Strategie beeinträchtigt.
  • Die Stop-Loss-Regelung ist zu locker. Es gibt einen gewissen potenziellen Verlust, der weiter optimiert werden muss.
  • Bei False-Break und Erschütterung kann es zu Verlusten und Signalstörungen kommen. Die Verurteilungs- und Stop-Loss-Bedingungen müssen geändert werden.

Im Hinblick auf die genannten Risiken können folgende Maßnahmen zur Verbesserung ergriffen werden:

  1. Je nach Aktienkategorie werden unterschiedliche Parameterkombinationen verwendet.
  2. Die Kombination von Grundlagen und Presse sendet ein verstärktes Signal.
  3. Optimierungstests mit Parametern zur Suche nach optimalen Einstellungen.
  4. Die Einführung von mobilen Stop-Losses verringert das Risiko weiter.
  5. Es wurde eine Änderung der Beurteilungskriterien durch eine strengere Signalbestätigung eingesetzt.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen optimiert werden:

  1. Anpassung der Parameter an unterschiedliche Märkte und Aktienkategorien eingestellt. Die heutigen Standardwerte sind allgemein gültig und können für verschiedene Aktien getestet werden, um die optimale Kombination der Parameter zu finden.

  2. Die Einführung von Stop-Stops und Mobile Stops. Es werden dynamische, feste Stop-Stops eingesetzt, bei denen keine dynamische Verfolgung von Verlusten und Gewinnen möglich ist. Die Einführung von Mobile Stops und Stop-Stops kann getestet werden, um die strategische Risikobereitschaft weiter zu kontrollieren.

  3. Optimierung der Signalentscheidungslogik. Heutzutage ist die Signalentscheidungslogik einfacher, die Preis-Oberschneidung markiert direkt ein Kauf- und Verkaufssignal. Es kann in Betracht gezogen werden, mehr Indikatoren und Preisformentscheidungen zu kombinieren, um die Zuverlässigkeit des Signals sicherzustellen.

  4. Erhöhung der Aufnahmebedingungen und der Filtermechanismen. Die Strategie, die jetzt angewendet wird, ist, jedes Signal gleichmäßig zu behandeln. Es können Aufnahmebedingungen wie die Quantitäts- und die Transaktionswerte eingeführt werden und ein bestimmtes Signalzeitfenster hinzugefügt werden, um falsche Signale auszuschalten.

  5. Die Kombination verschiedener Indikatoren mit OTT wird getestet. Zurzeit wird eine Kombination aus Stochastic und OTT verwendet. Andere Indikatoren wie MACD, RSI und andere können die Kombination mit OTT testen.

  6. Die Module für die Integration von Fondsmanagement und Positionsmanagement. Es gibt keine Fondsmanagement- und Positionskontrollmechanismen, die derzeit vollständig auf Stop-Loss angewiesen sind. Es können verschiedene Arten von Fondsmanagement- und Positionsmanagementmethoden getestet werden, um einzelne und gesamte Risiken weiter zu kontrollieren.

Zusammenfassen

Die Quantifizierung von Stochastic ist eine Quantifizierungsstrategie, die die organische Kombination von Stochastic und OTT-Indikatoren darstellt. Sie nutzt die komplementären Vorteile beider Indikatoren, erhöht die Signalgenauigkeit und reduziert die Risiken, während sie die großen Trends effektiv erfasst.

Diese Strategie hat die Vorteile einer geringen Fehlerrate, einer klaren Signal- und geringen Volatilitätsrate. Sie erhöht die Signalsicherheit, optimiert die Stop-Loss-Ebene und reduziert die Handelsfrequenz. Sie ist eine empfehlenswerte quantitative Strategie.

Gleichzeitig besteht ein gewisser Raum für Verbesserungen in dieser Strategie. Durch Optimierung der Parameter, Verbesserung der Schadensstopper und Verbesserung der Signal- und Filtermechanismen kann die Strategie in Richtung Stabilisierung, Automatisierung und Intelligenz entwickelt werden, was auch das Ziel unserer weiteren Arbeit ist.

Strategiequellcode
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
//created by: @Anil_Ozeksi
//developer: ANIL ÖZEKŞİ
//author: @kivancozbilgic


strategy(title="Stochastic Optimized Trend Tracker", shorttitle="SOTT", format=format.price, precision=2)
periodK = input(250, title="%K Length", minval=1)
smoothK = input(50, title="%K Smoothing", minval=1)
src1 = input(close, title="Source")
length=input(3, "OTT Period", minval=1)
percent=input(0.618, "OTT Percent", type=input.float, step=0.1, minval=0)
showsupport = input(title="Show Support Line?", type=input.bool, defval=false)
showsignalsc = input(title="Show Stochastic/OTT Crossing Signals?", type=input.bool, defval=false)
Var_Func1(src1,length)=>
    valpha1=2/(length+1)
    vud11=src1>src1[1] ? src1-src1[1] : 0
    vdd11=src1<src1[1] ? src1[1]-src1 : 0
    vUD1=sum(vud11,9)
    vDD1=sum(vdd11,9)
    vCMO1=nz((vUD1-vDD1)/(vUD1+vDD1))
    VAR1=0.0
    VAR1:=nz(valpha1*abs(vCMO1)*src1)+(1-valpha1*abs(vCMO1))*nz(VAR1[1])
VAR1=Var_Func1(src1,length)
k = Var_Func1(stoch(close, high, low, periodK), smoothK)
src=k+1000
Var_Func(src,length)=>
    valpha=2/(length+1)
    vud1=src>src[1] ? src-src[1] : 0
    vdd1=src<src[1] ? src[1]-src : 0
    vUD=sum(vud1,9)
    vDD=sum(vdd1,9)
    vCMO=nz((vUD-vDD)/(vUD+vDD))
    VAR=0.0
    VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1])
VAR=Var_Func(src,length)
h0 = hline(1080, "Upper Band", color=#606060)
h1 = hline(1020, "Lower Band", color=#606060)
fill(h0, h1, color=#9915FF, transp=80, title="Background")
plot(k+1000, title="%K", color=#0094FF)
MAvg=Var_Func(src, length)
fark=MAvg*percent*0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop =  MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT=MAvg>MT ? MT*(200+percent)/200 : MT*(200-percent)/200 
plot(showsupport ? MAvg : na, color=#0585E1, linewidth=2, title="Support Line")
OTTC = #B800D9 
pALL=plot(nz(OTT[2]), color=OTTC, linewidth=2, title="OTT", transp=0)
alertcondition(cross(src, OTT[2]), title="Price Cross Alert", message="OTT - Price Crossing!")
alertcondition(crossover(src, OTT[2]), title="Price Crossover Alarm", message="PRICE OVER OTT - BUY SIGNAL!")
alertcondition(crossunder(src, OTT[2]), title="Price Crossunder Alarm", message="PRICE UNDER OTT - SELL SIGNAL!")
buySignalc = crossover(src, OTT[2])
plotshape(buySignalc and showsignalsc ? OTT*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
sellSignallc = crossunder(src, OTT[2])
plotshape(sellSignallc and showsignalsc ? OTT*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

dummy0 = input(true, title = "=Backtest Inputs=")
FromDay    = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear   = input(defval = 2005, title = "From Year", minval = 2005)
ToDay      = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "To Year", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if buySignalc
    strategy.entry("Long", strategy.long,when=Timerange())
if sellSignallc
    strategy.entry("Short", strategy.short,when=Timerange())