Accéder au contenu principal
Imprimer
Focus 19 - Décembre 2016

La vitesse sur les marchés financiers : stop ou encore ?

Depuis que les marchés financiers existent, les professionnels de la finance ont sans relâche exploité les évolutions technologiques, que ce soit le télégraphe, le téléphone, l’ordinateur, ou plus récemment l’Internet, visant sans cesse à diminuer la latence, autrement dit le temps qui s’écoule entre l’introduction d’un ordre et son exécution. Cette évolution a bénéficié aux investisseurs non-professionnels puisqu’ils peuvent désormais introduire leurs propres ordres d’achat ou de vente, en obtenir l’exécution en moins d’une seconde, et payer des coûts de transaction bien plus faibles que lorsqu’ils devaient attendre la confirmation de leur courtier durant d’interminables minutes passées au téléphone.

Depuis quelques années, la latence sur les marchés financiers a diminué de manière vertigineuse en raison de la course à l’armement technologique à laquelle ont pris part les acteurs liés au Trading Haute Fréquence. L’objectif des Traders Haute Fréquence (THFs) est de profiter d’opportunités de très court terme, qui sont imperceptibles à l’œil nu par l’être humain, en effectuant des transactions financières ultrarapides et entièrement automatisées.

Les THFs peuvent aujourd’hui effectuer une transaction entre New York et Chicago en moins de cinq millisecondes, ou une transaction entre Londres et Francfort en moins de trois millisecondes. A titre de comparaison, le battement de cils d’un être humain dure 300 millisecondes, soit une éternité aux yeux des THFs puisqu’une transaction sur Euronext est désormais possible en 0,037 milliseconde. Durant le battement d’un cil, il est donc théoriquement possible d’effectuer plus de 8.100 transactions consécutives sur Euronext. Si l’on considère que la milliseconde a remplacé la seconde comme unité de référence, alors les intervenants sont potentiellement 1.000 fois plus rapides qu’il y a quelques années, ce qui pose la question de la place de l’Homme dans un tel système, les algorithmes prenant des décisions en un laps de temps bien en-deçà des capacités physiques de l’être humain. 

Cette course de vitesse a démarré suite aux innovations récentes dans le domaine des technologies de l’information et à la mise en place d’un nouveau cadre législatif, tant aux Etats-Unis via l’adoption en 2005 de la Regulation of National Market System (Reg NMS), qu’en Europe via l’adoption en 2007 de la Markets in Financial Instruments Directive (MiFID). Ces deux cadres législatifs visaient à améliorer le service offert aux investisseurs finaux en cassant le monopole détenu par les Bourses traditionnelles, telles que le NYSE, le NASDAQ, Euronext ou le London Stock Exchange. Cette ouverture à la concurrence a permis l’émergence de nouvelles places de marché alternatives, telles que BATS, Direct Edge ou Turquoise. En ont résulté une réduction des coûts de transaction et une plus grande fragmentation des marchés boursiers. Cette plus grande dispersion des ordres et des transactions entre Bourses signifie que les transactions financières n’ont plus lieu sur une seule plateforme électronique nationale, mais sur plusieurs plateformes, éventuellement situées dans différents pays.

Dans cet univers où la concurrence peut conduire à une évolution rapide des parts de marché, la survie des Bourses dépend de leur capacité à attirer la liquidité, principale source de leur rentabilité. C’est la raison pour laquelle elles ont offert un service de colocalisation, consistant à louer à des investisseurs institutionnels des espaces leur permettant d’entreposer des serveurs à proximité immédiate du cœur électronique de la Bourse. Ce service est notamment utilisé par des THFs, grandes banques d’investissement et fonds spéculatifs, pour placer leurs propres serveurs au plus près du serveur central de la Bourse et ainsi pouvoir placer et exécuter leurs ordres avec la latence la plus faible possible.

