Les ressources ont été chargées... Je charge...

3.1 Évaluation du langage de programmation de négociation quantitative

Auteur:La bonté, Créé: 2019-04-18 15:03:37, Mis à jour: 2019-04-27 11:54:49

Résumé

Dans les chapitres 1 et 2, nous avons appris les bases du trading quantitatif et les utilisations des outils FMZ Quant. Dans ce chapitre, nous allons mettre en œuvre les stratégies de trading réelles. Si un travailleur veut faire quelque chose de bien, il doit d'abord affûter ses outils. Pour mettre en œuvre une stratégie de trading, vous devez d'abord maîtriser un langage de programmation. Cette section présente d'abord les langages de programmation courants dans le trading quantitatif, ainsi que les caractéristiques de chaque langage de programmation lui-même.

C'est quoi un langage de programmation?

Avant d'apprendre un langage de programmation, vous devez d'abord comprendre le concept de langage de programmation. Un langage de programmation est un langage que les humains et les ordinateurs peuvent comprendre. C'est un code de communication standardisé. Le but d'un langage de programmation est d'utiliser un langage humain pour contrôler un ordinateur et dire à l'ordinateur ce que nous allons faire. L'ordinateur peut exécuter des instructions selon le langage de programmation, et nous pouvons également écrire du code pour émettre des instructions à l'ordinateur.

Tout comme les parents nous ont appris à parler et nous ont appris à comprendre ce que disent les autres. Après une longue période d'éducation et d'auto-apprentissage, nous avons appris à parler sans le savoir, et pouvons comprendre le sens des autres enfants qui parlent. Il existe de nombreuses langues, y compris le chinois, l'anglais, le français, etc., telles que:

  • Chinois: Bonjour au monde

  • En français: Hello World

  • Français: Bonjour tout le monde

