ProRealTime
Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum

Les tics sont toctocs

par jized » 03 Déc 2015 01:36

Bonjour,
Pour la petite histoire : j'ai écrit un programme collecteur de ticks par les API qui tourne en continu depuis plus d'un an. Entre autre il sert à alimenter la base de ticks de Takaticks.
Depuis quelques semaines - publie chaque jour un bilan du nombre de ticks qu'il collecte de son côté.
Or les chiffres ne collent pas, et ça m'intrigue, voire ça m'inquiète. :?

J'ai laissé tourner un programme toute la journée, qui a récupéré les ticks du DAX de 4 façons : en lots plein et en mini, sur mon compte démo et sur mon compte réel.

Et là, grosse surprise : selon les comptes on n'a pas les mêmes ticks !!! :hein:

Je précise que j'ai mis ça sur un serveur très peu chargé avec une bonne connectivité (bande passante de 100Mbits/s et ping vers ig.com de 3ms). Il n'y a pas eu de saturation de ce côté là.

Bilan entre 8h et 22h (heure française) :
07:00-20:59 UTC : DAX demo mini : 65474 ticks : min=11076.9 max=11331.9 : max 15 ticks/s
07:00-20:59 UTC : DAX demo full : 57430 ticks : min=11076.9 max=11331.9 : max 14 ticks/s
07:00-20:59 UTC : DAX real mini : 68035 ticks : min=11076.9 max=11331.9 : max 14 ticks/s
07:00-20:59 UTC : DAX real full : 54935 ticks : min=11076.9 max=11332.2 : max 14 ticks/s

Sur un compte réel : 13100 ticks de moins en lots pleins que en mini-lots, surprenant, non ?
Et le point haut du jour qui n'est pas tout à fait le même !