Cette offre de service a rencontré une forte demande de la part des THFs qui ont souhaité maintenir leur avantage compétitif à tout prix, un écart d’une microseconde pouvant séparer une opération gagnante d’une opération perdante. Les THFs ont investi massivement dans la construction de nouveaux réseaux micro-ondes ou en fibre optique et dans le développement de nouveaux algorithmes, si bien que les limites physiques sont sur le point d’être atteintes. 

Arrivé à ce stade de la course, il est légitime de se poser la question de savoir si la vitesse a encore du sens. A cette question, Investors Exchange (IEX), devenue récemment la treizième Bourse réglementée américaine, a clairement répondu qu’elle n’en avait plus. L’objectif annoncé par IEX est de contrer le comportement prédateur de certains THFs spécialisés dans l’arbitrage de latence. Ces acteurs visent à exploiter les différences de latence entre les différentes plateformes de négociation en calculant le National Best Bid and Offer (NBBO), c’est-à-dire le meilleur prix d’achat ou de vente disponible sur l’une des 13 Bourses réglementées américaines, quelques microsecondes avant que les Bourses elles-mêmes n’aient terminé de le calculer, leur donnant la possibilité de réaliser des opérations profitables mais illégales dans certaines circonstances.

Pour mieux comprendre les tenants et aboutissants de «l’arbitrage de latence», considérons le cas d’un THF disposant d’un accès ultra-rapide à l’ensemble des 13 Bourses américaines et imaginons qu’un fonds de pension désire acheter une quantité importante de titres de la firme ABC dont le NBBO est actuellement «50 bid» (meilleur prix d’achat dans le marché) et «50,02 ask» (meilleur prix de vente dans le marché). En disposant d’un accès ultra-rapide, le THF peut détecter la présence du fonds de pension dans le marché, surtout si ce dernier utilise une procédure d’achat automatisée, comme par exemple l’emploi d’un ordre d’achat ‘ISO’ (ou ‘Intermarket Sweep Order’) dont l’exécution peut aboutir à consommer toute la liquidité disponible au ‘NBBO’ sur les différentes bourses. Anticipant une montée du prix de l’action et grâce à sa rapidité d’action, le THF peut modifier ses prix et ses quantités avant la concurrence et surtout avant que le fonds de pension ne parvienne à acheter tous les titres désirés. Par exemple, le THF peut décaler son prix de vente vers le haut et vendre les titres d’ABC, qu’il avait déjà en sa possession, à 50,04 au lieu de 50,02, réalisant un gain légal de 2 centimes par action. Si par contre le THF décide de passer devant le fonds de pension en achetant les actions d’ABC restant disponibles dans le marché à 50,02 pour les revendre à 50,04, le THF viole la loi car il réalise une opération de «front-running». Ce gain sera illégal car il aura été réalisé au détriment du fonds de pension, en l’empêchant d’acheter lui-même les titres d’ABC à 50,02. Cette opération de «front-running» sera évidemment plus facile à repérer si le THF revend les titres au fond de pension lui-même. Dans les deux cas, le THF réalise un gain de 2 centimes par action.

Pour contrecarrer ces stratégies, IEX propose d’imposer un «ralentisseur» à l’ensemble de ses clients en faisant transiter les ordres reçus le long d’un câble en fibre optique de 61 kilomètres localisé dans son centre de données à Secaucus (New Jersey), près de New York, avant que ceux-ci ne deviennent exécutables sur son système localisé 5 kilomètres plus loin à Weehawken, en face de l’île de Manhattan. Même à une vitesse proche de la vitesse de la lumière (environ 300.000 km/s), cette stratégie rend possible une augmentation du temps de latence d’environ 350 microsecondes, permettant aux ordres d’arriver au même moment sur les différentes Bourses et supprimant de facto la possibilité pour un THF de devancer les autres participants en tirant profit de son avantage technologique. La «Securities and Exchange Commission» (SEC), qui régule les marchés financiers aux Etats-Unis, a mis à jour son cadre législatif (Reg NMS) en confirmant qu’un délai inférieur à une milliseconde était consistant avec la règle 600 (b) (3) qui impose l’immédiateté dans l'exécution des ordres de Bourse.

