Upload
georges-nogues
View
102
Download
0
Embed Size (px)
Citation preview
High Frequency Trading
Introduction
Introduction
• Séminaires de 30 minutes, une fois par semaine (8 en tout)• Sujets abordés
– Définition d’un algorithme et introduction à la programmation(Séance 1)
– L’utilisation 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 d’un 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 d’assister à ces présentations– Sujet chaud en finance– Apprendre l’utilité et l’application 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 d’un algorithme et introduction à la programmation
Définition d’un algorithme et introduction à la programmation
• Plan de présentation– Définition d’un algorithme– Exemple d’un algorithme– Commandes logiques de base– Opérateurs logiques– Utilité des fonctions en programmation
Définition d’un algorithme et introduction à la programmation
• Définition d’un algorithme– Processus systématiques de résolution, par le
calcul, d'un problème permettant de décrire les étapes vers le résultat
– C’est tout simplement une procédure pas-à-pas permettant de donner une réponse à un problème
– Un algorithme peut être appliqué à n’importe quel problème où la solution peut être résolue par une suite logique d’évènement (finance, mathématiques, ingénierie etc.)
Exemple d’un algorithme
YES NO
YES
NO
NO
YES
YES
NO
NO
Begining
Don't mess with itDid you
mess with it?
Is it working?
Does anyone know?
Will you get screwed?
You're an idiot
Hide it You poor bastard
Can you blame someone else?
No Problem
Put it in the bin
Yes
Commandes logiques de base• Conditionnel (If, Else If, Else)
Si la condition est respectée (habituellement : <, >, ≥, ≤, =), exécute l’opération • Exemple:
If variable = Condition exécute opération quelconque
Elseif variable > une autre conditionexécute une opération différente
Else (dans tout les autres cas)éxecute une opération par défaut
end
• Boucle (For)Utile lorsqu’on veut répéter une opération pour un nombre fini de fois
• Exemple: For i = 1:100 exécute une opérationEnd
• Boucle Conditionnelle (While) – Utilisée lorsqu’on veut répéter une opération indéfiniment tant qu’une condition est respectée
• Exemple:While (Condition) exécute une opérationend
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 ETA B A & B0 0 00 1 01 0 01 1 1
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 OUA B A |B0 0 00 1 11 0 11 1 1
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)
• Qu’est-ce qu’on peut remarquer à propos de la distributivité?
Table de vérité opérateur NON
A ~A0 11 0
A B ~A ~B A & B A | B ~A & B ~A | B ~A & ~B ~A | ~B ~(A & B) ~(A | B)0 0 1 1 0 0 0 1 1 1 1 10 1 1 0 0 1 1 1 0 1 1 01 0 0 1 0 1 0 0 0 1 1 01 1 0 0 1 1 0 1 0 0 0 0
Résumé tables de vérités
Utilité des fonctions en programmation
• Une série d’instruction programmée à laquelle on peut faire appel dans le code
Exemple: Addition de deux nombre A et Bfonction Addition (A,B)Somme = A+B;return (Somme) Si j’appelle ma fonction Addition dans mon codeA = 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 d’autre
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 n’existe plus
lorsque la fonction termine – On peut cependant passé des variables locales d’une fonction à
l’autre en les mettant en paramètres• Variables Globales (Public)
– Très rarement utilisées, ces variables peuvent être accédées dans n’importe 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 n’est pas recommandé d’utiliser les variables globales, a moins que cela ne soit VRAIMENT nécessaire
Pertinence des commentaires dans un code
• Commentez votre code!!!• Commentez votre code!!!• Commentez votre code!!!• Commentez votre code!!!• Commentez votre code!!!• Commentez votre code!!!• Commentez votre code!!!• Commentez votre code!!!