Estrategia de backtesting del canal SSL basada en ATR y gestión del dinero


Fecha de creación: 2023-11-23 10:26:58 Última modificación: 2023-11-23 10:26:58
Copiar: 1 Número de Visitas: 731
1
Seguir
1617
Seguidores

Estrategia de backtesting del canal SSL basada en ATR y gestión del dinero

Descripción general

Esta estrategia es una estrategia de retroalimentación basada en los indicadores de la vía SSL, y combina funciones como el ATR Stop Loss, el ATR Stop Stop y la administración de fondos para probar la eficacia de la estrategia de la vía SSL de manera más completa.

Principio de estrategia

Indicadores de acceso SSL

El indicador de canal SSL se compone de una línea media de canal y una banda de canal. La línea media de canal es un promedio móvil simple, dividido en una línea superior y una línea inferior, generalmente tomando una media móvil simple durante los puntos altos como una línea superior y una media móvil simple durante los puntos bajos como una línea inferior.

Cuando el precio se acerca a la vía de subida se considera como sobrecompra y cuando el precio se acerca a la vía de bajada se considera como sobreventa. Cuando el precio rompe la banda de la vía, indica una señal de cambio de tendencia.

Los parámetros del indicador de la vía SSL en esta política se establecen como:ssl_period=16

El ATR se detuvo.

El ATR es el promedio de la amplitud real. Se puede utilizar para evaluar la volatilidad del mercado y determinar la posición de los paros de pérdida.

Esta estrategia utiliza los parámetrosatr_period=14Los indicadores ATR, combinados conatr_stop_factor=1.5yatr_target_factor=1.0Como multiplicador dinámico de los paros y paradas, se realiza un parón de pérdidas basado en la volatilidad del mercado.

Además, para adaptarse a las diferentes variedades, esta estrategia también incluye:two_digitLos parámetros de los contratos son de 2 bits de precisión (como el oro, el yen), lo que permite un ajuste flexible de la posición de parada de pérdidas.

Administración de fondos

La administración de fondos se realiza principalmente a través de parámetrosposition_size(posiciones fijas) yrisk(porcentaje de la ventana de riesgo)use_mm=trueEl módulo de administración de fondos se activará.

El objetivo principal de la administración de fondos es controlar el tamaño de la posición en cada posición abierta. Cuando se adopta el modelo de riesgo porcentual fijo, se calcula el margen de riesgo en función de los intereses de la cuenta y se convierte en el número de contratos, lo que reduce la pérdida individual.

Análisis de las ventajas

  • El uso de canales SSL para determinar la dirección de la tendencia tiene cierto efecto en la captura de la conversión de tendencias
  • Aplicación de ATR para el cálculo dinámico de las posiciones de stop loss y para adaptarse a la volatilidad del mercado
  • El uso de los principios de gestión de fondos ayuda a controlar el riesgo a largo plazo

Análisis de riesgos

  • El canal SSL puede determinar el cambio de tendencia, pero no es 100% confiable y puede generar señales erróneas
  • El ATR puede ser demasiado flexible o demasiado rígido al fijar un stop loss para seguir la volatilidad del mercado
  • La configuración incorrecta de los parámetros de administración de fondos también puede causar posiciones demasiado grandes o ineficientes

Estos riesgos pueden ser mejorados mediante:

  1. Confirmación en combinación con otros indicadores para evitar señales erróneas
  2. Ajuste adecuado de los parámetros del ciclo ATR para que el nivel de parada de pérdidas alcance el equilibrio óptimo
  3. Prueba diferentes parámetros de gestión de fondos para encontrar la mejor posición

Dirección de optimización

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización de los parámetros del canal SSL para encontrar la mejor combinación de parámetros
  2. Optimizar o reemplazar el mecanismo de frenado de ATR para que sea más completo
  3. Añadir otros filtros para evitar transacciones innecesarias
  4. Aumentar el módulo de control de posición para maximizar las ganancias y las pérdidas
  5. Ajuste de parámetros para diferentes variedades para mejorar la adaptabilidad de la estrategia
  6. Adición de herramientas cuantitativas para una respuesta y optimización más completa

A través de la prueba y optimización del sistema, esta estrategia puede convertirse en un sistema de transacciones cuantitativas fiable y estable.

Resumir

Esta estrategia integra los tres mecanismos de determinación de tendencias de los indicadores del canal SSL, ATR para establecer paradas de pérdidas y control de riesgos de gestión de fondos. La eficacia de la estrategia se puede comprobar a través de una retroalimentación completa y puede servir como marco básico para optimizar la estrategia de comercio cuantitativo. Al mismo tiempo, la estrategia también tiene espacio para mejorar, como la adición de otros indicadores de filtrado, parámetros de optimización y funciones de extensión.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © comiclysm

//@version=4
strategy("SSL Backtester", overlay=false)

//--This strategy will simply test the effectiveness of the SSL using
//--money management and an ATR-derived stop loss

//--USER INPUTS

two_digit = input(false, "Check this for 2-digit pairs (JPY, Gold, Etc)")
ssl_period = input(16, "SSL Period")
atr_period = input(14, "ATR Period")
atr_stop_factor = input(1.5, "ATR Stop Loss Factor")
atr_target_factor = input(1.0, "ATR Target Factor")
use_mm = input(true, "Check this to use Money Management")
position_size = input(1000, "Position size (for Fixed Risk)")
risk = input(0.01, "Risk % in Decimal Form")

//--INDICATORS------------------------------------------------------------

    //--SSL
    
sma_high = sma(high, ssl_period)
sma_low = sma(low, ssl_period)
ssl_value = 0
ssl_value := close > sma_high ? 1 : close < sma_low ? -1 : ssl_value[1]
ssl_low = ssl_value < 0 ? sma_high : sma_low
ssl_high = ssl_value < 0 ? sma_low : sma_high

    //--Average True Range
    
atr = atr(atr_period)

//--TRADE LOGIC----------------------------------------------------------

signal_long = ssl_value > 0 and ssl_value[1] < 0
signal_short = ssl_value < 0 and ssl_value[1] > 0

//--RISK MANAGMENT-------------------------------------------------------
strategy.initial_capital = 50000
balance = strategy.netprofit + strategy.initial_capital
risk_pips = atr*10000*atr_stop_factor
if(two_digit)
    risk_pips := risk_pips / 100
risk_in_value = balance * risk
point_value = syminfo.pointvalue
risk_lots = risk_in_value / point_value / risk_pips
final_risk = use_mm ? risk_lots * 10000 : position_size

//--TRADE EXECUTION-----------------------------------------------------

if (signal_long)
    stop_loss = close - atr * atr_stop_factor
    target = close + atr * atr_target_factor
    strategy.entry("Long", strategy.long, final_risk)
    strategy.exit("X", "Long", stop=stop_loss, limit=target)
if (signal_short)
    stop_loss = close + atr * atr_stop_factor
    target = close - atr * atr_target_factor
    strategy.entry("Short", strategy.short, final_risk)
    strategy.exit("X", "Short", stop=stop_loss, limit=target)
    
//--PLOTTING-----------------------------------------------------------

plot(ssl_low, "SSL", color.red, linewidth=1)
plot(ssl_high, "SSL", color.lime, linewidth=1)