Estrategia de backtesting del canal STARC


Fecha de creación: 2023-12-05 14:52:20 Última modificación: 2023-12-05 14:52:20
Copiar: 0 Número de Visitas: 667
1
Seguir
1619
Seguidores

Estrategia de backtesting del canal STARC

Descripción general

La estrategia de retroalimentación del canal STARC es una estrategia de negociación cuantitativa basada en el indicador STARC. La estrategia permite la generación de señales de transacción de compra y venta de ruptura mediante la construcción de canales ascendentes y descendentes de STARC.

Principio de estrategia

El núcleo de la estrategia de detección de canales STARC es el indicador STARC. El indicador incluye:

  • Línea de referencia: promedio móvil simple de n días SMA
  • Trayectoria superior: SMA + K × amplitud real media de las fluctuaciones ATR
  • Baja línea: SMA - K × ATR

Cuando el precio de cierre es mayor que el precio de salida, genera una señal de compra; cuando el precio de cierre es menor que el precio de salida, genera una señal de venta.

La estrategia calcula diariamente la trayectoria ascendente y descendente del canal STARC y determina si el precio de cierre rompe la trayectoria ascendente para generar señales de negociación. Al mismo tiempo, la estrategia establece parámetros de reversión que pueden alternar entre posiciones largas y posiciones vacías para adaptarse a diferentes situaciones del mercado.

Análisis de las ventajas

Las estrategias de respuesta de canal STARC tienen las siguientes ventajas:

  1. El uso de los indicadores STARC para construir un canal ascendente y descendente, con buenos resultados de retroalimentación;
  2. Un mecanismo de conmutación de depósitos en vacío integrado, que se adapta a una variedad de entornos de mercado;
  3. La configuración de los parámetros es flexible, los valores de K y la longitud de la línea media se pueden ajustar y optimizar.
  4. Las reglas de la estrategia son claras, fáciles de entender y implementar.
  5. Indicadores de visualización para determinar la posición del mercado de forma intuitiva.

Análisis de riesgos

La estrategia de retroalimentación de los canales STARC también tiene ciertos riesgos:

  1. Los indicadores STARC se utilizan a menudo para transacciones de líneas medianas y largas, y pueden tener un efecto negativo en el corto plazo.
  2. Las operaciones de ruptura son fácilmente estabilizadas y requieren un estricto stop loss.
  3. La configuración incorrecta de los parámetros de reversión puede conducir a una transacción demasiado frecuente.
  4. La optimización incorrecta de los parámetros puede causar una curva de ajuste.

Las siguientes medidas son necesarias para prevenir los riesgos:

  1. Seleccione el ciclo de transacción adecuado, como el ciclo de línea media y larga, como la línea de sol;
  2. Establecer una posición de parada razonable para controlar las pérdidas individuales;
  3. La configuración de los parámetros de reversión es prudente y evita el cambio frecuente de posiciones.
  4. Optimización de los parámetros de combinación múltiple para evitar la sobreadaptación.

Dirección de optimización

Las principales direcciones de optimización de la estrategia de detección de canales STARC incluyen:

  1. Parámetros de optimización: ajuste de la longitud media de la línea, los valores de K, el ciclo ATR y otros parámetros para encontrar la combinación óptima de parámetros;
  2. Incorporación de mecanismos de detención de pérdidas: configuración de detención de movimiento, detención de tiempo, detención de porcentaje, etc., para controlar el riesgo;
  3. En combinación con otros indicadores: la inclusión de indicadores como el volumen de transacciones y la banda de Brin para filtrar y mejorar la eficiencia;
  4. Parámetros de ajuste dinámico: Optimización automática de los parámetros de ajuste según los cambios en el mercado para mejorar la estabilidad.

Estas direcciones de optimización permiten aumentar la rentabilidad y la estabilidad de la estrategia, a la vez que se controlan los riesgos.

Resumir

La estrategia de retroalimentación del canal STARC ha tenido un buen efecto en general, logrando una ruptura de la línea media y larga basada en los indicadores STARC. La ventaja de la estrategia es que el uso del canal STARC genera estabilidad de la señal de negociación, mientras que el mecanismo de reversión se puede adaptar a los cambios en el mercado. También necesitamos proteger el shean, establecer parámetros de stop loss y optimización para que la estrategia sea más estable y eficiente.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/04/2018
// A type of technical indicator that is created by plotting two bands around 
// a short-term simple moving average (SMA) of an underlying asset's price. 
// The upper band is created by adding a value of the average true range 
// (ATR) - a popular indicator used by technical traders - to the moving average. 
// The lower band is created by subtracting a value of the ATR from the SMA.
// STARC is an acronym for Stoller Average Range Channels. The indicator is 
// named after its creator, Manning Stoller.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="STARC Bands Backtest", overlay = true)
LengthMA = input(5, minval=1)
LengthATR = input(15, minval=1)
K = input(1.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
xMA = sma(close, LengthMA)
xATR = atr(LengthATR)
xSTARCBandUp = xMA + xATR * K
xSTARCBandDn = xMA - xATR * K
pos = iff(close > xSTARCBandUp, 1,
       iff(close < xSTARCBandDn, -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(xMA, color=blue, title="MA")
plot(xSTARCBandUp, color = green, title="UpBand")
plot(xSTARCBandDn, color=red, title="DnBand")