Saturday 11 November 2017

Sistema De Comercio Github


Python Algorithmic Trading Library PyAlgoTrade es una biblioteca de intercambio algorítmico Python centrada en backtesting y soporte para el comercio de papel y el comercio en vivo. Digamos que usted tiene una idea para una estrategia comercial y le gustaría evaluar con datos históricos y ver cómo se comporta. PyAlgoTrade le permite hacerlo con el mínimo esfuerzo. Características principales Totalmente documentado. Evento conducido . Soporta órdenes de Market, Limit, Stop y StopLimit. Soporta los archivos de Yahoo Finance, Google Finance y NinjaTrader CSV. Soporta cualquier tipo de datos de series de tiempo en formato CSV, por ejemplo Quandl. Bitcoin soporte comercial a través de Bitstamp. Indicadores técnicos y filtros como SMA, WMA, EMA, RSI, bandas de Bollinger, exponente de Hurst y otros. Métricas de rendimiento como Sharpe ratio y análisis de reducción. Manejo de eventos de Twitter en tiempo real. Profiler de eventos. Integración TA-Lib. Escalable Muy fácil de escalar horizontalmente, es decir, usar uno o más equipos para volver a probar una estrategia. PyAlgoTrade es libre, de código abierto, y está licenciado bajo la Licencia Apache, Versión 2.0.QSForex es un backtesting de código abierto basado en eventos y plataforma de comercio en vivo para su uso en los mercados de divisas (divisas), actualmente en un estado alfa . Se ha creado como parte de la serie Forex Trading Diario en QuantStart para proporcionar a la comunidad de comercio sistemática con un motor de comercio robusto que permite la implementación de la estrategia de Forex y las pruebas directas. El software se proporciona bajo una licencia permisiva del MIT (véase abajo). Open-Source - QSForex ha sido lanzado bajo una Licencia de MIT de código abierto extremadamente permisiva, que permite el uso completo en aplicaciones de investigación y comerciales, sin restricciones, pero sin garantía de ningún tipo. Gratis - QSForex es completamente gratuito y no cuesta nada descargar o usar. Colaboración - Como QSForex es de código abierto, muchos desarrolladores colaboran para mejorar el software. Se agregan nuevas funciones con frecuencia. Cualquier error es rápidamente determinado y fijo. Desarrollo de software - QSForex está escrito en el lenguaje de programación de Python para soporte directo de multiplataforma. QSForex contiene un conjunto de pruebas de unidad para la mayoría de su código de cálculo y nuevas pruebas se agregan constantemente para nuevas características. Arquitectura impulsada por eventos - QSForex es completamente orientada a eventos tanto para backtesting como para trading en vivo, lo que lleva a la transición directa de estrategias desde una fase de investigación / prueba hasta una implementación de trading en vivo. Costes de transacción - Los costes de propagación se incluyen de forma predeterminada para todas las estrategias de backtest. Backtesting - QSForex ofrece backtesting de varios días de varias divisas de resolución de ticks. Trading - QSForex actualmente soporta el comercio intraday en vivo utilizando el OANDA Brokerage API a través de una cartera de pares. Métricas de rendimiento - QSForex actualmente admite la medición del rendimiento básico y la visualización de la equidad a través de las bibliotecas de visualización Matplotlib y Seaborn. Instalación y uso 1) Visite oanda / y configure una cuenta para obtener las credenciales de autenticación de la API, que necesitará para realizar transacciones en vivo. Explicar cómo llevar a cabo esto en este artículo: Quantstart / articles / Forex-Trading-Diario-1-Automated-Forex-Trading-con-el-OANDA-API. 2) Clone este repositorio git en una ubicación adecuada en su máquina usando el siguiente comando en su terminal: git clone github / mhallsmoore / qsforex. git. Alternativa puede descargar el archivo zip de la rama principal actual en github / mhallsmoore / qsforex / archive / master. zip. 3) Cree un conjunto de variables de entorno para todas las configuraciones encontradas en el archivo settings. py en el directorio raíz de la aplicación. Alternativamente, puede codificar sus configuraciones específicas sobrescribiendo las llamadas os. environ. get (.) Para cada configuración: 4) Cree un entorno virtual (virtualenv) para el código QSForex y utilice pip para instalar los requisitos. Por ejemplo, en un sistema basado en Unix (Mac o Linux) puede crear un directorio como el siguiente introduciendo los siguientes comandos en el terminal: Esto creará un nuevo entorno virtual para instalar los paquetes en. Suponiendo que descargó el repositorio gist QSForex en un directorio de ejemplo como / projects / qsforex / (cambie este directorio a donde quiera que haya instalado QSForex), entonces para instalar los paquetes necesitará ejecutar los siguientes comandos: Tiempo como NumPy, SciPy, Pandas, Scikit-Learn y Matplotlib deben ser compilados. Hay muchos paquetes necesarios para que esto funcione, así que eche un vistazo a estos dos artículos para obtener más información: También tendrá que crear un enlace simbólico desde su directorio de paquetes de sitio a su directorio de instalación de QSForex para poder llamar Import qsforex dentro del código. Para ello, necesitará un comando similar al siguiente: Asegúrese de cambiar / projects / qsforex a su directorio de instalación y /venv/qsforex/lib/python2.7/site-packages/ a su directorio de paquetes de sitios virtualenv. Ahora podrá ejecutar los comandos siguientes correctamente. 5) En esta etapa, si simplemente desea llevar a cabo la práctica o el comercio en vivo, entonces puede ejecutar python trading / trading. py. Que utilizará la estrategia de trading predeterminada de TestStrategy. Esto simplemente compra o vende un par de divisas cada 5 tick. Es puramente para la prueba - no la utilice en un ambiente que vive vivo Si usted desea crear una estrategia más útil, después cree simplemente una nueva clase con un nombre descriptivo, por ejemplo. MeanReversionMultiPairStrategy y asegúrese de que tiene un método calculatesignals. Tendrá que pasar a esta clase la lista de parejas, así como la cola de eventos, como en trading / trading. py. Por favor, vea strategy / strategy. py para más detalles. 6) Con el fin de llevar a cabo cualquier backtesting es necesario generar datos forex simulados o descargar datos de tick histórico. Si desea simplemente probar el software, la forma más rápida de generar un ejemplo de backtest es generar algunos datos simulados. El formato de datos actual utilizado por QSForex es el mismo que el proporcionado por el DukasCopy Historical Data Feed en dukascopy / swiss / english / marketwatch / historical /. Para generar algunos datos históricos, asegúrese de que la configuración de CSVDATADIR en settings. py debe establecerse en un directorio donde desee que los datos históricos se mantengan. A continuación, debe ejecutar generatesimulatedpair. py. Que está en el directorio scripts /. Se espera un solo argumento de línea de comandos, que en este caso es el par de divisas en formato BBBQQQ. Por ejemplo: En esta etapa, el script está codificado para crear un solo mes de datos para enero de 2014. Es decir, verá archivos individuales, del formato BBBQQQYYYYMMDD. csv (por ejemplo, GBPUSD20140112.csv) aparecen en su CSVDATADIR para todos los días hábiles en Ese mes. Si desea cambiar el mes / año de la salida de datos, simplemente modifique el archivo y vuelva a ejecutarlo. 7) Ahora que los datos históricos han sido generados es posible realizar un backtest. El archivo backtest se almacena en backtest / backtest. py. Pero esto sólo contiene la clase Backtest. Para ejecutar realmente un backtest es necesario instanciar esta clase y proporcionarle los módulos necesarios. La mejor manera de ver cómo se hace esto es mirar el ejemplo de implementación de Media Crossover de Moving en el archivo examples / mac. py y usarlo como una plantilla. Esto hace uso de MovingAverageCrossStrategy que se encuentra en strategy / strategy. py. Por defecto, se negocian GBP / USD y EUR / USD para demostrar el uso de varios pares de divisas. Utiliza los datos encontrados en CSVDATADIR. Para ejecutar el ejemplo backtest, simplemente ejecute lo siguiente: Esto llevará algún tiempo. En mi sistema de escritorio Ubuntu en casa, con los datos históricos generados a través de generatesimulatedpair. py. Tarda alrededor de 5-10 minutos para correr. Una gran parte de este cálculo se produce al final del backtest real, cuando se calcula la reducción, así que por favor recuerde que el código no ha colgado Por favor, déjelo hasta su finalización. 8) Si desea ver el rendimiento del backtest, puede utilizar output. py para ver una curva de equidad, retornos de periodo (es decir, tick-to-tick) y una curva de reducción: Y eso es todo. Para comenzar a crear sus propios backtests modificando o añadiendo estrategias en strategy / strategy. py y utilizando datos reales descargados de DukasCopy (dukascopy / swiss / english / marketwatch / historical /). Si tiene alguna pregunta sobre la instalación, por favor no dude en enviarme un correo electrónico a mikequantstart. Si tiene algún error o cualquier otro problema que cree que puede ser debido específicamente a la base de código, no dude en abrir un problema de Github aquí: github / mhallsmoore / qsforex / issues Copyright (c) 2015 Michael Halls-Moore A cualquier persona que obtenga una copia de este software y archivos de documentación asociados (el Software), para tratar el Software sin restricciones, incluyendo, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y O vender copias del Software y permitir que las personas a las que se suministre el Software, con sujeción a las siguientes condiciones: El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software. EL SOFTWARE SE PROPORCIONA TAL CUAL, SIN GARANTÍA DE NINGÚN TIPO, EXPLÍCITA O IMPLÍCITA, INCLUYENDO PERO SIN LIMITARSE A LAS GARANTÍAS DE COMERCIABILIDAD, ADECUACIÓN PARA UN FIN DETERMINADO Y NO INFRACCIÓN. EN NINGÚN CASO, LOS AUTORES O LOS TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑO O CUALQUIER OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE O EN RELACIÓN CON EL SOFTWARE O EL USO O OTROS NEGOCIOS EN EL SOFTWARE. Descargo de divisas Forex Trading El cambio de divisas en el margen conlleva un alto nivel de riesgo y puede no ser adecuado para todos los inversores. Los resultados anteriores no son indicativos de resultados futuros. El alto grado de apalancamiento puede trabajar en contra de usted, así como para usted. Antes de decidir invertir en divisas debe considerar cuidadosamente sus objetivos de inversión, nivel de experiencia y apetito de riesgo. Existe la posibilidad de que usted podría sostener una pérdida de parte o la totalidad de su inversión inicial y por lo tanto no debe invertir dinero que no puede permitirse perder. Usted debe ser consciente de todos los riesgos asociados con el comercio de divisas, y buscar el asesoramiento de un asesor financiero independiente si tiene alguna duda. Algorithmic Trading (en un presupuesto) Como noob en la inversión, Empresas y fondos de cobertura. Así que pensé, ¿qué tan difícil puede ser esto Realmente Por lo tanto, he configurado un reto personal hace unos años no sólo para aprender, sino superar a las compañías financieras más grandes fondos de cobertura de amplificador. Comencé a trabajar en el proyecto de trading algorítmico. Con un fondo de ingeniería y una economía menor, yo tenía antecedentes inadecuados, experiencia de programación limitada y la financiación, pero un montón de pasión para lograr este objetivo (un combo lo suficientemente bueno). Avance rápido 3 años más tarde, he creado múltiples algoritmos de negociación en MATLAB, Python, AutoHotKey etc y la gestión de 6 cuentas individuales (mina incluida) con rendimientos anuales promedio de 15-20 que es mucho mejor que el fondo de cobertura promedio, medida por la Índice de Hedge Fund Research (HRFX). No está mal para un proyecto paralelo. Hasta la fecha, hay tres algoritmos de negociación importantes, todos trabajando al unísono para identificar oportunidades en el mercado de renta variable mundial. Basado únicamente en el análisis técnico. También se basa en análisis técnico utilizando indicadores de volumen de amperio de impulso como RSI, Stochastics Oscillator Index y MFI Basado en un análisis fundamental de las finanzas de las empresas. Los datos de OHLCV históricos más complejos e históricos y los informes financieros estandarizados (balances, estados de resultados, flujos de efectivo, cocientes financieros) para todos los años disponibles se descargan por ticker. Para algunas empresas como IBM, por suerte tengo acceso a los informes anuales / trimestrales que se remontan a 1982 - unos 7 años antes de nacer El análisis se realiza una vez al año y puede durar hasta 2 meses Esto se está ejecutando en custom-built PC con AMD FX-8150 de 8 núcleos 3.6GHz 8MB L2, 8MB L3 / 8 GB de RAM DDR3-1333 / SSD rápido ardiente. Desafortunadamente, la mayor parte del tiempo se gastó la descarga de los datos más recientes de tal manera para evitar CAPTCHA y restricciones de descarga excesivas. Solución se ha implementado aunque no tengo la intención de aplicar esto para el comercio de alta frecuencia en cualquier momento. Se analizan más de 3.000 acciones de Estados Unidos y Global. 80-90 de estas empresas eran estadounidenses. Sin embargo, recientemente amplié la lista de seguimiento a 20.000 acciones y ETFs que abarcan todos los principales mercados mundiales. La salida está en el formato de XML / CSV con los rankings fundamentales del mercado del amplificador así como las señales de la COMPRA / de la PARADA / de la VENTA. Para cada empresa, Anna calcula dos clasificaciones en 0 a 5 escala con 5 siendo el mejor. Cada ranking compara el rendimiento de la compañía con respecto a sus 10 principales competidores, así como índices de referencia como SampP 500 o índice Dow Jones. La clasificación del fondo (amental) se calcula anualmente y compara el desempeño de la empresa con respecto a los pares en 6 categorías principales: Rentabilidad de la liquidez Gestión de la deuda Gestión de activos Riesgo de crecimiento La clasificación final del fondo es una media ponderada expontenial de todos los ranking a lo largo de los años. años recientes. El ranking del mercado se calcula una vez basado en métricas por acción (P / BV, P / E, EV / EBIT, EVA, Beta, etc.) y proporciona una instantánea de si la empresa está actualmente subvaluada o sobrevalorada en el mercado. Esta distinción es crucial ya que a diferencia de la clasificación de fondos, la clasificación del mercado se basa en la valoración del mercado en el momento en que se llevó a cabo el análisis. Por último, el análisis técnico de Jenny amp Peggy escupió señales de BUY / SELL / HOLD, así como métricas útiles tales como frecuencia de operaciones, duración promedio de la operación, retornos medios de tenencia, precio objetivo y ex-fecha para alcanzar el precio objetivo. Por lo general, mi selección de acciones es para empresas con casi el promedio (gt2.7) de clasificación de fondos y alto rango de mercado (es decir, infravalorado). Visualización de los resultados La salida final en formato CSV / XML para FY2012 amp FY2013 se comparte en Git. Después de la primera ejecución, rápidamente me di cuenta de que necesitaba una forma de condensar el conjunto de datos masivo en picos de acción. Así que desarrollé Medusa - una plataforma de visualización construida con procesamiento basado en el trabajo del artista de datos Jer Thorp (impresionante inspiración). He integrado Leap Motion Library para permitir la navegación a través de gestos de mano. Sí, el estilo de Informe de Minorías, pero para la recogida de acciones Video próximamente. Las compañías están codificadas por colores con el fondo y la clasificación del mercado indicada por el tono y el radio, respectivamente. Las empresas de alto rango son de color rojo caliente y baja clasificación más verde-ish Para la valoración del mercado, infravalorado son de menor tamaño Así que la selección de outperformers se convierte en tan simple como encontrar Big amp REDish bolas (juego de palabras). Por desgracia, una vez al año, inicie el análisis de computación intensiva y con algunos gestos de mano, seleccionar qué superar los resultados para el horizonte de corto y largo plazo, el comercio de amplificador de gestión pasiva Todos los datos se recuperan a través de API, raspado web o combinación de ambos. Las estadísticas clave y los datos históricos de OHLCV provienen de Google / Yahoo Finance. Los informes financieros estandarizados son de la base de datos en línea de Mergents. A diferencia de la competencia con recursos ilimitados y el acceso a Bloomberg Terminals, Factset, SampP Capital IQ, etc todo este proyecto se hizo con un estricto 0 presupuesto en mente. Desafortunadamente, no puedo redistribuir estos datos. Con la disponibilidad de bibliotecas de código abierto, como TA-Lib, zipline o sitios web como Wikipedia, Investopedia, QuantConnect, Quantopian, Covestor, es fácil para una persona promedio aprender a invertir, aprovechar las herramientas disponibles y superar a los llamados artistas de alto rendimiento con recursos limitados. En la actualidad, me estoy centrando mis esfuerzos a tiempo parcial en el diseño de Xantos desarrollo de amplificadores (pronunciado ZAH-AN-TOS), una plataforma de comercio avanzada puramente en Python que: Permite la importación fácil y el análisis de cualquier conjunto de datos, no sólo OHLCV datos. Monitorea los mercados desarrollados y emergentes a corto plazo. Incluye algoritmos complejos basados ​​en el aprendizaje de máquinas que predicen eventos tales como adquisición de fusiones, empresas de break-out con sectores de negocios en crecimiento, etc. Hacer transacciones impulsadas por eventos basadas en informes macro / microeconómicos, Gestión de riesgos y un sistema integrado de gestión de pedidos con acceso directo a la plataforma de intermediarios. Y mucho más.

No comments:

Post a Comment