3.1 Evaluación del lenguaje de programación de comercio cuantitativo

El autor:La bondad, Creado: 2019-04-18 15:03:37, Actualizado: 2019-04-27 11:54:49

Resumen de las actividades

En los capítulos 1 y 2, aprendimos los conceptos básicos del comercio cuantitativo y los usos de las herramientas FMZ Quant. En este capítulo, implementaremos las estrategias comerciales reales. Si un trabajador quiere hacer algo bueno, primero debe afilar sus herramientas. Para implementar una estrategia comercial, primero debe dominar un lenguaje de programación.

¿Qué es un lenguaje de programación?

Antes de aprender un lenguaje de programación, primero debes entender el concepto de lenguaje de programación. Un lenguaje de programación es un lenguaje que tanto los humanos como las computadoras pueden entender. Es un código de comunicación estandarizado. El propósito de un lenguaje de programación es usar un lenguaje humano para controlar una computadora y decirle a la computadora lo que vamos a hacer. La computadora puede ejecutar instrucciones de acuerdo con el lenguaje de programación, y también podemos escribir código para emitir instrucciones a la computadora.

Así como los padres nos enseñaron a hablar y nos enseñaron a entender lo que otras personas dicen. Después de un largo período de edificación y autoaprendizaje, hemos aprendido a hablar sin saberlo, y podemos entender el significado de los otros niños que hablan.

  • Chino: Hola mundo

  • En inglés: Hello World

  • En francés: Bonjour tout le monde

