La marge chez IBKR

Je viens de tomber par hasard sur ce vieux post. Je n’avais aucune idée que l 'on pouvait aller jusque x8, c’est super intéressant.

En revanche, y arriver semble être un chemin de croix. Basé sur mes tests en utilisant la fenêtre « aperçu » pour tester les évolutions de marge de tel ou tel ordre :

  • On dirait que les fonds mutuels restent strictement à la marge fixée par IBKR (c.25%) : la diversification du portefeuille ne semble pas faire bouger ce chiffre ;
  • Des positions aux volatilités pourtant très différentes (ex : CATB vs. EN4C) semblent atteindre à peu près aussi vite leurs limites en montant détenu avant que la marge n’augmente vraiment ; cela rend plus difficile l’application d’un portefeuille risk parity, si les positions les moins volatiles ne peuvent pas être surchargées vs. les plus volatiles ;

Il semble néanmoins assez facile de « duper » leur algo : IBKR va par exemple appliquer une augmentation de marge élevée sur un nouvel ordre d achat sur une position que j’aurais déjà, mais 0 marge additionnelle sur un ordre pour une nouvelle position pourtant très corrélée (ex : CRRY vs. COMN)

1 « J'aime »

Leur calcul de marge est assez peu clair je trouve, je n’ai jamais le même chiffre entre la ligne maintenance margin et celle que je calcule ligne par ligne, j’utilise whatIfOrder SELL pour sonder la marge de chaque asset chaque minute (Je n’ai pas trouvé mieux…), j’ai parfois 20/22% sur APEX, aujourd’hui c’est remonté à 25%.

Cependant mon « cash » sous ERNX lui est stable à 11% de marge.

Les mutual funds sont eux à 100% de marge pendant les premiers 30/35j.

1 « J'aime »

Oui c’est particulièrement mal fichu… Et pousse à avoir une myriade de lignes différentes pour une même stratégie, sans que cela soit toujours très utile :sweat_smile:

Comment as tu mis en place cette fonctionnalité « WhatifOrder SELL » ? Ca m a l air sacrément utile, malheureusement je ne l’’ai pas trouvé depuis TWS

Tu peux le voir via sell preview dans l 'interface.

Pour le faire « programatiquement » c’est disponible via API docs — ib_insync 0.9.86 documentation avec le client Python de IB Gateway et TWS ou alors avec Client Portal API: https://interactivebrokers.github.io/cpwebapi/endpoints POST /iserver/account/{accountId}/orders/whatif.

J’ai testé les deux, le problème de CPAPI c’est que je n’arrive pas à le faire fonctionner avec les double facteurs, ça fonctionne que pour le paper trading, mais ça serait ma solution idéale car le relogin journalier serait facile (plus facile de se relogin via un browser headless que via TWS/IB Gateway).

1 « J'aime »

Exemple de mon paper trading session, souvent incohérent (e.g: maintenance margin 0% DBMFE):

Positions:
CLASS  CONTRACT                                  QTY       PRICE    MKT VALUE   CCY  EST EUR     U-PNL      MAINT MARGIN
FUND   LU0329449143 FUND                         1056.63   95.12    100507.12   USD  85980.69    +501.31    85982.00 (100.0%)
OPT    SPX    DEC2026 6000 C [SPX   261218C060…  -1.00     1359.40  -135940.00  USD  -116292.40  -721.71    skip (OPT)
OPT    SPX    DEC2026 6000 P [SPX   261218P060…  1.00      126.40   12640.00    USD  10813.12    +198.29    skip (OPT)
OPT    SPX    DEC2026 7000 C [SPX   261218C070…  1.00      568.60   56860.00    USD  48641.94    +358.29    skip (OPT)
OPT    SPX    DEC2026 7000 P [SPX   261218P070…  -1.00     309.40   -30940.00   USD  -26468.20   +98.29     skip (OPT)
STK    BHMG                                      21000.00  4.29     89998.01    GBP  103905.26   +1884.08   16377.00 (15.8%)
STK    COMN                                      6090.00   8.18     49816.17    EUR  49816.17    -238.20    166.00 (0.3%)
STK    CRRY                                      2900.00   16.98    49253.06    EUR  49253.06    -1780.54   0.00
STK    DBMFE                                     1000.00   118.08   118080.00   EUR  118080.00   +1976.88   0.00
STK    NTSG                                      25612.00  26.88    688338.33   EUR  688338.33   +29066.43  275559.00 (40.0%)

Allocation (base = EUR):
CLASS  ASSET              BASE VALUE  % NAV   % GROSS
FUND   LU0329449143 FUND  85980.69    8.21%   7.59%
STK    NTSG               688338.33   65.71%  60.75%
STK    DBMFE              118080.00   11.27%  10.42%
STK    BHMG               103905.26   9.92%   9.17%
STK    COMN               49816.17    4.76%   4.40%
STK    CRRY               49253.06    4.70%   4.35%
CASH                      35299.00    3.37%   3.12%
BOX    SPX                -85546.86   -8.17%  -7.55%

Allocation (ex-cash, risk assets only) (base = EUR):
CLASS  ASSET              BASE VALUE  % NAV   % GROSS
FUND   LU0329449143 FUND  85980.69    8.49%   7.83%
STK    NTSG               688338.33   68.01%  62.71%
STK    DBMFE              118080.00   11.67%  10.76%
STK    BHMG               103905.26   10.27%  9.47%
STK    COMN               49816.17    4.92%   4.54%
STK    CRRY               49253.06    4.87%   4.49%

Leverage: 85546.86 (box repay) + 0.00 (margin debt) = 85546.86 EUR
Gross base: 1133027.86 EUR (= NAV + leverage)

Margin summary (EUR):
Net liquidation          1047481.00
Equity with loan         1047446.00
Initial margin            477413.00
Maintenance margin        441829.00
Available funds           570032.00
Excess liquidity          605652.00
Buying power             3800216.00
Total cash value           35299.00
EUR                      29551.19
GBP                          1.06
USD                       6717.32
Cushion                       57.8%

Per-asset maintenance (EUR, 6 ok / 0 err / 4 skip / 0 with warn *):
Self (Σ probed)           378084.00
Broker                    441829.00
Diff (broker-self)   +63745.00 (+14.4%)

Short box spreads (synthetic zero-coupon loans):
UNDERLYING  EXPIRY      OPEN        STRIKES      QTY  BORROW    REPAY      COST     DAYS  RATE
SPX         2026-12-18  2026-04-20  6000 / 7000  1    97313.16  100000.00  2686.84  242   4.11%