Center of Gravity Backtest Handelsstrategie


Erstellungsdatum: 2023-12-12 16:56:51 zuletzt geändert: 2023-12-12 16:56:51
Kopie: 0 Klicks: 677
1
konzentrieren Sie sich auf
1621
Anhänger

Center of Gravity Backtest Handelsstrategie

Überblick

Die Schwerpunkt-Retracing-Trading-Strategie ist eine Handelsstrategie, die auf Moving Averages basiert. Sie berechnet den Mittelpunkt des Kurses, die Position des Schwerpunkts, und erstellt einen Preiskanal, der als Korridor für die Angabe des Vermögenswertes dient. Die Strategie kann in den Eingabe-Einstellungen als Überschreitung oder als Überschreitung verwendet werden.

Strategieprinzip

Die Strategie berechnet die Position des Schwerpunkts durch eine lineare Regressionsfunktion. Speziell berechnet sie die lineare Regression des Schlusskurses, d.h. die Zentrumspitze des Kursraums, mit einer Länge von Length. Darauf basierend erstellt sie dann einen Preiskanal, der sich nach oben und unten bewegt. Die unteren Grenzen auf dem Preiskanal dienen als Plus- und Minussignale.

Analyse der Stärken

Es ist eine sehr einfache Durchbruchstrategie mit folgenden Vorteilen:

  1. Es ist klar, dass es sich um eine einfache Umsetzung handelt.
  2. Die Rückmeldung war gut und hatte eine gewisse Einsatzfähigkeit.
  3. Die Parameter sind flexibel eingestellt und können an unterschiedliche Marktbedingungen angepasst werden.
  4. Konfigurierbarer Umkehrschritt für den beidseitigen Betrieb.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es besteht die Gefahr einer Überfusion. Die Parameter in der Festplatte müssen neu optimiert werden.
  2. Ein erfolgloser Durchbruch könnte zu größeren Verlusten führen.
  3. Die Häufigkeit der Transaktionen kann relativ hoch sein und die Nutzung der Mittel muss kontrolliert werden.

Das Risiko kann durch Anpassung der Parameter Bands, Length usw. kontrolliert werden. Es kann auch ein Stop-Loss-System eingerichtet werden, um den maximalen Verlust zu begrenzen.

Optimierungsrichtung

Die Strategie kann weiter optimiert werden:

  1. Der Trend-Indikator filtert die Signale und vermeidet den Rückschlag.
  2. Erhöhung der Stop-Loss-Regelung.
  3. Optimierung der Parameter und Verbesserung der Gewinn- und Verlustquote.
  4. Erhöhung der Positionskontrolle und Verringerung der Risiken.

Zusammenfassen

Die Strategie ist eine einfache Durchbruchstrategie. Sie hat eine klare Denkweise, eine starke Handlungsfähigkeit und eine flexible Parameter-Einstellung. Gleichzeitig besteht ein gewisses Risiko, das eine angemessene Optimierung erfordert.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/03/2018
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Center Of Gravity Backtest", shorttitle="CFO", overlay = true)
Length = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
xLG = linreg(close, Length, m)
xLG1r = xLG + ((close * Percent) / 100)
xLG1s = xLG - ((close * Percent) / 100)
xLG2r = xLG + ((close * Percent) / 100) * 2
xLG2s = xLG - ((close * Percent) / 100) * 2
xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
pos = iff(close > xSignalR, 1,
       iff(close < xSignalS, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xLG, color=blue, title="CFO")
plot(xLG1r, color=green, title="LG1r")
plot(xLG2r, color=green, title="LG2r")
plot(xLG1s, color=red, title="LG1s")
plot(xLG2s, color=red, title="LG2s")