Détail heure par heure au format CSV pour lire avec un tableur :
Spoiler:
07:00;07:59;DAX;demo;mini;1819;11288;11327;12
08:00;08:59;DAX;demo;mini;7918;11254.3;11327;11
09:00;09:59;DAX;demo;mini;5319;11241.2;11285.9;15
10:00;10:59;DAX;demo;mini;5233;11265.4;11331.9;10
11:00;11:59;DAX;demo;mini;3936;11248.7;11308.9;10
12:00;12:59;DAX;demo;mini;5918;11185.9;11268.4;13
13:00;13:59;DAX;demo;mini;4928;11198.7;11244.2;12
14:00;14:59;DAX;demo;mini;5609;11199.2;11258.2;12
15:00;15:59;DAX;demo;mini;6911;11221.4;11266.9;10
16:00;16:59;DAX;demo;mini;5348;11181.2;11227.4;10
17:00;17:59;DAX;demo;mini;2222;11181.2;11204.4;7
18:00;18:59;DAX;demo;mini;2473;11155.4;11197.2;11
19:00;19:59;DAX;demo;mini;4048;11076.9;11156.2;9
20:00;20:59;DAX;demo;mini;3792;11088.4;11137.4;9
07:00;07:59;DAX;demo;full;1522;11288;11327;11
08:00;08:59;DAX;demo;full;6405;11254.4;11327;10
09:00;09:59;DAX;demo;full;4393;11241.2;11285.9;11
10:00;10:59;DAX;demo;full;4650;11265.4;11331.9;12
11:00;11:59;DAX;demo;full;3467;11248.7;11308.9;10
12:00;12:59;DAX;demo;full;5106;11185.9;11268.4;14
13:00;13:59;DAX;demo;full;4425;11198.7;11243.9;10
14:00;14:59;DAX;demo;full;5220;11199.2;11258.2;11
15:00;15:59;DAX;demo;full;6167;11221.4;11266.9;10
16:00;16:59;DAX;demo;full;4888;11181.2;11227.4;8
17:00;17:59;DAX;demo;full;2065;11181.2;11204.4;6
18:00;18:59;DAX;demo;full;2242;11155.4;11197.2;8
19:00;19:59;DAX;demo;full;3794;11076.9;11156.2;8
20:00;20:59;DAX;demo;full;3086;11088.4;11137.4;8
07:00;07:59;DAX;real;mini;1848;11288;11327;9
08:00;08:59;DAX;real;mini;8006;11254.4;11326.3;13
09:00;09:59;DAX;real;mini;5423;11241.2;11285.9;14
10:00;10:59;DAX;real;mini;5386;11265.4;11331.9;12
11:00;11:59;DAX;real;mini;4137;11248.9;11308.9;10
12:00;12:59;DAX;real;mini;6264;11185.9;11268.4;14
13:00;13:59;DAX;real;mini;5218;11198.7;11244.2;12
14:00;14:59;DAX;real;mini;5862;11199.2;11258.2;12
15:00;15:59;DAX;real;mini;7224;11220.9;11266.9;12
16:00;16:59;DAX;real;mini;5650;11181.2;11227.4;11
17:00;17:59;DAX;real;mini;2277;11181.2;11204.4;6
18:00;18:59;DAX;real;mini;2584;11155.4;11197.2;9
19:00;19:59;DAX;real;mini;4329;11076.9;11156.2;8
20:00;20:59;DAX;real;mini;3827;11088.4;11137.4;9
07:00;07:59;DAX;real;full;1464;11288;11327;8
08:00;08:59;DAX;real;full;6454;11254.4;11326.3;10
09:00;09:59;DAX;real;full;4307;11241.2;11285.9;14
10:00;10:59;DAX;real;full;4424;11264.7;11332.2;10
11:00;11:59;DAX;real;full;3170;11248.9;11308.9;9
12:00;12:59;DAX;real;full;4826;11185.9;11268.4;14
13:00;13:59;DAX;real;full;4174;11198.9;11243.9;9
14:00;14:59;DAX;real;full;4911;11199.2;11258.2;12
15:00;15:59;DAX;real;full;5993;11220.9;11265.9;11
16:00;16:59;DAX;real;full;4569;11181.2;11227.4;9
17:00;17:59;DAX;real;full;1925;11181.2;11204.4;6
18:00;18:59;DAX;real;full;2121;11155.4;11197.2;9
19:00;19:59;DAX;real;full;3515;11076.9;11156.2;8
20:00;20:59;DAX;real;full;3082;11088.4;11137.4;8


