Wednesday, October 26, 2016

Construir Sistema De Comercio De Alta Frecuencia

Se Stickin a los novatos: La construcción de un sistema de comercio de alta frecuencia Cuando era niño, ¿alguna vez sueño de convertirse en un nerd yo no lo creo. Pero en el último par de años, el número de personas sonrientes hicieron que se ve en las noticias financieras que se parecía, bueno, empollones instruidos en teoría de la computación, matemáticas, física, lo que sea, estos nerds estaban en los titulares para hacer un montón de dinero con Mercado Continuo: alto volumen, una fracción de segundo, compra de la máquina impulsada y vende el que consiguió quizá 0,05 por 100 acciones. Eso no suena como un montón de dinero, sino que se multiplican por cientos de miles de acciones a través de miles de transacciones al día, y comienza a sumar. De hecho, representa la mayor parte del volumen de comercio de acciones del día de hoy. Y a medida que se enciende el ordenador portátil de poca potencia, puede que se pregunte, ¿es eso lo que tengo que hacer para que el comercio de dinero Respuesta corta: No. Respuesta larga: Absolutamente ninguna. Empollón repelente Lo que esas historias havent dicho es que los recientes cambios bruscos en la volatilidad han obligado a muchas personas que desarrollan mercado continuo a replantear sus estrategias. Los de corto plazo, de nuevo adelante y hacia atrás los movimientos de precios que se supone mercado continuo para capturar han sido más uni-direccional, y han dejado a algunos comerciantes con grandes posiciones perdedoras. Está bien, entonces, puede pedir, si no de alta frecuencia, mercado continuo, entonces lo que necesita un enfoque basado en la estrategia de negociación, por lo que, independientemente de la acción o índice, sin tener en cuenta el entorno de mercado, tiene un enfoque para encontrar y ejecutar oficios que tenga sentido. En otras palabras, un sistema. Esto significa que necesita para crear un conjunto de reglas que usted sigue durante la entrada y salida de los oficios cada vez, en lugar de simplemente disparar desde la cadera. Su sistema no siempre resultan como se esperaba, o siempre hacer dinero, pero youll tiene un plan para colocar los oficios. El usuario no puede obtener su foto en las noticias financieras, pero tal vez el youll pagar sus cuentas y todavía tiene tiempo para ser una persona normal. Construir un sistema 1-2-3 Entonces, ¿cómo lo haces Bueno, para empezar, si ya tiene la plataforma thinkorswim cargado en su computadora portátil, usted tiene a su disposición las herramientas que están diseñadas para ofrecer más de lo que la mayoría del Muro empollones de la calle tienen. Seriamente. Y usted va a usar esas herramientas para encontrar los comercios que cumplan con los siguientes tres criterios: 2. Positiva decaimiento 3. probabilidades favorables Lets romper cada uno abajo. Esto significa que no importa lo que el índice de acciones o, si se sube grande, grande o hacia abajo la nada en absoluto, su pérdida potencial máxima es conocido, incluso antes de hacer el comercio. Por ejemplo, una llamada corta verticales ha definido riesgo. Una llamada corto al descubierto no lo hace. Con el corto vertical, la pérdida máxima es la diferencia entre los precios de ejercicio menos el crédito recibido. Eso es. Con una llamada en corto al descubierto, que no sé realmente lo que podría ser su pérdida máxima. Incluso si usted piensa interminables utiliza una orden de parada para comprar el corto llamada de vuelta si la pérdida se hace demasiado grande, ¿y si el brechas abastecerse durante la noche cuando se cumple el comercio no puede con las operaciones de riesgo definido. 2. Tiempo de caída positiva Además de la muerte y los impuestos, la única otra cosa que puede contar es que pasa el tiempo. Y si no funciona, todos hemos conseguido mayores problemas. Debido a que es inevitable, quieres que el tiempo que pasa en su lado. Eso significa que usted quiere que sus posiciones para tener tiempo de decaimiento positiva para que todos en igualdad de condiciones, un día que pasa significa que su posición es la pena un poco más. tiempo de decaimiento general positiva viene de tener una opción a corto en algún lugar de la posición. Eso no tiene que ser un corto al descubierto (véase el criterio 1), sino como parte de una extensión como un corto vertical, calendario largo. o cóndor de hierro. una opción a corto pondrá tiempo de su lado. 3. probabilidades favorables No importa cuánto lo hace la investigación, la probabilidad de un índice de acciones o mover hacia arriba o abajo es 50. Pero usted no quiere que su comercio de depender de la cara de una moneda. La manera de inclinar la balanza a su favor es la selección de la estrategia más inteligente. Que se inicia mediante la búsqueda en la cadena de opción para un vencimiento a más corto plazo y una alta probabilidad de que expira sin valor. Esto le permitirá crear diferenciales que dependen menos de estar justo en dirección y más en la decadencia de alta calidad. De acuerdo, ¿y ahora qué No demasiado nerd, se le permite a su vez la teoría a la práctica con un par de ejemplos de la vida real, tanto para el comerciante de acciones y opciones. El Corredor de bolsa Eres un corredor de bolsa. Tal vez usted no está del todo listo para todas las cosas opción de extensión. Entonces, ¿cómo hacer los tres criterios de trabajo para usted Si usted es largo stock, ustedes ya saben que su pérdida máxima potencial si la acción va a cero. A pesar de que el riesgo podría ser un número muy grande, Ill pretender que se la define en su propio camino. Ése es el criterio 1. Para 2, luces para crear una llamada corta cubierta contra ese largo stock para darle un poco de tiempo de decaimiento positivo. Cuando estás una llamada corta en contra de su largo stock, por cada día que el precio de las acciones duerma movimiento, que corta la llamada se va a poner más y más barato y te hacen un poco de dinero. Para 3, consiguiendo las probabilidades de su lado significa vender una llamada fuera de la de dinero que tiene una probabilidad de que expira sin valor de alrededor de 60, lo que se puede hacer desde TD Ameritrades thinkorswim plataforma de negociación (Figura 1, abajo). La acción puede elevarse hasta el precio de ejercicio de la llamada corta por caducidad, y aún así la llamada expirará sin valor. Esto reduce el costo base de su largo stock, lo que también reduce su punto de equilibrio. Eso significa que la población puede hacer un movimiento inicial más grande, y es posible que aún no perder dinero. En thinkorswim, ver la probabilidad de una opción que expira en-el-dinero (ITM). A continuación, una llamada con una probabilidad 34 de expirar ITM es lo mismo que decir que tiene una probabilidad del 66 de expirar sin valor. Sólo a efectos ilustrativos. El operador de opciones de Youre con muchas ganas de ponerse en marcha con opciones, pero usted no está seguro de si debe ser alcista o bajista en una bolsa o un índice en particular. No te sudar la dirección de las acciones. El uso de los tres criterios, se puede encontrar una estrategia que todavía puede ganar dinero incluso si usted está equivocado en su apuesta direccional. Vamos a ver cómo. En primer lugar, comenzar con un cierto sesgo direccional para la acción o índice. Tal vez sea basado en el análisis técnico o fundamental, o tal vez su favorito cabeza que habla en la televisión lo sugirió. Se va a crear una extensión vertical corta (criterios 1 y 2) una llamada corta vertical, si usted tiene un sesgo bajista, o un corto poner vertical, si usted tiene un sesgo alcista. Comience por encontrar la expiración de 25 a 45 días. Para los criterios 3, si usted es bajista, encontrar la llamada corta fuera de la de dinero que tiene una probabilidad del 60 al 70 de expirar sin valor. Si usted es alcista, considerar la búsqueda de la opción de venta a corto hacia fuera-de-dinero que tiene una probabilidad de que expira sin valor de entre 60 y 70 años. Para crear una llamada corta vertical, considerar la compra de la opción de compra que eso es un golpe más lejos-del-dinero que su llamada es corta. Para crear un put corto vertical, considerar la compra de la opción de venta que eso es un golpe más lejos-del-dinero que su put corto. Ahora, aquí está lo que puede suceder. Con la llamada corta fuera de-the-money vertical, si la acción se mueve hacia abajo por la expiración, usted hace el dinero. Si la acción se mantiene igual por caducidad, a ganar dinero. Si la acción se mueve hacia arriba más allá de la huelga corta de la llamada corta verticales, usted probablemente perderá dinero. Pero si sólo sube un poco, no tan alta como la huelga corta de la llamada corta vertical, todavía se puede ganar dinero. La opción de venta corta funciona de la misma manera pero pierde dinero si la acción se mueve hacia abajo más allá de la huelga corta de la corto poner vertical. Esto no es una prueba de tontos, forma garantizada de hacer el comercio de dinero. Pero es mejor que sentarse en el banquillo, frustrado y confundido por no ser capaz de negociar la manera de pensar los pros Wall Street lo hacen. Cada comercio que tome basadas en estos criterios tendrá el razonamiento detrás de él. E incluso si el comercio pierde dinero, usted sabrá exactamente cuánto y por qué. Eso es ser un comerciante educado. En lugar de un nerd. Tienes thinkorswim Si usted no tiene thinkorswim para analizar las probabilidades, ¿qué estás esperando para salidas de qué se trata amp unirse a la diversión. estrategias de opciones múltiples patas como las que se describen en este artículo tendrán costes adicionales debido a los ataques adicionales negociados. Asegúrese de entender todos los riesgos relacionados con cada estrategia, incluyendo los costos de transacción, antes de intentar colocar cualquier comercio. Tenga en cuenta que la asignación de estrategias de opciones cortas discutidos en este artículo podría conducir a posiciones largas o cortas no deseadas en el valor subyacente. La volatilidad del mercado, el volumen y la disponibilidad del sistema pueden retrasar el acceso de cuenta y ejecuciones comerciales. El rendimiento pasado de un valor o estrategia no garantiza resultados futuros o el éxito. Las opciones no son adecuados para todos los inversores como los riesgos especiales inherentes a las opciones de comercio pueden exponer a los inversores a pérdidas potencialmente rápidas y sustanciales. Opciones de comercio sujeta a TD Ameritrade revisión y aprobación. Por favor, lea Características y riesgos de opciones normalizadas antes de invertir en opciones. Documentación de apoyo para cualquier reclamación, comparaciones, estadísticas u otros datos técnicos será suministrado a petición. La información no pretende ser un consejo de inversión o interpretarse como una recomendación o endoso de cualquier estrategia de inversión o inversión en particular, y es sólo a efectos ilustrativos. Asegúrese de entender todos los riesgos relacionados con cada estrategia, incluyendo gastos de comisión, antes de intentar colocar cualquier comercio. Los clientes deben tener en cuenta todos los factores de riesgo relevantes, incluyendo sus propias situaciones financieras personales, antes de negociar. TD Ameritrade, Inc. miembro de FINRA / SIPC. TD Ameritrade es una marca propiedad conjunta de TD Ameritrade IP Company, Inc. y The Toronto-Dominion Bank. 2016 TD Ameritrade IP Company, Inc. Todos los derechos reservados. Usado con permiso. Inconceivable. Heres Cómo configurar su propia operación de transacciones de alta frecuencia La semana pasada, tuvimos el privilegio de sentarse con Mike Felix y el doctor Lawrence Hansen de la cal de Bolsa. un corredor de agencia con sede en la ciudad de Nueva York que se especializa en alta frecuencia. comercio de baja latencia. La conclusión principal. Los que piensan que las velocidades son inaceptables mejor que se acostumbre a ella porque theyre aquí para quedarse y su único va a llegar más rápido de aquí. Les preguntamos cómo se podría ir sobre la creación de su propia operación de transacciones de alta frecuencia en un nivel amateur / al por menor. Después de clavar exactamente lo que la definición de transacciones de alta frecuencia es. fuimos sobre los pasos que debe tomar para que esto ocurra. Ver como: una página de comercio SlidesHigh frecuencia de diseño del sistema y la gestión de procesos de negociación de alta frecuencia de diseño y el proceso de sistema de gestión de Director: Roy E. Welsch. Departamento: Programa de Gestión de Diseño de Sistemas y. Editorial: Instituto Tecnológico de Massachusetts Fecha de publicación: 2009 empresas de comercio hoy en día son altamente dependientes de la minería de datos, modelado por computadora y desarrollo de software. Los analistas financieros realizan muchas tareas similares a las de las industrias de software y de fabricación. Sin embargo, la industria financiera aún no ha adoptado plenamente los marcos de ingeniería de sistemas de alto estándar y enfoques de gestión de procesos que han tenido éxito en las industrias de software y de fabricación. Muchas de las metodologías tradicionales para el diseño de productos, control de calidad, la innovación sistemática y mejora continua que se encuentra en las disciplinas de ingeniería se pueden aplicar al campo de las finanzas. Esta tesis muestra cómo el conocimiento adquirido de las disciplinas de ingeniería puede mejorar el diseño y los procesos de gestión de los sistemas de negociación de alta frecuencia. sistemas de comercio de alta frecuencia están basados ​​en la computación. Estos sistemas son sistemas de software automáticas o semiautomáticas que son inherentemente complejos y requieren un alto grado de precisión del diseño. El diseño de un sistema de comercio de alta frecuencia vincula varios campos, incluyendo finanzas cuantitativas, diseño de sistemas e ingeniería de software. En el sector financiero, donde las teorías y modelos matemáticos comerciales están relativamente bien investigados, la capacidad de implementar estos diseños en las prácticas comerciales reales es uno de los elementos clave de una competitividad de las empresas de inversión. La capacidad de convertir ideas de inversión en los sistemas de comercio de alto rendimiento eficaz y eficiente puede dar una empresa de inversión una enorme ventaja competitiva. (Cont.) Esta tesis ofrece un estudio detallado compuesto de alta frecuencia de diseño sistema de comercio, el modelado de sistemas y de los principios y procesos de gestión para el desarrollo del sistema. Se presta especial atención a backtesting y la optimización, que se consideran las partes más importantes en la construcción de un sistema de comercio. Esta investigación se basa modelos de ingeniería de sistemas que guían el proceso de desarrollo. También utiliza los sistemas de comercio experimentales para verificar y validar los principios tratados en esta tesis. Por último, esta tesis concluye que los principios y marcos de ingeniería de sistemas pueden ser la clave para el éxito de la aplicación de la negociación de alta frecuencia o sistemas de inversión cuantitativos. Tesis (S. M.) - Instituto Tecnológico de Massachusetts, Diseño de Sistemas de Gestión y Programa, 2009.Cataloged de la versión PDF de thesis. Includes referencias bibliográficas (p 78-79.). Palabras clave: Programa de gestión de diseño del sistema y. Personas de mi AccountThis publicar detallará lo que hice para hacer aprox. 500k de la negociación de alta frecuencia de 2009 a 2010. Como estaba negociando de forma totalmente independiente y ya no estoy corriendo mi programa Irsquom feliz de poder decir todo. Mi comercio fue principalmente en Russel 2000 y los contratos de futuros del DAX. La clave de mi éxito, creo, no estaba en una ecuación financiera sofisticada, sino más bien en el diseño general algoritmo que ata juntos muchos componentes simples y aprendizaje de máquina que se utiliza para optimizar la máxima rentabilidad. Usted wonrsquot necesita saber nada de la terminología sofisticada aquí porque cuando mi programa de instalación se basa todo en la intuición. (Andrew Ngrsquos curso de aprendizaje de máquina increíble aún no estaba disponible - por cierto si hace clic en ese enlace yoursquoll tener cuidado para mi proyecto actual: CourseTalk, un sitio de revisión de MOOCs) En primer lugar, sólo quiero demostrar que mi éxito no fue simplemente el resultado de suerte. Mi programa 1000-4000 hizo operaciones por día (la mitad de larga, media corta) y nunca se metió en posiciones de más de unos pocos contratos a la vez. Esto significaba que la suerte al azar de cualquier comercio particular, un promedio bastante rápido. El resultado fue que nunca perdió más de 2000 en un solo día y nunca he tenido un mes de perder: (. EDITAR Estas cifras son después de pagar comisiones) Y herersquos un gráfico para darle un sentido de la variación diaria. Tenga en cuenta esto excluye los últimos 7 meses, porque - como las figuras dejaron de ir arriba - He perdido mi motivación para entrar en ellos. Mi fondo de comercio Antes de la creación de mi programa de comercio automatizado Irsquod tenía 2 años de experiencia como comerciante de día ldquomanualrdquo. Esto fue en 2001 - fueron los primeros días de la contratación electrónica y había oportunidades para ldquoscalpersrdquo para hacer un buen dinero. Sólo puedo describir lo que estaba haciendo tan similar a jugar un video juego / apuestas con un borde supuesta. Tener éxito significaba ser rápido, ser disciplinado, y que tiene una buena capacidad de reconocimiento de patrones intuitivos. Yo era capaz de hacer alrededor de 250k, pagar mis préstamos estudiantiles y sobra dinero. Ganar en los próximos cinco años me gustaría lanzar dos nuevas empresas, recogiendo algunos conocimientos de programación a lo largo del camino. Se wouldnrsquot sea hasta finales de 2008 que iba a obtener de nuevo en el comercio. Con el dinero que no tiene suficiente de la venta de la primera puesta en marcha, el comercio ofrece la esperanza de algo de dinero rápido, mientras que me di cuenta de mi próximo movimiento. En 2008 yo era el comercio de futuros ldquomanuallyrdquo día utilizando un software llamado T4. Irsquod sido querer algunas teclas de acceso rápido de entrada de pedidos a medida, por lo que después de descubrir T4 tenía una API, que asumió el reto de aprender C (el lenguaje de programación requerido para utilizar la API) y fuimos por delante y yo construido unas teclas de acceso rápido. Después de conseguir mis pies mojados con la API de pronto que tenía aspiraciones más grandes: quería enseñar a la computadora con el comercio para mí. La API proporciona tanto una corriente de datos de mercado y una manera fácil de enviar órdenes a la central - todo lo que tenía que hacer era crear la lógica en el medio. A continuación se muestra una captura de pantalla de una ventana de comercio T4. Lo que fue interesante es que cuando llegué a mi trabajo del programa que era capaz de ver el equipo en el comercio de la misma interfaz exacta. Viendo las órdenes reales entrando y saliendo (por ellos mismos con mi dinero real) era a la vez emocionante y aterrador. El diseño de mi algoritmo Desde el principio mi objetivo era configurar un sistema de este tipo que podía estar razonablemente seguro de Irsquod ganar dinero antes de hacer cualquier operación siempre vivo. Para lograr esto que necesitaba para construir un marco de simulación comercial que lo haría - la mayor precisión posible - simular el comercio directo. Mientras que el comercio en el mercado actualiza el procesamiento del modo requerido en vivo transmitido a través de la API, el modo de simulación requiere la lectura de las actualizaciones del mercado a partir de un archivo de datos. Para recoger esta configuración de datos que la primera versión de mi programa simplemente conectarse a las actualizaciones de la API y de mercado con registro de marcas de tiempo. Terminé usando 4 semanas el valor de los datos recientes del mercado para entrenar y probar mi sistema. Con un marco básico en el lugar todavía tenía la tarea de encontrar la manera de hacer un sistema de comercio rentable. Pues resulta que mi algoritmo se rompería en dos componentes distintos, que a su vez exploran Irsquoll: La predicción de los movimientos de precios y hacer operaciones rentables predecir los movimientos de precios Tal vez un componente obvio de cualquier sistema de comercio está siendo capaz de predecir donde los precios se moverán. Y la mía no fue una excepción. He definido el precio actual como el promedio de la oferta dentro y oferta dentro y me puse la meta de la predicción de que el precio sería en los próximos 10 segundos. Mi algoritmo tendría que llegar a esta predicción momento a momento a lo largo del día de negociación. La creación de indicadores de amplificador de optimización he creado un puñado de indicadores que demostró tener una capacidad significativa para predecir los movimientos de precios a corto plazo. Cada indicador produce un número que era positivo o negativo. Un indicador útil si era más a menudo que no es un número positivo correspondió con el mercado va hacia arriba y un número negativo correspondió con el mercado a la baja. Mi sistema me permitió determinar rápidamente la cantidad de capacidad de predicción cualquier indicador tuvo así que era capaz de experimentar con una gran cantidad de diferentes indicadores para ver lo que funcionó. Muchos de los indicadores tenían las variables en las fórmulas que los produjeron y yo era capaz de encontrar los valores óptimos de las variables al hacer comparaciones lado a lado de los resultados obtenidos con los valores que varían. Los indicadores que eran más útiles fueron relativamente simple y se basa en los acontecimientos recientes en el mercado que estaba comerciales, así como los mercados de valores correlacionados. Haciendo precio exacto predicciones movimiento contar con indicadores que simplemente predijo un precio arriba o hacia abajo el movimiento wasnrsquot suficiente. Necesitaba saber exactamente la cantidad de movimiento de los precios fue predicho por cada valor posible de cada indicador. Necesitaba una fórmula que convertir un valor del indicador a una predicción de precios. Para lograr esto Rastreé predije precio se mueve en 50 cubos que dependían del rango que el valor del indicador cayó en. Esto produjo predicciones únicas de cada segmento que yo era entonces capaz de graficar en Excel. Como se puede ver los cambios de precios que se espera se incrementa a medida que aumenta el valor del indicador. Basado en un gráfico como este yo era capaz de hacer una fórmula para adaptarse a la curva. Al principio lo hice fittingrdquo ldquocurve manualmente pero pronto he escrito algo de código para automatizar este proceso. Tenga en cuenta que no todas las curvas indicadoras tenían la misma forma. También tenga en cuenta los cubos se distribuyeron de manera logarítmica con el fin de difundir los datos señala de manera uniforme. Por último, tenga en cuenta que los valores de los indicadores negativos (y sus correspondientes predicciones de reducción de precios) se da la vuelta y se combinan con los valores positivos. (Mi algoritmo tratado arriba y hacia abajo exactamente lo mismo.) La combinación de indicadores para una sola predicción Una cosa importante a tener en cuenta es que cada indicador no era del todo independiente. Me couldnrsquot simplemente sumar todos los pronósticos de que cada indicador realizar de forma individual. La clave era averiguar el valor predictivo adicional de que cada indicador tuvo allá de lo que ya estaba previsto. Este wasnrsquot de difícil de implementar pero quería decir que si yo era ldquocurve fittingrdquo múltiples indicadores, al mismo tiempo que tenía que tener cuidado de cambiar uno podría efectuar las predicciones de la otra. Con el fin de ldquocurve fitrdquo todos los indicadores en la misma configuración que el optimizador de tiempo de paso sólo 30 del camino hacia las nuevas curvas de predicción con cada pasada. Con este salto 30 me encontré con que las curvas de predicción se estabilizaría en unos pocos pases. Con cada indicador ya que nos da la predicción itrsquos precio adicional que pudiera simplemente sumarlas para producir una sola predicción de que el mercado estaría en 10 segundos. ¿Por qué la predicción de precios no es suficiente Se podría pensar que con esta ventaja en el mercado que era de oro. Pero hay que tener en cuenta que el mercado se compone de ofertas y demandas - itrsquos no sólo un precio de mercado. El éxito en el comercio de alta frecuencia se reduce a conseguir buenos precios y itrsquos no es tan fácil. Los siguientes factores hacen que la creación de un sistema rentable difícil: Con cada comercio que tenía que pagar comisiones tanto a mi agente y el intercambio. El diferencial (diferencia entre la oferta más alta y la oferta más baja) significaba que si tuviera que simplemente comprar y vender al azar Irsquod estar perdiendo un montón de dinero. La mayor parte del volumen de mercado era otros robots que sólo ejecutar una transacción conmigo si pensaban que tenían alguna ventaja estadística. Al ver una oferta no garantizaba que podía comprarlo. Por el momento mi orden de compra tiene que el intercambio era muy posible que esa oferta hubiera sido cancelada. Como un jugador pequeño mercado que no había manera de que pudiera competir en velocidad por sí sola. La construcción de una simulación completa de comercio Así que tuve un marco que me permitió BACKTEST y optimizar los indicadores. Pero tenía que ir más allá de esto - que necesitaba un marco de trabajo que me permitiera BACKTEST y optimizar un sistema de comercio completa, en la que estaba enviando órdenes y ponerse en posiciones. En este caso Irsquod ser la optimización para el total PampL y en cierta medida PampL medio por el comercio. Esto sería más complicado y en cierto modo imposible modelar exactamente pero lo hice lo mejor que pude. Éstos son algunos de los problemas que tuve que lidiar con: Cuando una orden fue lanzado al mercado en la simulación que tenía que modelar el tiempo de retraso. El hecho de que mi sistema vio una oferta no significa que se podría comprar inmediatamente. El sistema enviaría la orden, espere aproximadamente 20 milisegundos y sólo si la oferta fue todavía no había que considerar como una operación ejecutada. Esto era inexacta debido a que el tiempo de retraso real era inconsistente y no declarada. Cuando hice licitaciones u ofertas que tuve que mirar el flujo de ejecución de órdenes (proporcionado por el API) y las usará para medir cuando mi orden habría conseguido ejecutada en contra. Para hacer esto bien que tenía que realizar un seguimiento de la posición de mi orden en la cola. (Itrsquos primero en entrar, primero en salir del sistema.) Una vez más, couldnrsquot hacer esto perfectamente, pero me hizo una mejor aproximación. Para definir mejor la simulación de ejecución de órdenes lo que hice fue tomar mis archivos de registro de operaciones en vivo a través de la API y compararlos con los archivos producidos por el comercio simulado desde el mismo período de tiempo exacto de registro. Pude conseguir mi simulación hasta el punto de que era bastante preciso y para las partes que eran imposibles de modelar exactamente que se aseguró de al menos producir resultados que fueron estadísticamente similares (en la métrica yo pensaba que eran importantes). Hacer operaciones rentables Con un modelo de simulación orden en el lugar que ahora podría enviar órdenes en el modo de simulación y ver un PampL simulado. Pero, ¿cómo sería mi sistema de saber cuándo y dónde comprar y vender el movimiento de los precios predicciones eran un punto de partida, pero no toda la historia. Lo que hice fue crear un sistema de puntuación para cada uno de los 5 niveles de precios en la oferta y demanda. Estos incluyen un nivel por encima de la oferta en el interior (por una orden de compra) y un nivel por debajo de la oferta en el interior (por una orden de venta). Si la puntuación en cualquier nivel de precios estaba por encima de un cierto umbral que significaría mi sistema debe tener una oferta / demanda activa allí - por debajo del umbral, entonces las órdenes activas deben ser canceladas. En base a esta no era raro que mi sistema destellaría una oferta en el mercado inmediatamente después cancelarla. (Aunque he tratado de minimizar este tan molesto como diablos itrsquos a cualquiera que busque en la pantalla con los ojos humanos - incluyendo mí.) El precio de las puntuaciones de nivel se calcularon en base a los siguientes factores: La predicción de movimiento de los precios (que hemos comentado anteriormente). El nivel de precios en cuestión. (Niveles internos destinados se requieren mayores predicciones movimiento de los precios.) El número de contratos en frente de mi orden en la cola. (A menos era mejor.) El número de contratos detrás de mi orden en la cola. (Más era mejor.) En esencia estos factores sirven para identificar lugares ldquosaferdquo de compra / venta. La predicción de precios medida por sí sola no era suficiente, ya que no tuvo en cuenta el hecho de que cuando se hace una oferta que no estaba llena automáticamente - Sólo se llenó si alguien vende a mí no. La realidad era que el mero hecho de que alguien que vende a mí a un precio determinado cambia las probabilidades estadísticas del comercio. Las variables utilizadas en este paso fueron todos sujetos a optimización. Esto se hizo de la misma manera exacta como optimicé variables en los indicadores de movimiento de los precios, salvo que en este caso estaba optimización para línea de fondo PampL. Lo que mi programa ignora Cuando el comercio, como seres humanos que a menudo tienen fuertes emociones y prejuicios que pueden conducir a menos de decisiones óptimas. Está claro que no quería a la codificación de estos sesgos. Éstos son algunos de los factores que mi sistema de ignorar: El precio que se ha introducido una posición - En una oficina comercial itrsquos bastante común escuchar la conversación sobre el precio al que alguien es largo o corto, como si eso debería efectuar su toma de decisiones futuras. Si bien esto tiene cierta validez como parte de una estrategia de reducción del riesgo de que realmente no influye en el curso futuro de los acontecimientos en el mercado. Por lo tanto mi programa ignoró por completo esta información. Itrsquos el mismo concepto que haciendo caso omiso de los costos hundidos. Ir en corto vs salir de una posición larga - Típicamente un comerciante tendría diferentes criterios que determina dónde vender una posición larga en comparación a dónde ir corto. Sin embargo, desde mi perspectiva algoritmos no había ninguna razón para hacer una distinción. Si mi algoritmo espera un movimiento a la baja venta era una buena idea, independientemente de si era Actualmente largo, corto, o plano. Una estrategia uprdquo ldquodoubling - Esta es una estrategia común donde los comerciantes van a comprar más acciones en el caso de que no originales comercio va en contra de ellos. Esto da lugar a su precio medio de adquisición es más bajo y que significa cuando (o si) la acción gira en torno a yoursquoll estar listo para hacer su dinero de vuelta en ningún momento. En mi opinión esto es realmente una estrategia horrible, a menos yoursquore Warren Buffet. Yoursquore engañado haciéndole creer que está haciendo bien porque la mayor parte de sus operaciones habrá ganadores. El problema es cuando se pierde se pierde grande. El otro efecto es que hace que sea difícil juzgar si realmente tiene una ventaja en el mercado o se acaba de entrar suerte. Ser capaz de controlar y confirmar que mi programa de hecho tienen una ventaja era un objetivo importante. Ya que mi algoritmo tomó decisiones de la misma manera, independientemente de donde entró en un comercio o si era Actualmente larga o corta de vez en cuando se sentó en (y tener) algunas grandes operaciones perdedoras (además de algunas grandes operaciones ganadoras). Sin embargo, parece que se shouldnrsquot wasnrsquot cualquier gestión de riesgos. Para gestionar el riesgo de que impuso un tamaño máximo de 2 contratos posición a la vez, de vez en cuando golpeado hasta en los días de gran volumen. También tenía un límite de pérdida diaria máxima de prevenir cualquier situación del mercado inesperados o un error en el software. Estos límites se aplican en mi código, sino también en el back-end a través de mi agente. Como sucedió nunca me he encontrado ningún problema significativo. La ejecución del algoritmo Desde el momento en que empecé a trabajar en mi programa me tomó unos 6 meses antes de que llegara al punto de rentabilidad y comenzado a transmitir en directo. Aunque para ser justos una cantidad significativa de tiempo estaba aprendiendo un nuevo lenguaje de programación. A medida que trabajaba para mejorar el programa vi aumento de los beneficios para cada uno de los próximos cuatro meses. Cada semana me iba a entrenar mi sistema basado en las 4 semanas anteriores por valor de los datos. He encontrado esta el equilibrio adecuado entre la captura de las tendencias de comportamiento reciente del mercado y asegurar mi algoritmo tenía suficientes datos para establecer patrones significativos. A medida que el entrenamiento comenzó a tomar cada vez más tiempo me separé hacia fuera para que pueda ser realizada por 8 máquinas virtuales usando Amazon EC2. Los resultados se fundieron en mi máquina local. El punto de mi comercio de alta fue en octubre de 2009, cuando hice casi 100k. Después de esto continuaba pasar los próximos cuatro meses tratando de mejorar mi programa a pesar de la disminución de beneficiarse cada mes. Por desgracia, en este punto, supongo Irsquod implementado todos mis mejores ideas porque nada he intentado parecía ayudar mucho. Con la frustración de no ser capaz de realizar mejoras y no tener un sentido de crecimiento empecé a pensar en una nueva dirección. Me escrito 6 empresas de comercio de alta frecuencia diferentes para ver si theyrsquod estar interesado en comprar mi software y la contratación de mí para trabajar para ellos. Nadie respondió. Tenía algunas nuevas ideas de inicio que quería trabajar en lo que nunca dieron seguimiento. ACTUALIZACIÓN - he publicado esto en Hacker News y ha recibido mucha atención. Sólo quiero decir que no abogan por cualquiera que trate de hacer algo como esto a sí mismos ahora. Lo que necesitas un equipo de gente muy inteligente con una gama de experiencias para tener alguna esperanza de competir. Incluso cuando yo estaba haciendo esto yo creo que era muy raro para las personas a alcanzar el éxito (aunque había oído hablar de los demás.) Hay un comentario en la parte superior de la página que menciona estadísticas manipuladas y se refiere a mí como un investorrdquo ldquoretail que cuantos ldquogleefully sería recoger offrdquo. Este es un lugar desafortunadas thatrsquos comentario simplemente no basadas en la realidad. La iniciación de ese lado therersquos algunos comentarios interesantes: news. ycombinator / itemid4748624 ACTUALIZACIÓN 2 - Irsquove publicado un FAQ de seguimiento que responde a algunas preguntas comunes Irsquove recibió de los comerciantes sobre esta Post. this podría ser mucho más divertido que codewars clásicos. Para 99 de los theres ninguna razón del sistema youd particulares tienen que conectarse a la Bolsa de Nueva York y el comercio de las existencias reales con dinero real. Parece que el theyre que introduce desde iqfeed, pero yo creo que sería diversión enorme para crear un intercambio competencia imaginaria, convencer a aproximadamente 100 algo escritores para competir, y empujar hacia arriba el uno contra el otro simplemente por el gusto de hacerlo, consulte whos un mejor escritor algo . Con la virtualización moderna, que debe ser bastante fácil de distribuir un paquete de imágenes, incluyendo los datos de la práctica, para replicar un sistema financiero entero en una pequeña escala en su sótano, a continuación, una vez que se cree que tiene un algo decente, subir la imagen a la competición liga. Si su codewars liga HFT quiere límites para los ciclos de CPU o almacenamiento, la virtualización es una forma muy fácil de implementar. Superficialmente la primera cosa que puede hacer es hacer que todo sea totalmente hacia arriba, de arriba a abajo, pero probablemente funcionaría igual de bien para utilizar los datos de mercado y superposición de carne y hueso en la parte superior de la misma. Del mismo modo que la simulación de control del tráfico aéreo se ha movido muy lentamente a lo largo de las décadas de los puramente aleatorio a sorta realista a los datos del aeropuerto actual. Esto podría ser un poco de diversión. Lo hicimos en colaboración con UofC, utilizando nuestra plataforma de operaciones Algo (www. optionscity / eventos / UChicago-Midwest-comercio-co.) Y fue muy divertido. Hm, me pregunto si hay un interés para hacer de este un evento :) Gracias más abierto para el control de Julia a cabo. Me temo que hay una buena cantidad de información errónea en su comentario, sin embargo, lo que parece que algunas cosas se perdieron en su lectura de código de Julias (algunas de las cuales es ciertamente bastante complicado). Espero que no te importa si me dirijo a algunos de ellos. El primer punto es que Julia ya tiene un excelente rendimiento a la par con la mayoría de lenguajes compilados, incluyendo, por ejemplo, Haskell, si están usando LLVM o no. código Julia recta de avance es típicamente dentro de un factor de dos de C. Eso se muestra en las microbenchmarks en julialang. org/ sitio web Julias, pero, por supuesto, eso no es del todo convincente porque, ya sabes, theyre microbenchmarks y que los escribieron. . . .


No comments:

Post a Comment