Citation: 4A_412/2021 E. A

A.a. B.________ SA (ci-après la banque, ou B.________) est une banque sise à... (VD) principalement active dans le trading électronique. Elle offre à ses clients un accès aux principaux marchés boursiers du monde via différentes plateformes informatiques (dont P1.________ et P2.________). La clientèle peut ainsi accomplir en ligne des transactions boursières et opérations de négoce sur devises (Forex) qui découlent de ses propres décisions, ou de celles prises par des mandataires autorisés. La banque elle-même ne fournit aucun service de gestion de fortune, ni conseils en investissement. Le Forex (FX) est le marché mondial décentralisé où s'échangent les devises à des taux variant en permanence. Le prix de la transaction peut différer selon la plateforme de change utilisée. Les courtiers se rémunèrent en général sur le "spread", c'est-à-dire sur la différence entre les prix d'achat et de vente. Une des caractéristiques essentielles de ce marché est l'effet de levier proposé par les courtiers: cet instrument permet à l'investisseur d'effectuer des opérations sur des montants largement supérieurs aux avoirs déposés sur un compte; la prise de risque est tout aussi élevée. B.________ est dotée d'un système automatique qui liquide les positions ouvertes des clients lorsque l'évolution du taux de change concernant une certaine paire de devises (par exemple la paire euros/francs suisses [EUR/CHF]) prend une tournure trop défavorable. Par ailleurs, les clients peuvent émettre des ordres "stop-loss"enjoignant de vendre la position concernée sitôt atteint le seuil spécifié dans l'ordre. A.b. Le 30 octobre 2014, A.________ (ci-après le client) a ouvert un compte chez B.________. Lors de la signature des documents contractuels, il était accompagné par son gestionnaire de fortune G.________, à qui il a donné une procuration lui permettant de le représenter dans ses rapports et opérations avec la banque; le mandataire était habilité à demander des paramétrages de levier spécifiques pour les connexions au compte du déposant. Le contrat d'ouverture de compte conclu par le client précisait que par sa signature, il attestait avoir lu, compris et accepté les "Conditions Générales d'Affaires et Règlements de dépôt" établis par la banque. Rédigées en français et anglais, ces Règles précisaient notamment ce qui suit: (...) 2.1.2 Prise de conscience des risques Le client connaît et accepte les risques résultant des opérations de change et de toutes ses opérations connexes. Le risque de perte dans le tradingen devises étrangères peut être substantiel. (...) d) Le haut degré de l'effet de levier souvent obtenu par le trading sur devises et sur métaux précieux peut jouer en faveur ou au détriment du Client en raison de la fluctuation des conditions du marché. Effectuer des transactions boursières dans de telles conditions peut conduire à des pertes importantes ainsi qu['à] des bénéfices dès que le marché fluctue un peu. Si le marché évolue contre le Client, celui-ci peut subir à la fois la perte totale de son dépôt de marge initiale et de tous les fonds supplémentaires déposés auprès de la Banque, afin de maintenir sa position, mais il pourrait également contracter davantage d'obligations envers la Banque. Le Client peut être appelé à 'reconstituer' sa marge en versant des montants substantiels dans un délai très court pour maintenir sa position, faute de quoi la Banque peut être dans l'obligation de liquider sa position à perte et le Client serait responsable de toutes les pertes qui en résulteraient. Dans certaines conditions de marché, le Client peut trouver difficile voire impossible de liquider la position ou de fixer un juste prix ou d'évaluer les risques d'exposition. Cela peut arriver, par exemple, en cas d'illiquidité du marché ou lorsqu'il y a une défaillance des systèmes électroniques ou de télécommunications, ou en cas de survenance d'un événement qualifié de 'force majeure'. Placer [...] [d]es 'ordres à seuil de déclenchement' ne limitera pas nécessairement les pertes aux montants prévus, car il peut être impossible d'exécuter ces ordres dans certaines conditions de marché. [...] [L]e Client doit être conscient que dans certaines conditions de marché, [il] peut [v]oir son ordre exécuté à un prix différent de celui qui a été initialement demandé. [...] 2.1.5 [...] Le Client doit verser à la Banque: [...] c) des sommes d'argent, pouvant être exigée[s] pour ou vu la liquidation de tout solde débiteur de tout compte. " Une clause 2.1.19 avertissait encore le client que s'il désignait un mandataire pour gérer ses actifs déposés auprès de la banque, il assumait la pleine responsabilité des actes accomplis par celui-ci. La banque n'avait "aucune obligation d'examiner les instructions du mandataire quant à leur justesse, leur caractère approprié, leur fréquence ou leur étendue". Le client déliait la banque "de toute obligation de fournir de quelconques conseils, informations ou avertissements portant sur les actes ou les omissions du mandataire". Ce même 30 octobre 2014, le gestionnaire de fortune a signé au nom et pour le compte de A.________ un document requérant la mise en place d'un taux de levier ( "Leverage Setup Request"). Invité à choisir le levier désiré ( "Please fill desired leverage for FX major pairs, for example 1:1, 1:10, 1:50, 1:100 etc..."), il a opté pour un taux de 1:100, que la banque proposait par défaut. Celui-ci faisait encourir des risques importants dans la mesure où tout gain, mais aussi toute perte, était centuplé (e). Le formulaire contenait une mise en garde en anglais ( " RISK WARNING ") suivie d'une précision sur les taux par défaut ( "Default Rates"), ayant en substance la teneur suivante: L'utilisation d'un levier amplifie les effets des mouvements du marché sur votre capital. Un levier élevé permet certes d'augmenter vos profits potentiels, mais accroît aussi de façon significative votre risque de pertes. Plus vous utilisez un levier élevé, plus vous risquez de perdre l'entier de votre investissement en un laps de temps très bref. Vous pouvez même perdre plus que le capital investi. - B.________ fixe des taux de levier par défaut dans son système de négoce ( trading system). Cela ne signifie pas qu'elle vous conseille de les utiliser. Vous devez décider vous-même du levier le plus adapté au risque que vous tolérez. - En apposant votre signature, vous attestez avoir lu et compris cet avertissement. Le 5 novembre 2014, la banque a confirmé au client l'ouverture de son compte et lui a fourni les données d'accès ( "Login Details") à la plateforme informatique P2.________. Elle rappelait que les investissements et négoces dans les produits à effet de levier tels que le Forex comportaient un haut degré de risques; il devait investir uniquement l'argent qu'il pouvait se permettre de perdre. A.c. Dès le 18 novembre 2014, le client, via son gestionnaire, a effectué des opérations sur devises. Le 14 janvier 2015, il détenait des positions EUR/CHF pour un total de quelque CHF 61'000.00. Son gestionnaire avait émis un ordre "stop-loss" à hauteur de CHF 1.196 pour EUR 1.-. A.d. La Banque Nationale Suisse (BNS) avait institué un taux plancher de CHF 1.20 pour EUR 1.- en septembre 2011. Elle l'a maintenu jusqu'au 15 janvier 2015. Ce jour-là, entre 10 h et 10 h 30, le taux de change oscillait très légèrement au-dessus de CHF 1.20 pour EUR 1.-. A 10 h 30, la BNS a annoncé l'abandon du taux plancher. Un vent de panique a soufflé sur les marchés. Le marché interbancaire a connu un manque de liquidités. Il n'y avait plus de cotations traitables. A 10 h 41 03', B.________ a décidé de suspendre tout négoce sur la paire de devises EUR/CHF, faute de trouver des fournisseurs de liquidités. Elle l'a repris à 11 h 35 32'. Durant ce laps de temps, les ordres " stop-loss " de ses clients n'ont pas pu être exécutés. Les positions de A.________ ont été liquidées à 11 h 38 4', à des cours compris entre CHF 1.02921 et CHF 1.03561 pour EUR 1.-. Vu l'effet de levier de 1:100 qui les assortissait, ce client a subi une perte totale de CHF 405'420.04. Son compte a atteint un solde négatif de - CHF 344'413.75. La banque lui a vainement demandé de remédier à la situation en versant sur son compte un montant au moins égal au découvert, la première fois le 6 février 2015. A.e. B.________ s'est expliquée sur les événements du 15 janvier 2015 auprès de l'Autorité fédérale de surveillance des marchés financiers (FINMA). Dans une missive du 19 mars 2015, elle a soutenu que seuls les clients ayant accepté le contrat spécial " e-Forex " pouvaient utiliser sa plateforme de trading P1.________, tandis qu'un contrat similaire existait pour les autres plateformes de négoce à disposition des clients, dont la plateforme P2.________. A.f. A la demande de B.________, F.________ SA a analysé comment son système avait fonctionné le 15 janvier 2015. Son rapport du 24 septembre 2015 consigne les conclusions suivantes: - Le 15 janvier 2015, B.________ a décidé d'arrêter le négoce sur les paires de devises incluant le franc suisse après avoir observé une quasi totale disparition des liquidités sur le marché consécutive à l'annonce de la BNS. Les cotations produites par les fournisseurs de liquidités confirmaient que le taux de rejet des offres de transactions avait augmenté de façon exponentielle, pour se normaliser à 11 h 35 seulement. - Rien n'indiquait que des ordres auraient été exécutés de façon inadéquate au cours de la période examinée, marquée par une volatilité exceptionnelle du marché. - Il n'y avait aucune trace d'un traitement inéquitable des clients. La seule intervention manuelle avait consisté à arrêter, puis à reprendre le négoce sur les paires de devises impliquant le franc suisse. A.g. Le 28 septembre 2016, le client a sommé la banque de lui restituer le solde de son compte dans son état au 14 janvier 2015 (soit CHF 61'006.29), augmenté d'un intérêt de 10 %. Le 19 décembre 2016, son conseil a fait part à la FINMA de soupçons planant sur la banque: le 15 janvier 2015 à 10 h 15, soit 15 minutes avant l'annonce de la BNS, B.________ aurait établi un taux de change interne inférieur à CHF 1.1960 pour EUR 1.-, alors que les fournisseurs de liquidités négociaient aux alentours de CHF 1.20. Elle aurait ainsi déclenché les ordres " stop-loss " fixés à CHF 1.1960 mais en aurait retenu illicitement l'exécution, dans l'espoir de vendre plus tard "à gain [...] en cas d'une hausse du cours ([...] forme de ' stop-loss order fishing') ".