Strategie zur Nachverfolgung der Dynamik auf der Grundlage der Integration von Indikatoren

Schriftsteller:ChaoZhang, Datum: 2023-10-17 15:26:49
Tags:

img

Übersicht

Diese Strategie basiert auf einem benutzerdefinierten Indikator-Integrator, um die Kursentwicklungsrichtung zu bestimmen, indem die Summe der Abstände zwischen Preis und gleitendem Durchschnitt akkumuliert und somit den Trend verfolgt wird.

Strategie Logik

Die Strategie verwendet einen benutzerdefinierten Indikator zur Integration des Abstands zwischen Preis und gleitendem Durchschnitt, der wie folgt umgesetzt wird:

  1. Berechnen Sie den Abstand zwischen Preis und 200-Zeitrahmen-einfachem gleitenden Durchschnitt k=close-sma ((close,200)

  2. Definition der Integrationsperiode s=29, Akkumulation der Summe von k über die letzten s Perioden: Summe = 0, für i = 0 bis s, Summe := Summe + k[i]

  3. Wenn Summ>0 ist, wird ein langes Signal erzeugt. Wenn Summ<0 ist, wird ein kurzes Signal erzeugt.

  4. Wenn eine Long-Position eröffnet wird, schließt man eine Long-Position, wenn Summe < 0, wenn eine Short-Position eröffnet wird, schließt man eine Short-Position, wenn Summe > 0.

Die Strategie beurteilt die allgemeine Trendrichtung, indem sie verfolgt, ob die kumulierte Summe der Entfernung zwischen Preis und gleitendem Durchschnitt positiv oder negativ ist. Wenn das Integral positiv ist, zeigt es einen Aufwärtstrend an und eine Long-Position sollte gehalten werden. Wenn das Integral negativ ist, zeigt es einen Abwärtstrend an und eine Short-Position sollte gehalten werden.

Vorteile

  1. Der benutzerdefinierte Indikatorintegrator kann die Kursentwicklungsrichtung effektiv bestimmen.

  2. Das Integrationskonzept akkumuliert den Abstand zwischen Preis und MA und verbessert so die Genauigkeit der Trendbestimmung.

  3. Relativ einfache Logik, leicht zu verstehen und zu optimieren.

  4. Flexible Anpassung der Integrationsdauer zur Optimierung der Empfindlichkeit.

  5. Gute Backtest-Ergebnisse, stabile Gewinne, für den Live-Handel.

Risiken

  1. Eine unsachgemäße Einstellung der Integrationsperiode kann zu unempfindlichen Reaktionen führen und Trendwendepunkte verpassen.

  2. Eine unsachgemäße Einstellung der MA-Länge kann zu einer Fehleinschätzung des Trends führen.

  3. Plötzliche große Ereignisse können falsche Signale auslösen.

  4. Eine unsachgemäße Symbolwahl, sehr flüchtige Symbole können die Wirksamkeit beeinträchtigen.

Entsprechende Lösungen

  1. Optimierung der Integrationszeit für eine bessere Empfindlichkeit.

  2. Versuche verschiedene MA-Längen, um eine optimale für die Trendbestimmung zu finden.

  3. Schließen Sie die Strategie vor großen Ereignissen, um Fehler bei großen Preisänderungen zu vermeiden.

  4. Für eine bessere Leistung werden Symbole mit geringer Volatilität ausgewählt.

Verbesserungsrichtlinien

  1. Es sollten weitere Indikatoren wie den RSI für eine umfassende Bestimmung hinzugefügt werden.

  2. Ergebnisse der Integration der Forschung unter Verwendung verschiedener Arten von MA.

  3. Versuchen Sie, die Integrationsperiode für verschiedene Symbole automatisch zu optimieren.

  4. Fügen Sie Volumenindikatoren hinzu, um Fehler bei riesigen Preisschwankungen zu vermeiden.

  5. Verwenden Sie maschinelles Lernen, um die Parameter für die Robustheit automatisch zu optimieren.

Schlussfolgerung

Diese Strategie beurteilt die Trendrichtung mithilfe eines benutzerdefinierten Indikatorintegrators, indem die Entfernung zwischen Preis und MA angesammelt wird. Die Logik ist einfach und klar, und die Backtest-Ergebnisse sind gut. Sie kann durch Anpassung von Integrationsparametern, Hinzufügen von Hilfsindikatoren, automatischer Optimierung usw. für eine zuverlässigere praktische Anwendung verbessert werden.


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Mehr