Même constat sur la paire EURUSD :
07:00-20:59 UTC : EURUSD demo mini : 134242 ticks : min=1.05504 max=1.06321 : max 20 ticks/s
07:00-20:59 UTC : EURUSD demo full : 131525 ticks : min=1.05504 max=1.0632 : max 19 ticks/s
07:00-20:59 UTC : EURUSD real mini : 132712 ticks : min=1.05504 max=1.06321 : max 19 ticks/s
07:00-20:59 UTC : EURUSD real full : 135424 ticks : min=1.05504 max=1.06321 : max 19 ticks/s
Spoiler:
07:00;07:59;EURUSD;demo;mini;6589;1.06077;1.0627;17
08:00;08:59;EURUSD;demo;mini;9653;1.06162;1.06321;17
09:00;09:59;EURUSD;demo;mini;9253;1.0612;1.06318;15
10:00;10:59;EURUSD;demo;mini;12818;1.05813;1.06191;18
11:00;11:59;EURUSD;demo;mini;6008;1.05874;1.05975;15
12:00;12:59;EURUSD;demo;mini;7024;1.05914;1.06002;15
13:00;13:59;EURUSD;demo;mini;11573;1.05779;1.06154;18
14:00;14:59;EURUSD;demo;mini;11619;1.05708;1.05971;17
15:00;15:59;EURUSD;demo;mini;14562;1.0559;1.05755;16
16:00;16:59;EURUSD;demo;mini;9132;1.05678;1.05785;16
17:00;17:59;EURUSD;demo;mini;12946;1.05504;1.05977;19
18:00;18:59;EURUSD;demo;mini;10342;1.05806;1.0615;20
19:00;19:59;EURUSD;demo;mini;7950;1.06085;1.06265;15
20:00;20:59;EURUSD;demo;mini;4773;1.06117;1.06239;15
07:00;07:59;EURUSD;demo;full;6458;1.06077;1.0627;17
08:00;08:59;EURUSD;demo;full;8962;1.06162;1.0632;17
09:00;09:59;EURUSD;demo;full;8861;1.0612;1.06318;17
10:00;10:59;EURUSD;demo;full;12318;1.05813;1.06154;18
11:00;11:59;EURUSD;demo;full;5885;1.05875;1.05975;15
12:00;12:59;EURUSD;demo;full;7052;1.05914;1.06003;16
13:00;13:59;EURUSD;demo;full;11427;1.0578;1.06154;18
14:00;14:59;EURUSD;demo;full;11416;1.05708;1.05971;16
15:00;15:59;EURUSD;demo;full;14619;1.0559;1.05755;16
16:00;16:59;EURUSD;demo;full;8817;1.05678;1.05785;15
17:00;17:59;EURUSD;demo;full;12550;1.05504;1.05977;19
18:00;18:59;EURUSD;demo;full;10304;1.05806;1.0615;19
19:00;19:59;EURUSD;demo;full;8001;1.06085;1.06265;14
20:00;20:59;EURUSD;demo;full;4855;1.06117;1.06239;15
07:00;07:59;EURUSD;real;mini;6644;1.06077;1.0627;18
08:00;08:59;EURUSD;real;mini;9535;1.06162;1.06321;17
09:00;09:59;EURUSD;real;mini;9122;1.0612;1.06318;16
10:00;10:59;EURUSD;real;mini;13059;1.05813;1.06194;18
11:00;11:59;EURUSD;real;mini;5959;1.05874;1.05975;14
12:00;12:59;EURUSD;real;mini;6897;1.05914;1.06002;16
13:00;13:59;EURUSD;real;mini;11637;1.05779;1.06151;18
14:00;14:59;EURUSD;real;mini;11717;1.05708;1.05971;16
15:00;15:59;EURUSD;real;mini;14657;1.0559;1.05755;17
16:00;16:59;EURUSD;real;mini;8716;1.05678;1.05785;16
17:00;17:59;EURUSD;real;mini;12652;1.05504;1.05977;19
18:00;18:59;EURUSD;real;mini;9839;1.05807;1.0615;17
19:00;19:59;EURUSD;real;mini;7594;1.06085;1.06265;13
20:00;20:59;EURUSD;real;mini;4684;1.06117;1.06239;14
07:00;07:59;EURUSD;real;full;6600;1.06077;1.0627;18
08:00;08:59;EURUSD;real;full;9579;1.06162;1.06321;17
09:00;09:59;EURUSD;real;full;9083;1.06121;1.06318;16
10:00;10:59;EURUSD;real;full;12872;1.05813;1.06194;19
11:00;11:59;EURUSD;real;full;6074;1.05874;1.05975;14
12:00;12:59;EURUSD;real;full;7345;1.05914;1.06003;16
13:00;13:59;EURUSD;real;full;11489;1.0578;1.06151;17
14:00;14:59;EURUSD;real;full;11798;1.05708;1.05971;16
15:00;15:59;EURUSD;real;full;15146;1.0559;1.05755;16
16:00;16:59;EURUSD;real;full;9310;1.05678;1.05785;14
17:00;17:59;EURUSD;real;full;13003;1.05504;1.05977;18
18:00;18:59;EURUSD;real;full;10344;1.05807;1.0615;17
19:00;19:59;EURUSD;real;full;7809;1.06085;1.06265;15
20:00;20:59;EURUSD;real;full;4972;1.06117;1.06239;14


Je ne sais pas ce qu'il faut penser de cela.
PRT a peut-être un flot de ticks encore différent. Ce serait une explication aux décalages souvent constatés entre lui et les autres applications.

