High Frequency Trading Introduction
Séminaires de 30 minutes, une fois par semaine (8 en tout) Sujets abordés – Définition dun algorithme et introduction à la programmation(Séance 1) – Lutilisation des algorithmes en finances (Séance 2) – Évaluation de la performance des algorithmes (Séance 3) – Inefficiences de marché et opportunités de profits (Séance 4) – Stratégies (Séances 5 et 6) – Gestion dun portefeuille de stratégies HFT (Séance 7) – « Back-Testing » et gestion de risques (Séance 8) Libre à ceux et celles qui veulent assister
Introduction Quelques raisons dassister à ces présentations – Sujet chaud en finance – Apprendre lutilité et lapplication des algorithmes – Voir le différentes applications des algorithmes en finances – Culture personnel – Participer à la compétition boursière RITC
High Frequency Trading Définition dun algorithme et introduction à la programmation
Plan de présentation – Définition dun algorithme – Exemple dun algorithme – Commandes logiques de base – Opérateurs logiques – Utilité des fonctions en programmation
Définition dun algorithme et introduction à la programmation Définition dun algorithme – Processus systématiques de résolution, par le calcul, d'un problème permettant de décrire les étapes vers le résultat – Cest tout simplement une procédure pas-à-pas permettant de donner une réponse à un problème – Un algorithme peut être appliqué à nimporte quel problème où la solution peut être résolue par une suite logique dévènement (finance, mathématiques, ingénierie etc.)
Exemple dun algorithme Yes
Commandes logiques de base Conditionnel (If, Else If, Else) Si la condition est respectée (habituellement :,,, =), exécute lopération Exemple: If variable = Condition exécute opération quelconque Elseif variable > une autre condition exécute une opération différente Else (dans tout les autres cas) éxecute une opération par défaut end Boucle (For) Utile lorsquon veut répéter une opération pour un nombre fini de fois Exemple: For i = 1:100 exécute une opération End Boucle Conditionnelle (While) – Utilisée lorsquon veut répéter une opération indéfiniment tant quune condition est respectée Exemple: While (Condition) exécute une opération end
Opérateurs logiques Et (&, and) – Afin que la condition soit vraie, A et B doivent être vrai Exemple: A = 50, B = 75 – A & B < 100 – Vrai (1) – A & B < 60 – Faux (0) – A & B < 50 – Faux (0) Table de vérité opérateur ET ABA & B
Opérateurs logiques Ou (|, or) – Afin que la condition soit vraie, soit A ou soit B ou les deux doivent être vrai Exemple A = 50, B = 75 – A | B > 100 – Vrai (1) – A | B = 75 – Vrai (1) – A | B = 50 – Vrai (1) – A | B < 50 – Faux (0) Table de vérité opérateur OU ABA |B
Opérateurs logiques Non (~, not,!) – Opérateur qui inverse la logique – Peut être utilisé avec les opérateurs mathématiques de base (,,, =) Exemple: A = 75 – A ~= 75 – Faux (0) – Peut être utilisé avec des conditions (variable booléenne: 0 = faux, 1 = vrai) Quest-ce quon peut remarquer à propos de la distributivité? Table de vérité opérateur NON A~A 01 10
Utilité des fonctions en programmation Une série dinstruction programmée à laquelle on peut faire appel dans le code Exemple: Addition de deux nombre A et B fonction Addition (A,B) Somme = A+B; return (Somme) Si jappelle ma fonction Addition dans mon code A = 5; B = 6; Y = Addition (A,B) On aura alors Y = 11
Utilité des fonctions en programmation Avantages – Simplification et organisation du code – Éviter les erreurs de copier/coller – Portabilité (peut être réutilisée dans dautre projets ou plusieurs fois dans le code) – Rend le code plus facile à débugger – Etc… Désavantages – AUCUN!!!
Type de variables Variables Locales (Private) – Variables utilisée dans une seule fonction i.e. elle nexiste plus lorsque la fonction termine – On peut cependant passé des variables locales dune fonction à lautre en les mettant en paramètres Variables Globales (Public) – Très rarement utilisées, ces variables peuvent être accédées dans nimporte quelle fonction du code – Difficile à débugger car il y a risque décrasement de la variable si on prend un variable locale avec le même nom. Il nest pas recommandé dutiliser les variables globales, a moins que cela ne soit VRAIMENT nécessaire
Pertinence des commentaires dans un code Commentez votre code!!!