Si usa el lenguaje de programación para mostrar Hello World en la pantalla de su computadora, este es el caso:

  • Lenguaje C: pone (Hello World);

  • lenguaje Java: System.out.println ((Hello World);

  • Lenguaje Python: imprimir (Hello World)

Como pueden ver, los lenguajes de computadora tienen sus propias reglas específicas, y hay muchos lenguajes, y estas reglas de lenguaje son la clasificación de los lenguajes de programación que necesitamos explicarles hoy. En cada categoría, solo necesitamos recordar las reglas más básicas. Podemos usar estos lenguajes de programación para comunicarnos con la computadora y dejar que la computadora ejecute la estrategia correspondiente según nuestras instrucciones.

Clasificación de lenguajes de programación

Para facilitar la referencia y la comparación, elija el lenguaje de programación de comercio cuantitativo que le convenga.

img

Las clasificamos por capacidad funcional, velocidad, extensión y dificultad de aprendizaje. Una puntuación de 1 a 5, por ejemplo, una puntuación de 5 en el rango funcional significa poderosa, y 1 punto significa menos funcionalidad. (Como se muestra anteriormente) La programación visual y EasyLanguage son fáciles de aprender y muy nuevos; Python tiene poderosas capacidades de extensión y es adecuado para desarrollar estrategias comerciales más complejas; La programación en C ++ es la más rápida y más adecuada para los operadores de alta frecuencia.

Pero para cada lenguaje de programación, la evaluación es principalmente para la aplicación en el campo del comercio cuantitativo. y con el componente subjetivo del individuo. también son bienvenidos a explorarlos usted mismo, a continuación, vamos a empezar a introducir estos lenguajes de programación uno por uno.

Programación visual

La programación visual ha existido durante mucho tiempo, este tipo de "lo que ves es lo que obtienes" idea de programación, equipado con una variedad de módulos de control, sólo por arrastre y soltado, se puede construir la lógica del código, completar el diseño de la estrategia comercial, el proceso es como bloques de construcción.

img img

Como se muestra anteriormente, el mismo procedimiento es sólo unas pocas líneas de código en la plataforma de negociación FMZ Quant programación visual.

Debido a que la estrategia de implementación subyacente de esta programación visual se convierte a C ++, tiene poco efecto en la velocidad de ejecución del programa. Sin embargo, la funcionalidad y la escalabilidad son débiles, y es imposible desarrollar una estrategia de negociación que sea demasiado complicada y demasiado refinada.

Lenguaje fácil

img

El llamado EasyLanguage se refiere al lenguaje de programación exclusivo de algunos software de comercio cuantitativo comercializado. Aunque estos lenguajes también tienen algunas características orientadas a objetos, se escriben principalmente en la aplicación. En términos de gramática, también está muy cerca de nuestro lenguaje natural. Para los principiantes en el comercio cuantitativo, usar EasyLanguage como punto de partida es una buena opción. Por ejemplo, el lenguaje M en la plataforma FMZ Quant.

Este tipo de lenguaje de scripting no tiene ningún problema en la estrategia de backtesting y el mercado real en su software específico, pero en términos de expansión, a menudo es limitado. Por ejemplo, los desarrolladores de estrategias no pueden llamar a APIs externas.

Python

Como se muestra en la figura a continuación, en Stackoverflow, el número de accesos a lenguajes de programación convencionales no ha cambiado mucho en los últimos años, y solo Python está en un aumento tremendo. Python se puede usar para desarrollo web, aprendizaje automático, aprendizaje profundo, análisis de datos, etc. Se ha convertido en el lenguaje más versátil debido a su flexibilidad y apertura. Lo mismo es cierto en el campo de la inversión cuantitativa.

img

Las listas y diccionarios de estructura de datos básicos de Python son muy potentes y pueden satisfacer casi todas las necesidades de análisis de datos. Si necesita una estructura de datos más rápida y completa, se recomiendan NumPy y SciPy. Estas dos bibliotecas se llaman básicamente la biblioteca estándar para la computación científica de Python.

Para la ingeniería financiera, la biblioteca más específica es Pandas, con dos estructuras de datos, Serie y DataFrame, que son ideales para procesar series de tiempo.

En términos de velocidad, Python está en el medio del juego, más lento que C++, y más rápido que EasyLanguage, principalmente porque Python es un lenguaje dinámico que se ejecuta a la velocidad normal como un lenguaje Python puro.

Como lenguaje de pegamento, Python es el número uno en términos de escalabilidad. Además de ser capaz de interactuar con otros lenguajes ampliamente, el diseño de la API de extensión es muy fácil de usar. En términos de dificultad de aprendizaje, Python tiene una sintaxis simple, alta legibilidad de código y fácil entrada.

Matlab/R

Luego está el lenguaje Matlab y R. Estos dos lenguajes están principalmente orientados al análisis de datos. Los creadores de lenguaje han hecho mucho diseño para operaciones científicas en gramática, que se caracteriza por un soporte natural para operaciones comerciales cuantitativas. Sin embargo, el rango de aplicación es limitado, y generalmente se usa para análisis de datos y backtesting de estrategia. Para el desarrollo de algoritmos de sistemas de comercio y estrategia, su facilidad de uso y estabilidad son menores.

Además, su velocidad y escalabilidad son relativamente pobres, porque Matlab y R funcionan en una máquina virtual de lenguaje único. En términos de rendimiento, sus máquinas virtuales son mucho peores que Java y C #. Pero debido a que su gramática está más cerca de la fórmula de expresión matemática, es relativamente fácil de aprender.

C++

C++ es un lenguaje de programación de propósito general que admite múltiples patrones de programación como programación procedimental, abstracción de datos, programación orientada a objetos, programación genérica y patrones de diseño.

En la actualidad, C++ sigue siendo el lenguaje de programación preferido para el comercio de alta capacidad y alta frecuencia. La razón es simple. Debido a que las características del lenguaje C++ son más fáciles de acceder a la capa subyacente de la computadora, es la herramienta más efectiva para desarrollar sistemas de backtesting y ejecución de alto rendimiento que procesan grandes cantidades de datos.

Java y C#

Java/C# son lenguajes estáticos que se ejecutan en máquinas virtuales. En comparación con C++, no hay matriz fuera de los límites, no hay coredump, las excepciones lanzadas pueden localizar con precisión el código de error, traer un mecanismo automático de recolección de basura, no hay necesidad de preocuparse por la fuga de memoria y así sucesivamente. Así que en términos de dificultad de aprendizaje de gramática, también son más fáciles que C++. En términos de velocidad, debido a que sus máquinas virtuales vienen con funciones JIT compiladas en tiempo de ejecución, la velocidad es apenas segunda solo a C++.

Pero en términos de funcionalidad, es imposible optimizar el sistema de comercio subyacente como C ++. En términos de rendimiento de expansión, es más débil que C ++, porque su extensión necesita pasar el puente C, y los dos lenguajes se ejecutan en la máquina virtual, por lo que al expandir el módulo de funciones, usted necesita cruzar una pared de capa más.

En resumen

Sin embargo, al final, el lenguaje de programación cuantitativa no es importante, lo importante es la idea. El lenguaje FMZ Quant M y el lenguaje de programación visual no son absolutamente ningún problema como un trampolín para la entrada del comercio cuantitativo.

Diseñar su estrategia y comerciar sus ideas. Desde esta perspectiva, el núcleo del comercio cuantitativo sigue siendo el comercio de ideas. Como comerciante cuantitativo, no sólo necesita dominar la gramática básica y las funciones de la plataforma de escritura de estrategias, sino que también necesita entender el concepto de comercio en combate real.

Ejercicios extraescolares

  1. ¿Cuáles son las ventajas del lenguaje Python como herramienta de comercio cuantitativo?

  2. ¿Intentar escribir algunas API comúnmente utilizadas por el lenguaje M?

Notificación de la siguiente sección

Creo que con la introducción anterior al lenguaje de programación, usted debe saber cómo elegirlo, a continuación, en los próximos capítulos, vamos a desarrollar una estrategia de comercio cuantitativa basada en la clasificación de los lenguajes de programación.


Más.