D'autres ont peut-être aussi fait ce genre d'analyse.

Re: Les tics sont toctocs

par takapoto » 03 Déc 2015 03:42

Merci pour ce travail précis et instructif.

Re: Les tics sont toctocs

par Benoist Rousseau » 03 Déc 2015 06:18

On savait déjà que la demo à quelques différences par rapport au réel qu'on avait listé: bugs repérés qui ne sont pas en réel, calcul des frais overnight faux, moins d'instruments tradables... Maintenant on sait grâce à toi que le flux n'est pas le même non plus même si on s'en doutait un peu ou du moins que selon l'api il y en a en plus ou en moins.

On voit à l'œil nu parfois que prt est plus lent que la l3 ou takascalper pendant quelques secondes parfois dans la journée les ticks sur prt ont une demi seconde de retard pendant quelques secondes et cela revient à la norme. Là on perd des ticks.

J'ai ainsi un peu plus de ticks sur la connexion vdsl2 à 7 8 ms avec 18/5 Mo ms que sur ma connexion fibre à 29 30ms et 400/20 mo. Ce n'est pas lié qu'à la vitesse mais aux pertes de paquets. Ma connexion vdsl2 en perd 5 à 10 fois moins sur une journée que ma connexion fibre :( Sur une connection ADSL à Paris c'était plus de 100.000 paquets perdus par jours :hein: d'ailleurs depuis que Takapoto a intégré son ping en continue je scalpe avec la vdsl2...

Je vais recevoir un nouvel ordinateur doté d'une carte réseau Intel coûtant 3 fois le prix d'une carte mère et qui est spécialisé dans la gestion des petits paquets tcp. Ils promettent une réduction des pertes de paquets importantes, la carte étant spécialisé dans les petits paquets.

MSI a aussi sorti une carte mère avec une carte réseau spécial gamer qui améliore cela en rendant plus réactive la carte réseau. C'est sur certaines de leur dernière carte mère x99. Il y z même des cartes réseaux gamer lancés par gigabyte notamment pour s'affranchir de la couche réseau Windows pour aller plus vite. Je m'amuserai à voir cela sur les deux ordis branché tous les deux à la fibre. Je vais cloner les pc. Installation Windows 10 sans aucune modification et connexion web IG avec 10 indices en boucle. Mais je devrai recevoir plus de paquets avec ma carte réseau Intel qu'avec ma carte réseau de base gigabyte :) j'ai découvert que c'était le maillon faible surtout sur ordinateur portable la carte réseau les performances pouvant aller d'un facteur 1 à 10... On a des cartes lambdas alors que les cartes pro valent des fortunes parfois

Re: Les tics sont toctocs

par takapoto » 03 Déc 2015 06:23

Pour tester les paquets perdus :
http://www.pingtest.net/

(il faut un navigateur supportant java)

Re: Les tics sont toctocs

par Benoist Rousseau » 03 Déc 2015 06:31

Très important pour ceux qui tradent en 3G et 4g de tester.

Au niveau de la box on a aussi les pertes fec de la box d'affichés dans les options selon les opérateurs. Parfois c'est même des filtres qui nous en font perdre... Mode sérénité ou patate chez Free par exemple. Hélas trop peu de fai permettent de tweaker un peu le flux de réception au niveau de la box mais chez Free c'est impressionnant la différence entre leur différent mode patate et sérénité.

Ensuite il y a les pertes entre la box et le pc en wifi je n'en parle pas ça dépend de chaque installation épaisseur des murs et type de clé wifi et cela peut-être très important.

Re: Les tics sont toctocs

par jized » 04 Déc 2015 00:57

Salut -,
Content que tu passes par là.

"Ça ne colle pas" : tu as toujours un peu plus de ticks que moi, mais les quantités quotidiennes varient dans les mêmes proportions.
Par exemple aujourd'hui (03/12/2015), j'ai eu 108948 ticks sur le DAX30, et toi 109882.

