Saltar al contenido

3 formas distintas de ver el mercado que solo podrás ver con Python

    3 formas ver mercado

    Hay veces que hay que salir un poco de lo común para encontrar técnicas o estrategias que pueden llegar a vencer al mercado. Una de las formas de romper con las formas tradicionales de ver el mercado puede ser cambiando la forma en la que unimos la información al visualizar el mercado. Normalmente vemos las velas japonesas y poco más, ya que las plataformas como metatrader o tradingview no nos lo ofrecen. Hay veces que cambiamos la forma de visualizar estas velas pasando a velas Renco o similiares. ¿Pero hay otras formas de ver el mercado siguiendo con las velas japonesas a las que ya estamos tan acostumbrados.

    La respuesta es sí, existen otras formas de poder ver el mercado y de poder buscar inconsistencias en ellas o de buscar patrones distintos a los que ya estamos acostumbrados a ver.

    En este articulo vamos a repasar un poco las distintas formas de visualizar la información que nos da el broker. Así que no me lio más y vamos a ello.

    Descargando la información

    Lo primero es que vamos a descargar la información en modo tick para con este modo poder empezar a jugar los diferentes modos de visualización del mercado.

    Para ello utilizaremos Darwinex que nos da una información a nivel de tick y no de velas que es lo que necesitamos para poder hacer nuestro estudio. No me voy a parar a explicar como hacer esto ya que existe ya una entrada en el blog para hacerlo. Así que directamente tendré los datos de los ticks almacenados en un directorio llamado “darwinex ticks” y los leemos así:

    # Variables
    directorio_datos = "darwinex ticks"
    onlyfiles = [f for f in os.listdir(directorio_datos) if os.path.isfile(os.path.join(directorio_datos, f))]

    Con esto ya tendremos los datos en la variable onlyfiles, y ahora para descomprimirla hacemos lo siguiente:

    appended_data = []
    for stock_file in onlyfiles:
    	with open(directorio_datos+"/"+stock_file, 'rb') as fd:
    		gzip_fd = gzip.GzipFile(fileobj=fd)
    		appended_data.append(pd.read_csv(gzip_fd,names=["Date","Price","Size"]))
    	df_stock = pd.concat(appended_data)
    	df_stock['Date'] = pd.to_datetime(df_stock['Date'],unit='ms')
    df_stock = df_stock.set_index('Date')

    También generaremos una función para que nos sea más fácil ver las gráficas utilizando la librería plotly:

    def dibujar_grafica(data_stock, titulo):
        fig = go.Figure(data=
            [go.Candlestick(x = data_stock.index,
                            open  = data_stock["open"],
                            high  = data_stock["high"],
                            low   = data_stock["low"],
                            close = data_stock["close"])]
        )
        fig.update_layout(
            height=500,
            title=titulo,
            yaxis_title="Precio ($)"
        )
        fig.update_layout(xaxis_rangeslider_visible=False)
        fig.show()

    Con esto ya estamos preparados para hacer el estudio de las nuevas gráficas.

    Velas típicas

    En esta parte poco voy a entrar muy a fondo, son las típicas barras que hemos visto toda la vida desde que nos ha gustado el trading. Todos ya sabemos como son y como se ven.

    En la barra de abajo es donde se ven las temporalidades, en este caso son temporalidades de 5 minutos, las velas muestran la variación del precio dentro de esos 5 minutos. Creo que este es un concepto que ya tenemos todos claro así que no me voy a parar aquí.

    Ver el mercado de la forma tradicional con velas japonesas

    Velas de tick

    Las barras de también son muy fáciles de explicar y ya cambia bastante la forma de ver el mercado. Si ponemos unas barras de volumen de 100 ticks, pues las barra esperará a completar 100 ticks para poder mostrar la vela. Sería igual que en las barras de tiempo que esperamos 60 segundos para completar una barra de minuto, pues aquí esperaríamos 100 ticks (o los que quisiéramos) para completar una barra de tick.

    Lo primero que tenemos que hacer es crear una función para que no nos queden barras sueltas, es decir si tenemos 1000 ticks y queremos barras de 11 ticks (sí hay que ser retorcido), pues para que no quede mal calcularemos el total de barras que podremos analizar (que en el ejemplo serían de 990)

    def barras(total, deseado): 
        return np.int64(total/ deseado) * deseado

    Con esto ya podemos hacer la agrupación de manera muy sencilla:

    df_ticks = df_stock.groupby(barras(np.arange(len(df_stock)), 10)).agg({'Price': 'ohlc', 'Size': 'sum'})

    Y dibujar la gráfica así:

    Gráfica de Ticks

    Velas de volumen

    Estas barras son similares a las barras de ticks, pero aquí lo que contabilizamos es el total de volumen que queremos por barra, es decir, si decimos que haga barras de 100.000 de volumen, veremos que las barras se completan.

    Para crear las barras lo que hay que hacer antes es descomponer los volumenes de cada tick en un volumen, para tener operaciones de volumen 1 y así calcular bien. Sino podría darse el caso de que al tener en una sola compra la venta de varias unidades veamos gráficas que serían correctas. Es decir si miramos los ticks de las operaciones podremos ver lo siguiente:

    Tabla de ticks

    Como vemos hay tamaños de operación muy grandes y que si no lo separamos tendríamos diferentes volúmenes en cada vela. Así que por ejemplo en el primer ejemplo tendríamos que separar ese tick de 159.29, en 95 operaciones de ese tipo. Para hacer eso creamos una función que nos lo haga de la siguiente manera:

    def multiply(data):
        df = pd.DataFrame(columns=['Date', 'Price', 'Size'])
        for tick in data.itertuples():
            for i in range(int(tick[2])):
                s = pd.DataFrame({'Date': tick[0], "Price":tick[1], 'Size':1}, index=[0])
                df = pd.concat([df,s], ignore_index=True)
        return df

    Después ya solo nos queda pasar el dataframe por esta función para que nos separe cada operación

    Gráfica de volumen

    Velas de dólar

    Muy similares también a las demás. Estas barras se producen cuando se gastan una cantidad de dólares, es decir si hacemos barras de 100 dólares tendremos que comprobar el volumen y el precio para ver cuando se llega a comprar la cantidad total de 100 dólares y en ese momento completaremos una barra.

    df_dolar = df_stock.groupby(bar(np.cumsum(df_stock['Price']), 1000)).agg({'Price': 'ohlc', 'Size': 'sum'})
    dibujar_grafica(df_dolar['Price'].head(100), "Grafica de Dolar")
    Gráfica de dolar

    Normalmente se suele hacer con dólares, ya que los precios suelen venir en gráficas con los precios de esta unidad monetaria, pero lógicamente podríamos hacer velas de Euro, Yen, o lo que quisiéramos haciendo la transformación que corresponda.

    Ver el mercado en conjunto

    Veamos las diferencias que supone sobre un mismo periodo de tiempo la vista en los distintos formatos:

    newplot 1 1
    newplot 2 1
    newplot 3 1
    newplot 4 1

    Como se puede ver si ajustamos lo suficiente las gráficas son muy parecidas, pero en algunos casos podemos ver más limpias las subidas y las bajadas de los precios sin tantos vaivenes. Igual os podéis estar preguntando si estas gráficas sirven para algo ya que se ven muy parecidas, pues os voy a dejar un ejemplo de un caso de volumen donde se ve claramente una operación de venta al mismo precio con mucho volumen:

    Gráfica de Volumen con anomalía

    Estas anomalías que se pueden ver en un gráfico de volumen no sería posible visualizarlas en ninguno de los otros gráficos. Así que como veis es importante tener al menos conocimiento de estos gráficos para intentar buscar oportunidades en los valores en los cuales estamos trabajando.

    Viendo estas gráficas creo que todos deberíamos, al menos, probar si estos nuevos tipos de gráfica nos sirven más que los clásicos. Así que ¿a qué estáis esperando? Ya podéis empezar a hacer vuestros propios estudios con estos nuevos gráficos.

    Conclusiones

    Como se puede observar en este artículo hay más de una forma de ver el mercado, es decir, la información de las operaciones que se realizan en la bolsa, aunque los visualizadores habituales siempre nos muestran las mismas gráficos o, en aquellos que nos dejan algo más de libertad, solo se pueden hacer muy pocos cambios.

    Ahora con estas nuevas formas de visualización podemos abordar otras formas de poder llegar a ser rentables, ya que podemos hacer los mismos análisis técnicos que hacíamos con las gráficas de tiempo en este nuevo tipo de gráficas y obtendremos resultados muy diferentes (quizá hasta más rentables, quién sabe).

    Ahora os podéis estar preguntando: ¿Hay más formas de ver los datos de la bolsa? ¿Hay más formas de poder ver los datos que nos muestren incluso más información? Pues tengo que decir que “Sí” que las hay y pueden aportarnos incluso mucho más valor. Pero por no hacer este artículo muy largo lo retomaré más adelante.

    Como siempre, si tenéis cualquier duda o mejora del artículo no dudéis en poneros en contacto conmigo y os contestaré lo antes posible.

    Etiquetas:

    Deja una respuesta

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