Si vous utilisez le langage de programmation pour afficher Hello World sur l'écran de votre ordinateur, voici le cas:

  • Langue C: met (Hello World);

  • Le langage Java: System.out.println ((Bonjour monde);

  • Langage Python: imprimer (Hello World)

Vous pouvez voir que les langages informatiques ont leurs propres règles spécifiques, et il y a beaucoup de langages, et ces règles de langage sont la classification des langages de programmation que nous devons vous expliquer aujourd'hui. Dans chaque catégorie, nous n'avons qu'à nous souvenir des règles les plus basiques. Nous pouvons utiliser ces langages de programmation pour communiquer avec l'ordinateur et laisser l'ordinateur exécuter la stratégie correspondante selon nos instructions.

Classification des langages de programmation

Pour faciliter la référence et la comparaison, choisissez le langage de programmation quantitative qui vous convient. Nous allons catégoriser les six langages de programmation les plus couramment utilisés: Python, Matlab/R, C++, Java/C#, EasyLanguage et Visual Programming Language (comme indiqué ci-dessous).

img

Nous les classons par capacité fonctionnelle, vitesse, extension et difficulté d'apprentissage. Un score de 1 à 5, par exemple, un score de 5 sur la plage fonctionnelle signifie puissant, et 1 point signifie moins de fonctionnalité. (Comme indiqué ci-dessus) La programmation visuelle et EasyLanguage sont faciles à apprendre et très nouvelles; Python a de puissantes capacités d'extension et convient pour développer des stratégies de trading plus complexes; La programmation C++ est la plus rapide et plus adaptée pour les traders à haute fréquence.

Mais pour chaque langage de programmation, l'évaluation est principalement pour l'application dans le domaine du trading quantitatif. et avec la composante subjective de l'individu. vous êtes également invité à les explorer vous-même, Ensuite, nous allons commencer à introduire ces langages de programmation un par un.

La programmation visuelle

La programmation visuelle existe depuis longtemps, ce genre de "ce que vous voyez est ce que vous obtenez" idée de programmation, équipée d'une variété de modules de contrôle, juste par glisser-déposer, vous pouvez construire la logique de code, compléter la stratégie de trading conception, le processus est comme des blocs de construction.

img img

Comme indiqué ci-dessus, la même procédure est seulement quelques lignes de code sur la plateforme de trading FMZ Quant de programmation visuelle.

Comme la stratégie de mise en œuvre sous-jacente de cette programmation visuelle est convertie en C++, elle a peu d'effet sur la vitesse d'exécution du programme.

EasyLanguage

img

Le terme EasyLanguage désigne le langage de programmation unique à certains logiciels de trading quantitatif commercialisés. Bien que ces langages aient également des fonctionnalités orientées objet, ils sont principalement scriptés dans l'application. En termes de grammaire, il est également très proche de notre langage naturel. Pour les débutants du trading quantitatif, l'utilisation d'EasyLanguage comme point de départ est un bon choix. Par exemple, le langage M sur la plateforme FMZ Quant.

Ce type de langage de script n'a aucun problème dans le backtesting de stratégie et le marché réel dans son logiciel spécifique, mais en termes d'expansion, il est souvent limité. Par exemple, les développeurs de stratégie ne peuvent pas appeler des API externes.

Python

Comme le montre la figure ci-dessous, sur Stackoverflow, le nombre d'accès aux langages de programmation traditionnels n'a pas beaucoup changé ces dernières années, et seul Python est en forte augmentation. Python peut être utilisé pour le développement Web, l'apprentissage automatique, l'apprentissage en profondeur, l'analyse de données, etc. Il est devenu le langage le plus polyvalent en raison de sa flexibilité et de son ouverture. Il en va de même dans le domaine de l'investissement quantitatif.

img

Les listes et les dictionnaires de structure de données de base de Python sont très puissants et peuvent répondre à presque tous les besoins d'analyse de données.

Pour l'ingénierie financière, la bibliothèque la plus ciblée est Pandas, avec deux structures de données, Series et DataFrame, idéales pour le traitement des séries temporelles.

En termes de vitesse, Python est au milieu du jeu, plus lent que C++, et plus rapide que EasyLanguage, principalement parce que Python est un langage dynamique qui fonctionne à la vitesse normale comme un langage Python pur.

En tant que langage de colle, Python est le numéro un en termes d'évolutivité. En plus d'être capable d'interfacer avec d'autres langages de manière étendue, la conception de l'API d'extension est très facile à utiliser. En termes de difficulté d'apprentissage, Python a une syntaxe simple, une grande lisibilité du code et une entrée facile.

Matlab/R

Ensuite, il y a Matlab et le langage R. Ces deux langages sont principalement orientés vers l'analyse de données. Les créateurs de langage ont fait beaucoup de conception pour les opérations scientifiques en grammaire, qui se caractérise par un support naturel pour les opérations de trading quantitatives. Cependant, la gamme d'applications est limitée, et il est généralement utilisé pour l'analyse de données et le backtesting de stratégie. Pour le développement de systèmes de trading et d'algorithmes de stratégie, sa facilité d'utilisation et sa stabilité sont moins.

En outre, leur vitesse et leur évolutivité sont relativement faibles, car Matlab et R fonctionnent sur une machine virtuelle de langage unique. En termes de performances, leurs machines virtuelles sont beaucoup pires que Java et C #. Mais parce que leur grammaire est plus proche de la formule d'expression mathématique, il est relativement facile à apprendre.

C++

C++ est un langage de programmation à usage général qui prend en charge plusieurs modèles de programmation tels que la programmation procédurale, l'abstraction de données, la programmation orientée objet, la programmation générique et les modèles de conception.

À l'heure actuelle, C++ est toujours le langage de programmation préféré pour le trading à haute capacité et à haute fréquence. La raison est simple. Parce que les fonctionnalités du langage C++ sont plus faciles à accéder à la couche sous-jacente de l'ordinateur, c'est l'outil le plus efficace pour développer des systèmes de backtesting et d'exécution haute performance qui traitent de grandes quantités de données.

Java et C#

Java/C# sont des langages statiques qui s'exécutent sur des machines virtuelles. Comparé à C++, il n'y a pas de tableau hors limites, pas de coredump, les exceptions lancées peuvent localiser avec précision le code d'erreur, apporter un mécanisme de collecte automatique de déchets, pas besoin de s'inquiéter des fuites de mémoire, etc. Donc en termes de difficulté d'apprentissage de la grammaire, ils sont également plus faciles que C++. En termes de vitesse, parce que leurs machines virtuelles sont livrées avec des fonctions JIT compilées à l'exécution, la vitesse n'est que la deuxième après C++.

Mais en termes de fonctionnalité, il est impossible d'optimiser le système de trading sous-jacent comme C ++. En termes de performance d'expansion, il est plus faible que C ++, car leur extension doit passer le pont C, et les deux langages eux-mêmes fonctionnent sur la machine virtuelle, donc lors de l'expansion du module de fonction, vous devez traverser un mur de couche de plus.

Pour résumer

Cependant, à la fin, le langage de programmation quantitative n'est pas important, l'important est l'idée. Le langage FMZ Quant M et le langage de programmation visuelle ne posent absolument aucun problème en tant que tremplin pour l'entrée du trading quantitatif. Après les bases, l'amélioration consiste à explorer continuellement différentes conditions du marché et à essayer d'utiliser un langage plus sous-jacent, tel que C++.

Concevoir votre stratégie et négocier vos idées. De ce point de vue, le cœur du trading quantitatif est toujours le trading d'idées. En tant que trader quantitatif, vous devez non seulement maîtriser la grammaire de base et les fonctions de la plateforme d'écriture de stratégie, mais aussi comprendre le concept de trading dans le combat réel.

Exercices après l'école

  1. Quels sont les avantages du langage Python en tant qu'outil de trading quantitatif?

  2. Essayez d'écrire quelques API couramment utilisées par le langage M?

Communiqué de la section suivante

Je crois qu'avec l'introduction ci-dessus au langage de programmation, vous devez savoir comment le choisir, puis dans les prochains chapitres, nous développerons une stratégie commerciale quantitative basée sur la classification des langages de programmation.


Plus de