IEX pourrait même faire des émules, après avoir été pourtant fortement critiqué par l’ensemble des acteurs du secteur, et notamment par ses concurrents directs, à savoir BATS Global Markets, Nasdaq OMX, et le NYSE, mais aussi par le hedge fund et teneur de marché basé à Chicago, Citadel, qui voyait en l’éclosion de IEX le début d’une course vers le bas. D’autres Bourses, parmi lesquelles les anciens détracteurs de IEX, pourraient effectivement suivre le chemin tracé par la société new yorkaise en ajoutant à leur tour des ralentisseurs.

Les dirigeants de Intercontinental Exchange (ICE) ont récemment annoncé qu’ils étudiaient la possibilité d’introduire un ralentisseur sur certaines de leurs plateformes afin de répondre à une demande grandissante de la part des investisseurs. NYSE Arca a par ailleurs obtenu l’accord de la SEC pour imiter l’une des fonctions de IEX. Quant aux dirigeants du Chicago Stock Exchange, ils étudient également la possibilité d’introduire un ralentisseur de 350 microsecondes destiné aux THFs «preneurs de liquidité», qui consomment la liquidité présente sur les Bourses en utilisant des ordres au marché, c’est-à-dire en achetant ou en vendant des titres immédiatement, à des prix que seuls les autres investisseurs leur proposent. Cela pourrait renforcer la position des THFs spécialisés dans la «tenue de marché» qui, contrairement aux THFs «preneurs de liquidité», offrent de la liquidité en utilisant des ordres à cours limité, c’est-à-dire en montrant des prix à l’achat et à la vente que les autres investisseurs peuvent utiliser pour réaliser leurs transactions. De son côté, le NASDAQ pourrait, dans les prochains trimestres, donner aux traders qui acceptent de ne pas annuler leurs ordres pendant une seconde au moins, la priorité sur les ordres placés au même niveau de prix.

L’arrivée sur le marché d’IEX pourrait redistribuer les cartes, que ce soit du côté des Bourses que du côté des THFs. Ainsi, certaines Bourses pourraient profiter de ce nouveau service pour gagner en parts de marché, alors que certains THFs spécialisés dans les stratégies d’arbitrage de latence, dans les stratégies agressives, voire dans les stratégies de manipulation, pourraient à terme disparaître, rendant la Bourse plus attractive aux yeux d’investisseurs dont les battements de cils durent une éternité.

PDF Télécharger le focus en PDF

On en parle dans la presse...

