En la carga de los recursos... Cargando...

Tendencia de la puntuación Z siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-04-29 17:03:15
Las etiquetas:El EMA

img

Resumen general

La estrategia de seguimiento de tendencias Z-Score aprovecha la puntuación Z, una medida estadística que mide la desviación de un precio de su promedio móvil, normalizada contra su desviación estándar. Esta estrategia se destaca por su simplicidad y efectividad, especialmente en mercados donde los movimientos de precios a menudo vuelven a una media. A diferencia de los sistemas más complejos que pueden depender de una multitud de indicadores, la estrategia Z-Trend se centra en movimientos de precios claros y estadísticamente significativos, lo que la hace ideal para los operadores que prefieren un enfoque optimizado y basado en datos.

Principio de la estrategia

El punto central de esta estrategia es el cálculo de la puntuación Z. Se deriva tomando la diferencia entre el precio actual y el promedio móvil exponencial (EMA) del precio durante una longitud definida por el usuario, y luego dividiéndolo por la desviación estándar del precio durante la misma longitud:

z = (x - μ) / σ

Donde x es el precio actual, μ es la media de la EMA y σ es la desviación estándar.

Las señales de negociación se generan sobre la base de los umbrales predefinidos de cruce de la puntuación Z:

  • Entrada larga: cuando el puntaje Z sobrepasa el umbral positivo.
  • Salida larga: cuando el puntaje Z cae por debajo del umbral negativo.
  • Entrada corta: Cuando el puntaje Z cae por debajo del umbral negativo.
  • Salida corta: Cuando la puntuación Z se eleva por encima del umbral positivo.

Ventajas estratégicas

  1. Sencillez y eficacia: La estrategia se basa en pocos parámetros, es fácil de entender e implementar, al mismo tiempo que es muy eficaz para capturar las oportunidades de tendencia.
  2. Fundamento estadístico: El puntaje Z, como herramienta estadística establecida, proporciona una base teórica sólida para la estrategia.
  3. Adaptabilidad: Al ajustar parámetros como los umbrales, la EMA y los períodos de cálculo de la desviación estándar, la estrategia puede adaptarse de manera flexible a diversos estilos de negociación y entornos de mercado.
  4. Las señales claras: Las señales de negociación basadas en los cruces de puntuación Z son sencillas, lo que facilita la toma de decisiones y la ejecución rápidas.

Riesgos estratégicos

  1. Sensibilidad de los parámetros: la configuración inadecuada de los parámetros (por ejemplo, umbrales demasiado altos o bajos) puede distorsionar las señales de negociación, lo que conduce a oportunidades perdidas o pérdidas.
  2. Identificación de tendencias: en mercados agitados o limitados al rango, la estrategia puede enfrentar frecuentes señales falsas y tener un rendimiento inferior.
  3. Efecto de retraso: Como estrategia de tendencia, sus señales de entrada y salida se retrasan inherentemente, potencialmente sin el momento óptimo.

Estos riesgos se pueden gestionar y mitigar mediante un análisis continuo del mercado, la optimización de parámetros y una aplicación prudente basada en pruebas de retroceso.

Direcciones para la optimización de la estrategia

  1. Umbrales dinámicos: la introducción de umbrales dinámicos basados en la volatilidad puede adaptarse eficazmente a los diferentes estados del mercado y mejorar la calidad de la señal.
  2. Combinaciones de indicadores: la integración de otros indicadores técnicos como RSI, MACD, etc., para la confirmación secundaria de las señales comerciales puede mejorar la confiabilidad.
  3. Tamaño de la posición: la incorporación de mecanismos de control de la posición como ATR puede ayudar a reducir a tiempo la exposición en mercados agitados y aumentarla en los de tendencia, optimizando la relación riesgo-beneficio.
  4. Múltiples marcos de tiempo: El cálculo de los puntajes Z en múltiples marcos de tiempo puede capturar tendencias en diferentes niveles, enriqueciendo las dimensiones de la estrategia.

Resumen de las actividades

La estrategia de seguimiento de tendencias Z-Score, con su simplicidad, robustez y flexibilidad, ofrece una perspectiva única para capturar oportunidades de tendencias.


/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

// This strategy employs a statistical approach by using a Z-score, which measures the deviation of the price from its moving average normalized by the standard deviation.
// Very simple and effective approach

//@version=5
strategy('Price Based Z-Trend - strategy [presentTrading]',shorttitle = 'Price Based Z-Trend - strategy [presentTrading]', overlay=false, precision=3, 
         commission_value=0.1, commission_type=strategy.commission.percent, slippage=1, 
         currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

// User-definable parameters for the Z-score calculation and bar coloring
tradeDirection = input.string("Both", "Trading Direction", options=["Long", "Short", "Both"]) // User selects trading direction

priceDeviationLength = input.int(100, "Standard Deviation Length", step=1) // Length for standard deviation calculation
priceAverageLength = input.int(100, "Average Length", step=1) // Length for moving average calculation
Threshold = input.float(1, "Threshold", step=0.1) // Number of standard deviations for Z-score threshold
priceBar = input(title='Bar Color', defval=true) // Toggle for coloring price bars based on Z-score


// Z-score calculation based on user input for the price source (typically the closing price)
priceSource = input(close, title="Source")
priceZScore = (priceSource - ta.ema(priceSource, priceAverageLength)) / ta.stdev(priceSource, priceDeviationLength) // Z-score calculation

// Conditions for entering and exiting trades based on Z-score crossovers
priceLongCondition = ta.crossover(priceZScore, Threshold) // Condition to enter long positions
priceExitLongCondition = ta.crossunder(priceZScore, -Threshold) // Condition to exit long positions

longEntryCondition = ta.crossover(priceZScore, Threshold)
longExitCondition = ta.crossunder(priceZScore, -Threshold)
shortEntryCondition = ta.crossunder(priceZScore, -Threshold)
shortExitCondition = ta.crossover(priceZScore, Threshold)


// Strategy conditions and execution based on Z-score crossovers and trading direction
if (tradeDirection == "Long" or tradeDirection == "Both") and longEntryCondition
    strategy.entry("Long", strategy.long) // Enter a long position

if (tradeDirection == "Long" or tradeDirection == "Both") and longExitCondition
    strategy.close("Long") // Close the long position

if (tradeDirection == "Short" or tradeDirection == "Both") and shortEntryCondition
    strategy.entry("Short", strategy.short) // Enter a short position

if (tradeDirection == "Short" or tradeDirection == "Both") and shortExitCondition
    strategy.close("Short") // Close the short position


// Dynamic Thresholds Visualization using 'plot'
plot(Threshold, "Dynamic Entry Threshold", color=color.new(color.green, 50))
plot(-Threshold, "Dynamic Short Entry Threshold", color=color.new(color.red, 50))


// Color-coding Z-Score
priceZScoreColor = priceZScore > Threshold ? color.green : 
              priceZScore < -Threshold ? color.red : color.blue
plot(priceZScore, "Z-Score", color=priceZScoreColor)

// Lines
hline(0, color=color.rgb(255, 255, 255, 50), linestyle=hline.style_dotted)

// Bar Color
priceBarColor = priceZScore > Threshold ? color.green :
           priceZScore > 0 ? color.lime :
           priceZScore < Threshold ? color.maroon :
           priceZScore < 0 ? color.red : color.black
barcolor(priceBar ? priceBarColor : na)


Relacionados

Más.