Compare commits

...

2 Commits

Author SHA1 Message Date
eaa77ef187 Map Wikipedia's PSKY to IBKR's SKYD
Paramount Skydance moved its listing to NYSE as SKYD; Wikipedia still
lists the old NASDAQ ticker PSKY, which IBKR cannot qualify.
2026-10-05 23:38:10 -07:00
76d5e44186 Route IB Gateway through mihomo TUN instead of an explicit proxy
The dedicated proxy listener it pointed at is gone from the mihomo
config; TUN now routes IBKR traffic by rules.
2026-10-05 23:35:00 -07:00
2 changed files with 7 additions and 6 deletions

View File

@@ -4,12 +4,8 @@ After=network-online.target
[Service]
Type=simple
# Reach IBKR through pc's "ipads" proxy (mihomo, SOCKS5/HTTP on 7892), as
# `proxy ipads` does in a shell. IBC drops -D lines from ibgateway.vmoptions and
# clears JAVA_TOOL_OPTIONS, so the java launcher gets them via JDK_JAVA_OPTIONS.
Environment="JDK_JAVA_OPTIONS=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=7892"
Environment=http_proxy=http://127.0.0.1:7892 https_proxy=http://127.0.0.1:7892 all_proxy=http://127.0.0.1:7892
Environment=HTTP_PROXY=http://127.0.0.1:7892 HTTPS_PROXY=http://127.0.0.1:7892 ALL_PROXY=http://127.0.0.1:7892
# No proxy env on purpose: mihomo TUN (auto-route) transparently routes all
# traffic by rules; IBKR domains go DEFAULT -> RES residential exit.
ExecStart=/usr/bin/xvfb-run -a -s "-screen 0 1024x768x24" %h/ibc/gatewaystart.sh -inline
Restart=always
RestartSec=60

View File

@@ -7,7 +7,12 @@ import pandas as pd
SP500_URL = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
# Tickers Wikipedia lists differently from what IBKR carries.
IBKR_SYMBOL_OVERRIDES = {"PSKY": "SKYD"} # Paramount Skydance trades as SKYD/NYSE on IBKR
def to_ib_symbol(ticker: str) -> str:
ticker = IBKR_SYMBOL_OVERRIDES.get(ticker, ticker)
# IBKR writes share classes with a space: BRK.B -> "BRK B".
return ticker.replace(".", " ")