Ce message concerne le trading automatique chez IG
J'ai besoin de connaître précisément le spread des instruments pour développer des algorithmes de trading. Je partage mes résultats sur les spreads que j'ai mesurés chez IG :
France40 : spread de 1.3 contre 1.0 annoncé en journée (9h-17h30)
Allemagne30 : spread de 1.5 contre 1.0 annoncé en journée (9h-17h30)
La méthode que j'ai utilisée est la suivante :
- Je considère que pour chaque position : Gain = Spread + Glissement + Gain Réel.
- "Gain Réel" étant l'évolution réelle du sous-jacent entre l'ordre d'achat et l'ordre de vente.
- "Glissement" étant le décalage entre le cours au moment de la demande d'exécution de l'ordre et le cours exécuté.
- "Gain" étant ce que IG reverse à son client.
- "Spread" étant la commission que IG empoche.
- D'où en moyenne :
Gain moyen = Spread moyen + Glissement moyen + Gain Réel moyen.
- Pour des prises de positions aléatoires, on aura :
Glissement moyen = 0.
- En alternant un grand nombre de positions aléatoires (position longue puis position courte), on obtient :
Gain réel moyen = 0.
- D'où en moyenne, pour des positions prises aléatoirement :
Spread moyen = Gain moyen
Les résultats en images pour des positions longues et courtes alternées toutes les 2 minutes pendant une vingtaine d'heures (compte démo !) :
Pour France40, à 10€ le point, le spread est de 12.4 / 10 = 1.24, arrondi à 1.3
Pour Allemagne30, à 25€ le point, le spread est de 37.73 / 25 = 1.51, arrondi à 1.5
Bien entendu, il y a des biais dans la méthode que j'ai mise en oeuvre. A commencer par la durée du test qui est de moins de 3 jours (les 30000€ de mon compte démo ont été asséchés c'est ce qui a entraîné l'arrêt du test). En examinant les données de près je ne pense pas qu'il y aura un écart de plus de 0.1 point entre le résultat publié dans ce post et celui que j'aurais obtenu en augmentant l'échantillonnage.
D'autre part, le test a été réalisé sur compte démo... Cela dit, lorsque j'ai lancé en parallèle des robots en trading réel et en trading démo chez IG, je n'ai pas observé de décalage significatif sur les gains.
Je prévois de relancer le même test la semaine prochaine, en le faisant tourner plus longtemps, et en incluant le S&P500. Si vous souhaitez que j'inclue un autre indice faites-le moi savoir.
Pour info, voici le code source du robot :
ONCE HeureDebutTest = 90000 // Format Time
ONCE HeureFinTest = 172800 // Format Time
ONCE TaillePosition = 1
ONCE EnPosition = 0
REM EnPosition = 1 (PL active) / EnPosition = 2 (PL vient de se terminer) / EnPosition = 3 (PC active) / EnPosition = 4 (PC vient de se terminer)
IF Time = HeureDebutTest THEN
EnPosition = 4
ENDIF
IF ( Time > HeureDebutTest ) AND (Time <= HeureFinTest ) THEN
IF EnPosition = 4 THEN
BUY TaillePosition CONTRACT AT MARKET
EnPosition = 1
ELSIF EnPosition = 1 THEN
SELL AT MARKET
EnPosition = 2
ELSIF EnPosition = 2 THEN
SELLSHORT TaillePosition CONTRACT AT MARKET
EnPosition = 3
ELSIF EnPosition = 3 THEN
EXITSHORT AT MARKET
EnPosition = 4
ENDIF
ENDIF