Saltar al contenido

¿Puede la correlación frenar mis pérdidas en el trading?

    Correlación portada

    Todos sabemos que poner un stop loss puede hacer que las perdidas no sean muy grandes, pero existen otros métodos de incluso minimizar estas pérdidas. ¿Cuantas veces hemos visto como nuestro dinero caía sin sentido y no podíamos hacer nada? Aquí vamos a ver una posible solución a este problema.

    Uno de los principios que indica Markowitz en su teoría moderna de las carteras es comprar activos que tengan correlación entre entre ellos, y eso es lo que vamos a ver aquí.

    Introducción

    En 1952 Markowitz publicó su articulo en el cual se daban diversos puntos para crear una cartera con más o menos aversión al riesgo. Uno de los métodos que proponía era utilizar activos que estuvieran inversamente relacionados. ¿Qué significa esto? Que cuando uno sube el otro bajará y viceversa.

    La medición de los activos relaciones se mide en una escala de porcentaje que va desde 1 hasta -1. Si sale un 1 significa que hay un correlación positiva entre los dos valores, es decir, que cuando uno sube el otro también subirá. Si la correlación es de 0 entonces significa que no hay ningún tipo de relación entre un activo y el otro, es decir, son completamente independientes. Si la correlación es de -1 entonces es cuando están inversamente relacionados, cuando sube uno el otro bajará.

    Como podemos ver no interesa encontrar este tipo de activos que están inversamente relacionados para cubrir las pérdidas de mi sistema. De esta forma, si pensamos que una acción va a dar un subidón grande y nos equivocamos, la correlación nos salvará de un gran perdida.

    Descarga de datos para las pruebas

    Veamos un ejemplo de como podemos ver las correlaciones entre los valores más importantes del forex. Esto se podría hacer igual con acciones de cualquier tipo o con los valores que tengáis en mente y así ver la representación de cada uno de ellos.

    forex_simbols=["EURUSD=X", "GBPUSD=X", "USDJPY=X", "AUDUSD=X", "EURGBP=X", "USDCAD=X", "USDCHF=X", "NZDCHF=X", "USDCNY=X", "USDHKD=X"]
    data = pd.DataFrame()
    for symbol in forex_simbols:
        ticker = yfinance.Ticker(symbol)
        ticker = pd.DataFrame(ticker.history(period="1mo")['Close'])
        # Le paso el nombre de la columna como una lista
        if not ticker.empty:
            ticker.columns = [symbol]
            if data.empty:
                data = ticker
            else:
                if len(data) == len(ticker):
                    data.insert(len(data.columns),symbol, ticker)
    data.columns=["EURUSD", "GBPUSD", "USDJPY", "AUDUSD", "EURGBP", "USDCAD", "USDCHF", "NZDCHF", "USDCNY", "USDHKD"]

    Con estas líneas de código vemos como descargar los símbolos del forex que nos interesan, en un plazo de seis meses de datos. Aquí también podemos escoger descargar más o menos datos, pero siempre nos quedará la duda si estos plazos son realmente representativos de lo que pueda pasar en un futuro. Para gráficos diarios seis meses está bien, pero si hacéis trading con otras temporalidades tendréis que escoger otros datos.

    Otro detalle de este trozo de código es que lo que vamos haciendo es creando columnas con las diferentes divisas, y las filas serán los días de cada operativa. De esta forma nos será más sencillo hacer que la propia librería de panda nos analice los datos descargados.

    Tipos de correlaciones

    Para calcular las correlaciones la librería de pandas nos da tres formas diferentes de calcularlas:

    • pearson: Mide la correlación lineal entre dos variables. Este coeficiente se considera el más fuerte ya que tiene suposiciones sobre los datos más altas. Pero hay que tener en cuenta que solo considera una dependencia lineal completa (una línea recta) y en requiere que las variables se distribuyan normalmente (aunque no es imprescindible). Es muy frágil a los valores atípicos, es decir si un valor se dispara mucho llegando a valores extraños para el este coeficiente no sería tan útil.
    • kendall: Mide la asociación ordinal entre dos variables, y funciona mejor con conjuntos de datos pequeños y no requiere que los datos se distribuyan normalmente. Puede llegar a ser muy lento, ya que este algorítmo tiene una complejidad de n al cuadrado.
    • spearman: Mide si la relación entre dos variables es monótona. Dos variables están correlacionadas monótonamente si cualquier valor mayor de una variable resultará en un valor mayor de la otra variable. Al igual que Kendall tampoco requiere que las variables se distribuyan normalmente pero es bastante más rápido, esto se debe a que su complejidad en n·log(n).

    Correlación de Pearson

    La correlación por defecto de pandas es la pearson ya que es la más utilizada. Pearson trata de correlar a través de una línea recta entre las variables.

    correlation = data.corr(method="pearson")
    correlation.style.background_gradient(cmap='coolwarm')

    Veamos como se vería la salida:

    Correlación Pearson

    Con esta gráfica podemos ver muy bien como proteger nuestras inversiones si invertimos en uno de los valores de la tabla. Según Pearson si invertimos en, por ejemplo, el Euro-dolar podremos compra dolar-yen para protegernos.

    Correlación de Kendall

    La correlación de Kendall se programa de una forma muy similar:

    correlation = data.corr(method="kendall")
    correlation.style.background_gradient(cmap='coolwarm')

    Después de un ratillo más largo que con Pearson veremos su salida:

    Correlación Kendall

    Para empezar los valores parecen menos altos, pero también se puede ver que surgen correlaciones que antes no existian. Con kendall parece que la mejor correlación negativa del Euro-dolar es con el Dolar con el dolar honkonés. Aun así, si nos fijamos vemos que está seguido muy de cerca por el dolar-yen.

    Correlación de Spearman

    La correlación de Spearman es igual que las anteriores:

    correlation = data.corr(method="spearman")
    correlation.style.background_gradient(cmap='coolwarm')

    Y su salida es esta:

    Correlación Spearman

    Esta correlación se parece más a la de Kendall que a la Pearson por sus valores, aunque parece que las correlaciones son mayores que las calculadas con Kendall.

    ¿Cual utilizar?

    Como vemos los cambios no es que sean drámaticos en los cálculos y los valores son bastante parecidos. Sobre todo entre Peason y Spearman.

    Siempre que los datos tengan una distribución no normal, como es el caso de la bolsa, se debería usar Spearman o Kendall. Aun así, normalmente se elige la correlación de Kendall ya que posee una sensibilidad de error bruto más pequeña (más robusta) y una varianza asintótica más pequeña (más eficiente). Pero el tiempo de computación con Kendall nos puede dar una mala pasada.

    Conclusiones

    Entonces, ¿podemos decir que, por ejemplo, cuando el EURGBP sube el USD-JPY tiene que bajar y así frenar nuestras pérdidas?. La respuesta corta y rápida es que no, pero suele suceder así la mayor parte de los casos.

    Una de mis frases favoritas es que “Correlación no implica causalidad”. Es decir que el hecho de que dos evento se den siempre uno a la vez que el otro no implica que uno sea la causa del otro. Con lo cual no tiene porque salvarnos, aunque en la mayoría de las veces así lo haga.

    correlacion causalidad

    Queda a decisión de cada uno hacer el estudio en su caso con sus temporalidades y llegar a una conclusión si en su caso esta correlación es real o no. En muchos casos tiene lógica que esto sea así, solo hay que saber encontrar cuando se da este fenómeno.

    Oval@3x 2

    ¡No te pierdas ningún post!

    ¡No enviamos spam! Lee nuestra política de privacidad para más información.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *