Zentrum der Schwerkraft Backtesting Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-12 16:56:51
Tags:

img

Übersicht

Die Center of Gravity-Backtesting-Handelsstrategie ist eine Handelsstrategie, die auf gleitenden Durchschnitten basiert. Sie berechnet das center des Preises, d.h. die Position des Schwerpunkts, und konstruiert Preiskanäle als Korridore für Anlagekoten. Die Strategie kann in den Eingabeinstellungen von lang zu kurz wechseln.

Strategieprinzip

Die Strategie berechnet die Schwerpunktposition durch die lineare Regressionsfunktion. Insbesondere berechnet sie den linearen Regressionswert des Schlusskurses über die Längeperiode, der center des Preises ist. Die Preiskanäle werden dann auf dieser Grundlage durch Auf- und Abbewegung von Prozent% konstruiert. Die oberen und unteren Grenzen des Preiskanals dienen als Long- und Short-Signale. Wenn der Preis durch die obere Schiene bricht, gehen Sie lang; wenn der Preis unter die untere Schiene bricht, gehen Sie kurz. Der SignalLine-Parameter wird verwendet, um auszuwählen, ob der erste Kanal oder die oberen und unteren Schienen des zweiten Kanals als Handelssignale verwendet werden sollen. Der umgekehrte Parameter wird verwendet, um Long und Short umzukehren.

Analyse der Vorteile

Dies ist eine sehr einfache Breakout-Strategie mit folgenden Hauptvorteilen:

  1. Die Idee ist klar und leicht zu verstehen und umzusetzen.
  2. Gute Rücktests mit einer gewissen praktischen Machbarkeit.
  3. Flexible Einstellungen von Parametern zur Anpassung an verschiedene Marktumgebungen.
  4. Konfigurierbarer Umkehrhandel, geeignet für den Zweigerichtungsbetrieb.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es kann zu Risiken im Rahmen des Backtest-Prozesses kommen, wobei die Parameter für den Live-Handel neu optimiert werden müssen.
  2. Versagte Ausbrüche können zu großen Verlusten führen.
  3. Die Handelsfrequenz kann relativ hoch sein, daher muss die Kapitalnutzungskonte kontrolliert werden.

Die Risiken können durch Anpassung von Parametern wie Bands, Länge usw. kontrolliert werden. Der Stop-Loss kann auch so eingestellt werden, dass der maximale Verlust begrenzt wird.

Optimierungsrichtlinien

Die Strategie kann auf folgende Weise weiter optimiert werden:

  1. Kombination mit Trendindikatoren, um Signale zu filtern und gegen den Trend zu handeln.
  2. Hinzufügen eines Stop-Loss-Mechanismus.
  3. Optimieren Sie die Parameter-Einstellungen, um die Gewinnquote zu erhöhen.
  4. Um das Risiko zu reduzieren, fügen Sie die Positionskontrolle hinzu.

Zusammenfassung

Die Center of Gravity-Backtesting-Handelsstrategie ist eine einfache Breakout-Strategie. Sie verfügt über klare Logik, gute Praktikabilität und flexible Parameter-Einstellungen. Gleichzeitig gibt es auch bestimmte Risiken, die ordnungsgemäß optimiert und kontrolliert werden müssen. Die Strategie eignet sich als Grundstrategie für den Live-Handel und die Optimierung und eignet sich auch sehr gut für Anfänger.


/*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")

Mehr