6 votos

¿Software de código abierto para el cribado y escaneo de valores mediante análisis técnico?

Estoy buscando un software de código abierto que pueda descargar datos bursátiles (yahoo/google finance, etc.) y que se pueda utilizar para la selección/escaneo de acciones utilizando el análisis técnico, por ejemplo:

  1. devolver la lista de acciones si el precio de cierre es mayor que la media móvil de 10 períodos, o
  2. devuelve la lista de acciones si la banda de bolinger superior es mayor que el precio de cierre de la acción, etc.

¿Puede alguien sugerir un software de código abierto similar?

6voto

penti Puntos 93

Creo que las soluciones más sofisticadas se encuentran dentro del universo R.

Un paquete que me viene a la mente es el quantmod package . Puedes utilizarlo para descargar datos de Yahoo y Google finance, trazar gráficos y filtrar tus acciones utilizando todo tipo de indicadores técnicos (que vienen con el paquete).

Se puede encontrar en CRAN: https://cran.r-project.org/web/packages/quantmod/index.html

Para empezar: http://www.quantmod.com/examples/

Una galería de algunos indicadores técnicos: http://www.quantmod.com/gallery/

La documentación completa (100 p.) puede encontrarse aquí: https://cran.r-project.org/web/packages/quantmod/quantmod.pdf

5voto

NetPlayer Puntos 11

Siendo la pregunta etiquetada como python y dado que busco pequeños retos para mi plataforma, backtrader Aproveché la oportunidad para ver lo fácil que sería hacer esto con la plataforma.

Documentado en: http://www.backtrader.com/posts/2016-08-15-stock-screening/stock-screening/

El código principal en este caso es un analizador que busca los activos que están por encima de la media móvil de 10 días (ejemplo del OP). El código del analizador:

class Screener_SMA(bt.Analyzer):
    params = dict(period=10)

    def start(self):
        self.smas = {data: bt.indicators.SMA(data, period=self.p.period)
                     for data in self.datas}

    def stop(self):
        self.rets['over'] = list()
        self.rets['under'] = list()

        for data, sma in self.smas.items():
            node = data._name, data.close[0], sma[0]
            if data > sma:  # if data.close[0] > sma[0]
                self.rets['over'].append(node)
            else:
                self.rets['under'].append(node)

Se puede utilizar directamente con el ejecutable incorporado btrun (creado por setup.py / pip ) o gestionado con un script hecho a mano. Un ejemplo de ejecución con btrun :

btrun --format yahoo --data YHOO --data IBM --data NVDA --data TSLA --data ORCL --data AAPL --fromdate 2016-07-15 --todate 2016-08-13 --analyzer st-screener:Screener_SMA --cerebro runonce=0 --writer --nostdstats

Sí: los precios se descargan directamente de Yahoo con --format yahoo .

Que hoy mismo (antes de que el mercado volviera a cerrar) ha cumplido:

- Analysis:
  - over: ('ORCL', 41.09, 41.032), ('IBM', 161.95, 161.221), ('YHOO', 42.94, 39.629000000000005), ('AAPL', 108.18, 106.926), ('NVDA', 63.04, 58.327)
  - under: ('TSLA', 224.91, 228.423)

Estoy seguro de que se puede hacer lo mismo con otras plataformas python como pyAlgoTrade , zipline etc. Una lista de plataformas de código abierto python conocidas (por mí) se puede encontrar en el README de backtrader en la primera página del repositorio: https://github.com/mementum/backtrader

Descargo de responsabilidad : si no es obvio, soy el autor de backtrader

2voto

Ant Puntos 121

Yo recomendaría el uso de Python porque puede ser descargado para Windows o Mac y está disponible en casi todos los repositorios de Linux como estándar.

Una vez que tengas instalado Python puedes utilizar cualquiera de los siguientes enlaces para ver cómo obtener tus datos

https://www.quantstart.com/articles/Downloading-Historical-Intraday-US-Equities-From-DTN-IQFeed-with-Python

https://stackoverflow.com/questions/12433076/download-history-stock-prices-automatically-from-yahoo-finance-in-python

https://github.com/leonth/bulk-download-quandl

https://pypi.python.org/pypi/googlefinance

https://code.activestate.com/recipes/511444-stock-prices-historical-data-bulk-download-from-in/

y, por supuesto, una vez que tenga los datos, puede proyectarlos in situ en su ordenador como quiera, por ejemplo, utilizando una biblioteca de análisis técnico como TA Lib y/o escribir su propio screener personalizado en Python. Un ejemplo de esto último puede verse en

https://www.youtube.com/watch?v=Y4GHgJjIQnk

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X