Les valeurs que j'ai épluchées dans mon 1er post sont celles du 02/12.

Comme mon récupérateur auto est sur le DAX plein, je vais le passer sur le DAXmini dès demain pour voir si cela explique la différence avec toi.

J'ai refait l'expérience de comparaison des flux aujourd'hui (03/12), mais juste pendant quelques heures pendant l'apm, sur le compte réel, au moment où ça bougeait vraiment beaucoup (je ne veux pas trop abuser des connexions en // car on est limité pour les API et je crains de me faire blacklister par IG).

Encore une fois, il y a eu sensiblement plus de ticks sur le DAXmini que sur le DAXplein.

Quelques valeurs (03/12) :
14:00-14:59 UTC : DAX real mini : 11335 ticks : min=10853.4 max=10988.1 : max 9 t/s
15:00-15:59 UTC : DAX real mini : 10243 ticks : min=10809.9 max=10905.4 : max 10 t/s
16:00-16:59 UTC : DAX real mini : 8831 ticks : min=10743.1 max=10892.4 : max 10 t/s
17:00-17:59 UTC : DAX real mini : 5710 ticks : min=10658.4 max=10779.9 : max 13 t/s

***************************************
Le temps fort de la journée :
***************************************
13:43:15.490 10871,4
13:43:15.590 10856,4
13:43:15.689 10840,6
3 ticks, 0.2 s, -30.8 points :bravo: le DAX !!!

Re: Les tics sont toctocs

par jized » 05 Déc 2015 00:48

-, le problème n'est pas de ne pas perdre des ticks, ça c'est facile, mais de les recevoir.
Ce que j'ai voulu mettre en avant, c'est que à ma grande surprise nous ne recevons pas tous les mêmes ticks.

J'ai fait une expérience assez déroutante : 2 serveurs distincts avec une bonne connexion réseau connectés en même temps avec le même compte ne reçoivent pas exactement les mêmes ticks. Les prix sont globalement les mêmes, mais il peut en manquer quelques-uns d'un côté ou de l'autre, et l'horodatage de ig en ms n'est pas le même (donc on ne peut pas isoler un tick par son heure, et pourtant c'est celle marquée par ig).

Encore plus intriguant à mon goût : on n'a pas les mêmes ticks sur le dax mini (IX.D.DAX.IMF.IP) que sur le dax plein (IX.D.DAX.IDF.IP), même sur un compte réel. Il y a sensiblement plus de ticks sur le flux mini que sur le plein, et ça je ne me l'explique pas.

Ça ne me choque pas du tout qu'il y ait des lacunes sur un compte démo, mais en réel c'est troublant.

Je trouve aussi qu'il serait très intéressant d'échanger quelques fichiers pour analyser les différences. On peut se limiter au dax pour simplifier. Pour que les conditions soient comparables, il faudrait que tu me donnes quelques précisions : type de compte (réel ou démo) et epic.
Je peux m'adapter sans souci et lancer la moulinette dès lundi.

Re: Les tics sont toctocs

par DarthTrader » 05 Déc 2015 06:09


Re: Les tics sont toctocs

par falex » 05 Déc 2015 07:21

Vous souscrivez en CHART ou en MARKET ?
En CHART les messages sont puschés 1 par 1 et en flot continu.
Après j'ai eu plusieurs IG qui le dit que 100%?be dont pas reporté côté client (sic)

L'autre jour, j'ai eu le problème avec un ticket clôturer alors que le plus haut tick n'avait pas touché le prix de sortie, et ce que ce soit sur PRT ou sur le web.

Donc on peut dire que le flux doit correspondre à 99,xxx de la réalité des transactions et autre changement

Re: Les tics sont toctocs

par takapoto » 05 Déc 2015 08:05

Je crois me souvenir que lors de mes derniers tests, en MARKET, on n'avais pas les millisecondes alors qu'en CHART oui.
Donc, ils doivent parler de CHART...


ProRealTime

Alors partagez-le 5 fois c'est bon pour la santé