Estrategia de negociación de pruebas de retroceso del centro de gravedad

El autor:¿ Qué pasa?, fecha: 2023-12-12 16:56:51
Las etiquetas:

img

Resumen general

El centro de gravedad es una estrategia de negociación basada en promedios móviles, que calcula el centro del precio, es decir, la posición del centro de gravedad, y construye canales de precios como corredores para cotizaciones de activos.

Principio de la estrategia

La estrategia calcula la posición del centro de gravedad a través de la función de regresión lineal. Específicamente, calcula el valor de regresión lineal del precio de cierre durante el período de longitud, que es el centro del precio. Los canales de precios se construyen luego moviéndose hacia arriba y hacia abajo en porcentaje sobre esta base. Los límites superior e inferior del canal de precios sirven como señales largas y cortas respectivamente. Cuando el precio rompe el carril superior, vaya largo; cuando el precio rompe por debajo del carril inferior, vaya corto.

Análisis de ventajas

Esta es una estrategia de escape muy simple con las siguientes ventajas principales:

  1. La idea es clara y fácil de entender y aplicar.
  2. Los resultados de las pruebas de retroceso son buenos con cierta viabilidad práctica.
  3. Configuración de parámetros flexibles para adaptarse a los diferentes entornos del mercado.
  4. Las operaciones de inversión configurables, adecuadas para el funcionamiento bidireccional.

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. Puede haber riesgos de sobreajuste en el proceso de backtest. Los parámetros deben volver a optimizarse para el comercio en vivo.
  2. Las fugas fallidas pueden llevar a grandes pérdidas.
  3. La frecuencia de las operaciones puede ser relativamente alta, por lo que es necesario controlar la relación de utilización del capital.

Los riesgos se pueden controlar ajustando parámetros como bandas, longitud, etc. También se puede establecer un stop loss para limitar la pérdida máxima.

Direcciones de optimización

La estrategia se puede optimizar aún más de las siguientes maneras:

  1. Combinar con indicadores de tendencia para filtrar las señales y evitar el comercio contra la tendencia.
  2. Añadir el mecanismo de stop loss.
  3. Optimice la configuración de parámetros para aumentar la proporción de ganancias.
  4. Añadir el control de posición para reducir el riesgo.

Resumen de las actividades

La estrategia de trading de backtesting del Centro de Gravedad es una estrategia de breakout simple. Tiene una lógica clara, buena practicidad y ajustes de parámetros flexibles. Al mismo tiempo, también hay ciertos riesgos que deben optimizarse y controlarse adecuadamente. La estrategia es adecuada como una estrategia básica para el comercio en vivo y la optimización, y también es muy adecuada para que los principiantes aprendan.


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

Más.