31.134MBMemory Usage292msRequest Duration
Joomla! Version5.2.6
PHP Version8.2.28
Identityguest
Response200
Templateyootheme
Database
Server
mysql
Version
10.6.18-MariaDB-deb11-log
Collation
utf8mb3_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
array:3 [ "cid" => "165" "option" => "com_reco" "view" => "article" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:62 [ "TEMP" => "/home/clients/c76502dcd0092cafe8460c17f647856e/tmp" "TMPDIR" => "/home/cli...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744724464 "last" => 1744724464...
registry
array:3 [ "data" => array:1 [ "com_reco" => array:1 [ "article" => array:2 [ "or...
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (3.82MB) (19.45ms)
  • afterInitialise (11.1MB) (92.44ms)
  • afterRoute (2.01MB) (17.9ms)
  • beforeRenderComponent com_reco (29.4KB) (2.14ms)
  • beforeRenderRawModule mod_custom (RE-Social NEW (mobile)) (6.1MB) (57.6ms)
  • afterRenderRawModule mod_custom (RE-Social NEW (mobile)) (36.64KB) (1.31ms)
  • beforeRenderModule mod_custom (RE-Social NEW (mobile)) (720B) (8μs)
  • afterRenderModule mod_custom (RE-Social NEW (mobile)) (85.05KB) (1.15ms)
  • afterRenderComponent com_reco (22.6KB) (3.46ms)
  • afterDispatch (109.51KB) (3.18ms)
  • beforeRenderRawModule mod_custom (RE-Social NEW) (82.74KB) (3.18ms)
  • afterRenderRawModule mod_custom (RE-Social NEW) (1.05KB) (148μs)
  • beforeRenderRawModule mod_custom (IRES présentation) (1.27KB) (28μs)
  • afterRenderRawModule mod_custom (IRES présentation) (101.92KB) (3.75ms)
  • beforeRenderRawModule mod_menu (Liste des numéros) (2.48KB) (38μs)
  • afterRenderRawModule mod_menu (Liste des numéros) (91.64KB) (2.18ms)
  • beforeRenderRawModule mod_menu (Liste des focus) (720B) (28μs)
  • afterRenderRawModule mod_menu (Liste des focus) (21.84KB) (1.01ms)
  • beforeRenderModule mod_custom (RE-Social NEW) (181.31KB) (9.74ms)
  • afterRenderModule mod_custom (RE-Social NEW) (1.91KB) (125μs)
  • beforeRenderModule mod_custom (IRES présentation) (408B) (22μs)
  • afterRenderModule mod_custom (IRES présentation) (1.76KB) (58μs)
  • beforeRenderModule mod_menu (Liste des numéros) (1.62KB) (20μs)
  • afterRenderModule mod_menu (Liste des numéros) (1.76KB) (49μs)
  • beforeRenderModule mod_menu (Liste des focus) (168B) (16μs)
  • afterRenderModule mod_menu (Liste des focus) (1.76KB) (49μs)
  • beforeRenderRawModule mod_menu () (5.48KB) (970μs)
  • afterRenderRawModule mod_menu () (33.5KB) (1.46ms)
  • beforeRenderModule mod_menu () (696B) (5μs)
  • afterRenderModule mod_menu () (3.22KB) (102μs)
  • beforeRenderRawModule mod_finder () (2.01KB) (16μs)
  • afterRenderRawModule mod_finder () (914.41KB) (9.25ms)
  • beforeRenderModule mod_finder () (704B) (7μs)
  • afterRenderModule mod_finder () (4.69KB) (142μs)
  • beforeRenderRawModule mod_custom () (624B) (581μs)
  • afterRenderRawModule mod_custom () (1.19KB) (327μs)
  • beforeRenderModule mod_custom () (704B) (4μs)
  • afterRenderModule mod_custom () (1.73KB) (80μs)
  • beforeRenderRawModule mod_custom (Oreille) (2.67KB) (329μs)
  • beforeRenderRawModule mod_menu (Menu oreille) (43.59KB) (212μs)
  • afterRenderRawModule mod_menu (Menu oreille) (214.12KB) (2.79ms)
  • beforeRenderModule mod_menu (Menu oreille) (720B) (6μs)
  • afterRenderModule mod_menu (Menu oreille) (3.19KB) (91μs)
  • afterRenderRawModule mod_custom (Oreille) (43.36KB) (243μs)
  • beforeRenderModule mod_custom (Oreille) (704B) (4μs)
  • afterRenderModule mod_custom (Oreille) (1.74KB) (72μs)
  • beforeRenderRawModule mod_custom (Toolbar-R (UCL)) (168B) (19μs)
  • afterRenderRawModule mod_custom (Toolbar-R (UCL)) (976B) (80μs)
  • beforeRenderModule mod_custom (Toolbar-R (UCL)) (720B) (4μs)
  • afterRenderModule mod_custom (Toolbar-R (UCL)) (1.76KB) (69μs)
  • beforeRenderRawModule mod_menu () (256B) (590μs)
  • afterRenderRawModule mod_menu () (3.17KB) (1.04ms)
  • beforeRenderModule mod_menu () (696B) (5μs)
  • afterRenderModule mod_menu () (1.8KB) (81μs)
  • beforeRenderRawModule mod_menu (Menu oreille (mobile)) (3.07KB) (23μs)
  • afterRenderRawModule mod_menu (Menu oreille (mobile)) (2.66KB) (911μs)
  • beforeRenderModule mod_menu (Menu oreille (mobile)) (720B) (4μs)
  • afterRenderModule mod_menu (Menu oreille (mobile)) (2.13KB) (85μs)
  • beforeRenderRawModule mod_finder (Recherche (mobile)) (392B) (18μs)
  • afterRenderRawModule mod_finder (Recherche (mobile)) (10.93KB) (1.46ms)
  • beforeRenderModule mod_finder (Recherche (mobile)) (720B) (5μs)
  • afterRenderModule mod_finder (Recherche (mobile)) (2.13KB) (90μs)
  • beforeRenderModule mod_custom (RE-Social NEW (mobile)) (1.6KB) (21μs)
  • afterRenderModule mod_custom (RE-Social NEW (mobile)) (1.76KB) (59μs)
  • beforeRenderRawModule mod_custom () (1.17KB) (844μs)
  • afterRenderRawModule mod_custom () (3.53KB) (245μs)
  • beforeRenderModule mod_custom () (704B) (4μs)
  • afterRenderModule mod_custom () (2.94KB) (80μs)
  • beforeRenderRawModule mod_custom () (184B) (475μs)
  • afterRenderRawModule mod_custom () (1.03KB) (212μs)
  • beforeRenderModule mod_custom () (704B) (4μs)
  • afterRenderModule mod_custom () (3.41KB) (75μs)
  • afterRender (5.62MB) (48.71ms)
  • 1 x afterInitialise (11.1MB) (31.61%)
    92.44ms
    1 x beforeRenderRawModule mod_custom (RE-Social NEW (mobile)) (6.1MB) (19.69%)
    57.60ms
    1 x afterRender (5.62MB) (16.66%)
    48.71ms
    1 x afterLoad (3.82MB) (6.65%)
    19.45ms
    1 x afterRoute (2.01MB) (6.12%)
    17.90ms
    1 x beforeRenderModule mod_custom (RE-Social NEW) (181.31KB) (3.33%)
    9.74ms
    1 x afterRenderRawModule mod_finder () (914.41KB) (3.16%)
    9.25ms
    1 x afterRenderRawModule mod_custom (IRES présentation) (101.92KB) (1.28%)
    3.75ms
    1 x afterRenderComponent com_reco (22.6KB) (1.18%)
    3.46ms
    1 x afterDispatch (109.51KB) (1.09%)
    3.18ms
    1 x beforeRenderRawModule mod_custom (RE-Social NEW) (82.74KB) (1.09%)
    3.18ms
    1 x afterRenderRawModule mod_menu (Menu oreille) (214.12KB) (0.95%)
    2.79ms
    1 x afterRenderRawModule mod_menu (Liste des numéros) (91.64KB) (0.74%)
    2.18ms
    1 x beforeRenderComponent com_reco (29.4KB) (0.73%)
    2.14ms
    1 x afterRenderRawModule mod_menu () (33.5KB) (0.5%)
    1.46ms
    1 x afterRenderRawModule mod_finder (Recherche (mobile)) (10.93KB) (0.5%)
    1.46ms
    1 x afterRenderRawModule mod_custom (RE-Social NEW (mobile)) (36.64KB) (0.45%)
    1.31ms
    1 x afterRenderModule mod_custom (RE-Social NEW (mobile)) (85.05KB) (0.39%)
    1.15ms
    1 x afterRenderRawModule mod_menu () (3.17KB) (0.36%)
    1.04ms
    1 x afterRenderRawModule mod_menu (Liste des focus) (21.84KB) (0.34%)
    1.01ms
    1 x beforeRenderRawModule mod_menu () (5.48KB) (0.33%)
    970μs
    1 x afterRenderRawModule mod_menu (Menu oreille (mobile)) (2.66KB) (0.31%)
    911μs
    1 x beforeRenderRawModule mod_custom () (1.17KB) (0.29%)
    844μs
    1 x beforeRenderRawModule mod_menu () (256B) (0.2%)
    590μs
    1 x beforeRenderRawModule mod_custom () (624B) (0.2%)
    581μs
    1 x beforeRenderRawModule mod_custom () (184B) (0.16%)
    475μs
    1 x beforeRenderRawModule mod_custom (Oreille) (2.67KB) (0.11%)
    329μs
    1 x afterRenderRawModule mod_custom () (1.19KB) (0.11%)
    327μs
    1 x afterRenderRawModule mod_custom () (3.53KB) (0.08%)
    245μs
    1 x afterRenderRawModule mod_custom (Oreille) (43.36KB) (0.08%)
    243μs
    1 x beforeRenderRawModule mod_menu (Menu oreille) (43.59KB) (0.07%)
    212μs
    1 x afterRenderRawModule mod_custom () (1.03KB) (0.07%)
    212μs
    1 x afterRenderRawModule mod_custom (RE-Social NEW) (1.05KB) (0.05%)
    148μs
    1 x afterRenderModule mod_finder () (4.69KB) (0.05%)
    142μs
    1 x afterRenderModule mod_custom (RE-Social NEW) (1.91KB) (0.04%)
    125μs
    1 x afterRenderModule mod_menu () (3.22KB) (0.03%)
    102μs
    1 x afterRenderModule mod_menu (Menu oreille) (3.19KB) (0.03%)
    91μs
    1 x afterRenderModule mod_finder (Recherche (mobile)) (2.13KB) (0.03%)
    90μs
    1 x afterRenderModule mod_menu (Menu oreille (mobile)) (2.13KB) (0.03%)
    85μs
    1 x afterRenderModule mod_menu () (1.8KB) (0.03%)
    81μs
    1 x afterRenderModule mod_custom () (2.94KB) (0.03%)
    80μs
    1 x afterRenderModule mod_custom () (1.73KB) (0.03%)
    80μs
    1 x afterRenderRawModule mod_custom (Toolbar-R (UCL)) (976B) (0.03%)
    80μs
    1 x afterRenderModule mod_custom () (3.41KB) (0.03%)
    75μs
    1 x afterRenderModule mod_custom (Oreille) (1.74KB) (0.02%)
    72μs
    1 x afterRenderModule mod_custom (Toolbar-R (UCL)) (1.76KB) (0.02%)
    69μs
    1 x afterRenderModule mod_custom (RE-Social NEW (mobile)) (1.76KB) (0.02%)
    59μs
    1 x afterRenderModule mod_custom (IRES présentation) (1.76KB) (0.02%)
    58μs
    1 x afterRenderModule mod_menu (Liste des focus) (1.76KB) (0.02%)
    49μs
    1 x afterRenderModule mod_menu (Liste des numéros) (1.76KB) (0.02%)
    49μs
    1 x beforeRenderRawModule mod_menu (Liste des numéros) (2.48KB) (0.01%)
    38μs
    1 x beforeRenderRawModule mod_custom (IRES présentation) (1.27KB) (0.01%)
    28μs
    1 x beforeRenderRawModule mod_menu (Liste des focus) (720B) (0.01%)
    28μs
    1 x beforeRenderRawModule mod_menu (Menu oreille (mobile)) (3.07KB) (0.01%)
    23μs
    1 x beforeRenderModule mod_custom (IRES présentation) (408B) (0.01%)
    22μs
    1 x beforeRenderModule mod_custom (RE-Social NEW (mobile)) (1.6KB) (0.01%)
    21μs
    1 x beforeRenderModule mod_menu (Liste des numéros) (1.62KB) (0.01%)
    20μs
    1 x beforeRenderRawModule mod_custom (Toolbar-R (UCL)) (168B) (0.01%)
    19μs
    1 x beforeRenderRawModule mod_finder (Recherche (mobile)) (392B) (0.01%)
    18μs
    1 x beforeRenderModule mod_menu (Liste des focus) (168B) (0.01%)
    16μs
    1 x beforeRenderRawModule mod_finder () (2.01KB) (0.01%)
    16μs
    3 x beforeRenderModule mod_custom () (704B) (0%)
    12μs
    2 x beforeRenderModule mod_menu () (696B) (0%)
    10μs
    1 x beforeRenderModule mod_custom (RE-Social NEW (mobile)) (720B) (0%)
    8μs
    1 x beforeRenderModule mod_finder () (704B) (0%)
    7μs
    1 x beforeRenderModule mod_menu (Menu oreille) (720B) (0%)
    6μs
    1 x beforeRenderModule mod_finder (Recherche (mobile)) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_custom (Oreille) (704B) (0%)
    4μs
    1 x beforeRenderModule mod_custom (Toolbar-R (UCL)) (720B) (0%)
    4μs
    1 x beforeRenderModule mod_menu (Menu oreille (mobile)) (720B) (0%)
    4μs
50 statements were executed, 9 of which were duplicates, 41 unique24.87ms130.22KB
  • SELECT @@SESSION.sql_mode;619μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:259Copy
  • SELECT `data` FROM `rej_session` WHERE `session_id` = ?232μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `rej_session` WHERE `session_id` = :session_id LIMIT 1254μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `rej_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)384μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `rej_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 11.01ms17.73KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `rej_viewlevels`257μs624B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `rej_usergroups` AS `a` LEFT JOIN `rej_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest230μs1.31KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `rej_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1) ORDER BY `ordering`1.17ms3.96KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `value` FROM `rej_admintools_storage` WHERE `key` = 'cparams'794μs1.15KB/administrator/components/com_admintools/src/Helper/Storage.php:120Copy
  • SELECT `option`,`view`,`query` FROM `rej_admintools_wafexceptions`297μs640B/plugins/system/admintools/src/Utility/Cache.php:196Copy
  • SELECT `params` FROM `rej_extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'admintools'479μs536B/plugins/system/admintools/src/Utility/RescueUrl.php:324Copy
  • SELECT `params` FROM `rej_extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'admintools'370μs536B/plugins/system/admintools/src/Utility/RescueUrl.php:324Copy
  • SELECT * FROM `rej_admintools_ipautoban`275μs640B/plugins/system/admintools/src/Utility/Cache.php:126Copy
  • SELECT `ip` FROM `rej_admintools_ipblock`220μs520B/plugins/system/admintools/src/Utility/Cache.php:136Copy
  • SELECT * FROM `rej_admintools_storage` WHERE `key` LIKE 'timestamp_%'775μs592B/plugins/system/admintools/src/Feature/Base.php:253Copy
  • SELECT `source`,`dest`,`keepurlparams` FROM `rej_admintools_redirects` WHERE `published` = 1 ORDER BY `ordering` ASC482μs640B/plugins/system/admintools/src/Utility/Cache.php:162Copy
  • SELECT `value` FROM rej_acym_configuration WHERE `name` = 'level'224μs1.77KB/plugins/system/acymtriggers/acymtriggers.php:645Copy
  • SELECT `value` FROM rej_acym_configuration WHERE `name` = 'active_cron'211μs536B/plugins/system/acymtriggers/acymtriggers.php:645Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `rej_menu` AS `m` LEFT JOIN `rej_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`1.33ms19.8KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `rej_template_styles` AS `s` LEFT JOIN `rej_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 11.07ms16.83KB/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT `option`,`view`,`task`,`query`,`query_type`,`query_content`,`verb`,`application` FROM `rej_admintools_wafblacklists` WHERE `enabled` = 1684μs976B/plugins/system/admintools/src/Utility/Cache.php:182Copy
  • SELECT * FROM `rej_languages` WHERE `published` = 1 ORDER BY `ordering` ASC430μs1.59KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT id FROM rej_reco_articles WHERE id=165 AND state=1183μs536B/components/com_reco/src/Model/ArticleModel.php:45Copy
  • SELECT a.*, GROUP_CONCAT(CONCAT("<a href=\"index.php/auteurs?cid=",c.id,"\">",c.surname," ",c.name,"</a>") ORDER BY c.name ASC SEPARATOR ", ") AS authors FROM rej_reco_articles AS a LEFT JOIN rej_reco_artxaut AS b ON a.id = b.art_id LEFT JOIN rej_reco_auteurs AS c ON b.aut_id = c.id WHERE a.id = 165 AND a.state = 1 GROUP BY a.id1.1ms18.5KB/components/com_reco/src/Model/ArticleModel.php:33Copy
  • SELECT id FROM rej_reco_articles WHERE id=165 AND state=1353μs536B/components/com_reco/src/Model/ArticleModel.php:45Copy
  • SELECT b.id,b.surname,b.name,b.biocourte FROM rej_reco_artxaut AS a LEFT JOIN rej_reco_auteurs AS b ON b.id = a.aut_id WHERE a.art_id = 165 AND b.state = 1 ORDER BY b.name ASC363μs736B/components/com_reco/src/Model/ArticleModel.php:77Copy
  • SELECT id FROM rej_reco_articles WHERE id=165 AND state=1163μs536B/components/com_reco/src/Model/ArticleModel.php:45Copy
  • SELECT b.id,b.name FROM rej_reco_artxth AS a LEFT JOIN rej_reco_themes AS b ON b.id = a.th_id WHERE a.art_id = 165 AND b.state = 1 ORDER BY b.name ASC318μs592B/components/com_reco/src/Model/ArticleModel.php:100Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `rej_modules` AS `m` LEFT JOIN `rej_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `rej_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`990μs2.03KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM rej_fields AS a LEFT JOIN `rej_languages` AS l ON l.lang_code = a.language LEFT JOIN rej_users AS uc ON uc.id=a.checked_out LEFT JOIN rej_viewlevels AS ag ON ag.id = a.access LEFT JOIN rej_users AS ua ON ua.id = a.created_user_id LEFT JOIN rej_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray2)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC848μs4.03KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `name`,`element` FROM `rej_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1354μs608B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `rej_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1)198μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT custom_data FROM rej_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 1191μs3.02KB/templates/yootheme/packages/platform-joomla/src/Storage.php:30Copy
  • SELECT `title` FROM `rej_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1)196μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM rej_acym_configuration779μs4.56KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_list WHERE type = 'standard'240μs2.53KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_field326μs1.69KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_form WHERE active = 1 AND type != 'shortcode'191μs912B/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_jmap_metainfo WHERE `linkurl` = 'https://regards-economiques.be/index.php?cid=165&option=com_reco&view=article' AND `published` = 1374μs912B/plugins/system/jmap/jmap.php:838Copy
  • SELECT * FROM rej_jmap_canonicals WHERE `linkurl` = 'https://regards-economiques.be/index.php?cid=165&option=com_reco&view=article'235μs640B/plugins/system/jmap/jmap.php:968Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `rej_scheduler_tasks` AS `a` WHERE `a`.`state` = 1205μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `value` FROM rej_acym_configuration WHERE `name` LIKE "%regacy" OR `name` LIKE "%\_sub"351μs536B/plugins/system/acymtriggers/acymtriggers.php:436Copy
  • SHOW FULL TABLES WHERE table_type="BASE TABLE"2.84ms3.56KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • SELECT * FROM rej_acym_plugin429μs1.52KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_plugin231μs1.52KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT `groups`.*, `groups`.title AS text, `groups`.id AS `value` FROM rej_usergroups AS `groups`226μs1008B/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_jmap_headings WHERE `linkurl` = 'https://regards-economiques.be/index.php?cid=165&option=com_reco&view=article'290μs752B/plugins/system/jmap/jmap.php:1192Copy
  • SELECT `original_text`, `target_text`, `original_text_regex`, `target_text_regex` FROM `rej_jmap_text_replacements` WHERE `published` = 1207μs688B/plugins/system/jmap/jmap.php:508Copy
  • SELECT `session_id` FROM `rej_session` WHERE `session_id` = ?253μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `rej_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?627μs592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy