Otras Criptomonedas

Una consecuencia inevitable del éxito de Bitcoin ha sido el auge de la competencia, y hoy en día una plétora de criptomonedas accesibles en los mercados digitales, que van desde las más cochambrosas ICOs huérfanas de padre y madre, francamente difíciles de distinguir de un mero scam, a proyectos sólidos con una comunidad activa detrás y un prestigio creciente. Puede que nombres como Ethereum, LiteCoin, Monero nos tienten y queramos añadirlos a nuestro universo de inversión. Vamos a ver cómo podemos incluirlos también a nuestro entorno profesional de backtesting.

El panorama se nos complica ligeramente respecto a lo que vimos en nuestro artículo previo porque Quandl sólo cubre Bitcoin en abierto. Por fortuna, este fantástico post de Patrick Triest en el cual se basa esta serie de tutoriales nos da la alternativa: utilizar la API abierta de la casa de cambio Poloniex.

Para facilitarle las cosas he integrado una función poloniex_crypto al módulo pyalgoext de nuestro repositorio de GitHub.

import datetime
import time
import pandas as pd

def poloniex_crypto(poloniex_pair, store, start_date=None, end_date=None):
    base_polo_url = 'https://poloniex.com/public?command=returnChartData&currencyPair={}&start={}&end={}&period={}'
    if start_date is None:
        start_date = datetime.datetime.strptime('2015-01-01', '%Y-%m-%d')  # get data from the start of 2015
    if end_date is None:
        end_date = datetime.datetime.now()  # up until today
    pediod = 86400  # pull daily data (86,400 seconds per day)
    start_time = int(time.mktime(start_date.timetuple()))
    end_time = int(time.mktime(end_date.timetuple()))

    json_url = base_polo_url.format(poloniex_pair, start_time, end_time, pediod)
    df = pd.read_json(json_url)
    df = df.set_index('date')
    df.index.rename("Date", inplace=True)
    df.to_csv(store,
        columns=["open", "high", "low", "close", "quoteVolume", "close"],
        header=["Open", "High", "Low", "Close", "Volume", "Adj Close"]
    )

En este caso el trabajo de conversión a realizar es mayor que con la API de Quandl, aunque nos siga ayudando la asombrosa flexibilidad de pandas. En primer lugar realizamos una llamada HTTP apropiadamente formateada a la API de Poloniex, que nos devuelve los datos en formato JSON. Posteriormente convertimos ese JSON en un dataframe normal, y de allí ya sólo nos queda grabarlo en disco con el formato CSV y las cabeceras requeridas por PyAlgoTrade.

Tiene unos sencillos ejemplos de descarga para mis preferidos, Ethereum (ETH) y LiteCoin (LTC) en el archivo CryptoData.py; le animo a que los utilice y también experimente con otras criptomonedas disponibles como Ethereum Classic (ETC), Dash (DASH), Siacoin (SC) y Monero (XMR).

Vamos a visualizar por ejemplo la cotización de Ethereum usando los conocimientos de Bitly que adquirimos en el artículo sobre gráficos avanzados (pulse sobre la imagen para obtener su versión interactiva):

Screen Shot 2017-09-24 at 10.03.18 PM
Cotización histórica del pair BTC – ETH

Tenga en cuenta que está descargando la información como pares contra el Bitcoin (BTC), no contra el dólar (ETC), lo cual no debería ser ningún problema a menos, por supuesto, que quiera compararlo con otros activos denominados en dólares u otras divisas, en cuyo caso deberá ajustar las series.

El código para crear este tipo de visualizaciones es bien sencillo, se lo dejo de ejemplo en el archivo CryptoViz.py de GitHub:

import pandas as pd
import plotly.offline as py
import plotly.graph_objs as go

df = pd.read_csv("data/BTC_ETH.csv")
df.set_index("Date", inplace=True)

viz = go.Scatter(x=df.index, y=df['Adj Close'])
py.plot([viz], filename="../store/btc-eth-poloniex.html")

Finalmente, piense que ahora no tiene por qué limitarse a probar metodologías que aprovechan un sólo activo sino que puede combinar varias de esas divisas en estrategias multiactivo al estilo que ya comentamos en otro artículo anterior, de forma que no sólo puede aumentar la rentabilidad sino, al mismo precio y si hace un buen estudio de las correlaciones entre divisas, reducir la volatilidad de su cartera gracias a los efectos beneficiosos de la diversificación; un aspecto fundamental que se cubre en detalle dentro del libro “Fundamentos del Análisis Técnico” que Carlos Doblado y un servidor hemos publicado con Editorial Planeta. Es una obra amena, accesible y, se lo reconozco, algo provocativa y gamberra, en la que no encontrará código pero sí las bases que le permitirán articular todos los conceptos del trading en un conjunto organizado. Le recomiendo que le eche una mirada.

Ríase, ríase… ¡Pero paso a paso cada día vamos haciendo mucho camino y con toda la funcionalidad combinada de nuestro entorno no nos para ni la Bruja Avería!

Anuncios

Un comentario en “Otras Criptomonedas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s