Savdo-sotiqda Heterogen Davolash Ta'sirlari uchun Kausal O'rmonlar
Ushbu blogdagi har bir bashoratli model bir xil obyektni baholaydi: shartli o'rtacha . Xususiyat muhandisligi, gradient boosting, konform intervalar, walk-forward validatsiyasi — barchasi bitta estimand uchun xizmat qiladi. Ushbu maqola boshqa estimand haqida va uni almashtirganda o'zgaradigan mexanizmlar haqida.
Obyekt shartli o'rtacha davolash ta'siri:
bir xil birlik uchun ikki potensial natija o'rtasidagi farq — ulardan birini hech qachon kuzatmaysiz. Ustun regressiya qila olmaysiz, chunki u ma'lumotlaringizda yo'q. Kausal o'rmonlar (Athey va Imbens 2016; Wager va Athey 2018) uni parametrik bo'lmagan tarzda baholaydi va ajoyib tarzda, uning atrofida yaroqli ishonch oraliq beradi.
Buni imkoniyatli qiladigan uch narsa bor va ularning hech biri standart tasodifiy o'rmonda mavjud emas: bashorat xatosini kamaytirish o'rniga davolash ta'siri varyansini maksimal qiladigan bo'linish mezoni, bir bo'linishni tanlash va ichidagi effektni baholash uchun bir xil kuzatuvlardan foydalanishni taqiqlovchi vijdlilik cheklovi, va o'rmonni yaprak birga kelishini baholash og'irliklariga aylantiruvchi moslashuvchan yadro sifatida qayta o'qish. Bu uch narsa, shuningdek topgan heterogennilik signal ekanligini aytadigan kalibrlash testi, ushbu maqolaning mazmuni.
O'rtacha Ta'sirlardan Heterogen Ta'sirlarga

O'rtacha Davolash Ta'siri
Sozlash: ikilik davolash (hodisa sodir bo'ldi yoki yo'q), natija (daromad), kovariatlar . O'rtacha Davolash Ta'siri quyidagicha:
barcha birliklar uchun o'rtacha ta'sir. Savdo uchun bu deyarli foydasiz — siz o'rtachani savdo qilmasiz. Agar hodisa yarmini yuqori, yarmini past sur'lsa, ATE nolga teng va imkoniyat maksimum.
Shartli O'rtacha Davolash Ta'siri
CATE xususiyatlar shartli. Ma'lum bozor qiymati, realizatsiya qilingan o'zgaruvchanlik, funding tarixi va kitob chuqurligi bo'lgan tanga berilganda, ushbu hodisaning ushbu aktiv ustida kutilayotgan daromad ta'siri nimadir? CATE kovariat fazosi funksiyasidir va uning shaklini majburlamasdan baholash — kausal o'rmonlar qiladigan narsa shu.
Nima uchun Faqat Liney Interaksiya Modellarini Ishlamaymiz?
Darslik alternativi to'yingan regressiya:
bu yerda interaksiyani o'tkazadi. Bu interaksiyaning liney ekanligini faraz qiladi. Bu nadir holatlar: funding flipga sezgirlik leverage qavariq, emas liney; chuqurlik bozor qiymati bilan ko'paytiruvchi o'zaro ta'sir qiladi; o'zgaruvchanlik rejimi boshqa hamma narsani eshiklaydi. Kausal o'rmonlar bularning hech birini majbur qilmaydi — ular kovariat fazosini moslashuvchan tarzda bo'linadi va heterogennlik tuzilishining ma'lumotlardan tushishiga ruxsat beradi.
Kausal O'rmonlar: Algoritm

Kausal o'rmon, davolash-effekti estimand atrofida qayta qurilgan tasodifiy o'rmon. Har bir daraxt — kovariat fazosini davolash-effekti heterogenniligini maksimal qilish uchun bo'ladigan kausal daraxt.
Kausal Daraxtlar
Har bir ichki tugunda, algoritm bo'linish o'zgaruvchisi va bo'linish nuqtasi ni tanlaydi. Regressiya daraxti bilan asosiy farq: mezon, bashorat xatosining kvadratini kamaytirish o'rniga, bolalar o'rtasida baholangan davolash effektining varyansini maksimal qiladi.
ma'lumoti bo'lgan tugun uchun, tugun darajasidagi effekt bahosi guruh o'rtachalari farqidir:
va bo'linish balli quyidagicha:
bu yerda chap bola, o'ng bola va ota-onadagi namuna o'lchamlari. Bu aynan davolash effektlarining guruhlararo varyansidir: bo'linish yaxshi, ikki bola effekt haqida kelisha olmaganda, natijani yaxshi bashorat qilganda emas. ni kuchli bashorat qiluvchi lekin qanday harakat qilishiga perpendikulyar bo'lgan kovarat hech qachon tanlanmaydi.
Vijdli Baholash
Kritik yangilik vijdlilikdir. Daraxt strukturasini belgilash uchun ishlatilgan ma'lumotlar, yaprak effektlarini baholash uchun ishlatilgan ma'lumotlardan alohida bo'lishi kerak:
- Ma'lumotlarni bo'ling va ga
- Daraxtni quring, faqat dan bo'linish o'zgaruvchilari va nuqtalarini tanlash uchun foydalanib
- Yaprak effektlarini baholang, faqat dan foydalanib, ushbu kuzatuvlarni allaqachon belgilangan daraxtga tushirib
Bundsiz, daraxt aldamchi: u uchkun foydalanilgan bir xil namunadagi shovqin bo'lgan ekstrem effektlar bilan yapraklarni o'yadi, keyin shovqinni baholash sifatida xabar beradi. Bu, backtest overfitting ehtimoli tomonidan strategiya darajasida o'lchanadigan bir xil moslashuvchan-tanlash muvaffaqiyatsizligi, bunda hodisadan keyin tashxis o'rniga baholovchi ichiga qarshi himoya qilinadi. Vijdlik asimptotik biasizlikni sotib oladi:
Narx — namuna samaradorligi; ma'lumotingiz yarmi keyin to'ldirish uchun ishlatilishi mumkin bo'lmagan tuzilmani quradi.
Daraxtlardan O'rmongacha
Kausal o'rmon ta kausal daraxtni jamlaydi, har biri o'lchamdagi tasodifiy past namunada va har bir bo'linishda tasodifiy kovariat past to'plami bilan:
Buni yozishning foydaliroq usuli — og'irlikli o'rtacha natija sifatida:
kuzatuvining bilan bir xil yaprakka qancha tez-tez tushishiga bilan belgilanadigan moslashuvchan og'irliklar bilan:
bu yerda — daraxtida ni o'z ichiga olgan yaprak. Bu generalize random forest qarash (Athey, Tibshirani va Wager 2019): kausal o'rmon mahalliy moslashuvchan yadro baholovchisi. U o'zining "o'xshashlik" tushunchasini o'rganadi, effekt heterogenniligida muhim bo'lgan kovariatlar bilan belgilanadi, Evklid masofasi bilan emas, scalingni tanlashingiz kerak bo'lgan fazoda.
Asimptotik Nazariya
Muntazamlik sharoitida (Wager va Athey 2018) baholovchi izchil, , va asimptotik normal:
nuqta intervalarini beradi. Varyans infinitesimal jackknife'dan (yoki bootstrap-of-little-bags) keladi, o'rmon allaqachon qurgan bir xil past namuna tuzilishidan hisoblanadi — tashqi bootstrap tsikli yo'q.
Ushbu kafolat nima va nima emasligi haqida aniq bo'lish muhim. Bu asimptotik va nuqta nuqta, va CATE uchun o'tadi. Ushbu blogning boshqa joylarida ishlatilgan konform bashorat intervalar chekli namuna va tarqatsizdir, lekin marginal va natijani qoplaydi. Boshqa estimand, boshqa kafolat; ular o'rinbosar emas.
Double Machine Learning Bog'lanishi
Davolash tasodifiy ravishda tayinlanmaganida, kausal o'rmon residualize ma'lumotlarga fit qilinadi: natija modeli va propensity modeli cross-fit orqali baholanadi, va o'rmon ga qarshi da ishlaydi. Neyman ortogonalikligi buni xavfsiz qiladi: nuisance-baholash xatosi faqat mahsulat sifatida kiradi, shuning uchun va har biri bilan converge qilishi mumkin va hali bilan converge qiladi.
Ushbu freymvork — residualizatsiya, cross-fitting, ortogonallik argumenti, namuna o'lchami ta'sirlari — o'z maqolasining mavzusidir, Kausal Savdo Signallari uchun Double Machine Learning. Avval uni o'qing; quyidagi hamma narsa buni faraz qiladi va faqat estimand o'rniga bo'lganda o'zgaradigan narsalarni qamrab oladi.
Savdo Ilovasi: Hodisa Ta'sir Heterogenniligi

Sozlash
Ushbu blog uchun tabiiy domen perpetual-futures tangalar olami, bu yerda hodisalar tez-tez, timestamplangan va vendor feed siz kuzatiladi.
- Birliklar: savdo qilinadigan perp olami bo'ylab tanga-hodisa kuzatuvlari
- Davolash: agar hodisa tangasi uchun sodir bo'lsa — funding-rate ishorati flip, spot listing, yoki savdo signali sifatida likvidatsiya kaskadlari da tasvirlangan superkritik chegarani o'tgan likvidatsiya kaskadi — va mos keladigan non-hodisa oynalari uchun
- Natija: = hodisa oynasi ustidagi anormal daromad, xom daromad emas. Hodisadan oldingi baholash oynasida bozor modelini fit qiling, keyin kümülatif anormal daromadni oling. Aniq spetsifikatsiya — baholash oynasi, bozor-model regressiyasi, CAR qurilishi va u statistikasi — LLM alpha mining from earnings calls ichidagi hodisa o'qish bo'limida ishlab chiqilgan; verbatim qayta ishlating. Bu qadam ixtiyoriy emas: xom close-to-close natija bozor harakatining ga kirishiga imkon beradi va chunki bozor harakati barcha davolash birliklari uchun umumiy, u aniq davolash effektiga o'xshaydi
- Kovariatlar : bozor qiymati, realizatsiya qilingan o'zgaruvchanlik, funding tarixi, buyurtma kitobi chuqurligi, open-interest-to-cap nisbati
- Konfonders : hodisa ehtimoli va daromadni siljituvchi rejim o'zgaruvchilari
Savdo Signali
CATE yuzasi, kalibrlangan noaniqlik bahosi kabi aynan position sizer'ga map qilinadi: interval kengligiga nisbatan bilan o'lcham, va interval nolni qachon o'z ichiga olsa savdo qilmang. Ushbu qaror qoidasi — teskari kenglik o'lcham, edge nisbati , no-trade filtri, narx-aware varianti va nima uchun buni Kelly fraksiyasiga ko'paytirishingiz kerak emasligi argumenti — Risk-Aware Position Sizing uchun Konform Bashorat da keltirilgan. o'rniga va konformal o'rniga kausal o'rmon intervali bilan qayta ishlating. Uzoq va qisqa oyoqlarni muvozanatlang va kitob konstruksiya bo'yicha bozor neytral.
EconML bilan Python Implementatsiya
import numpy as np
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier
from econml.dml import CausalForestDML
def fit_causal_forest(Y, T, X, W, n_estimators=1000):
"""
CausalForestDML: (X, W) ga qarshi residualize, keyin residual
ustida kausal o'rmon fit qiling.
Y: hodisa oynasi ustidagi anormal daromadlar (CAR, bozor-model sozlangan)
T: hodisa indikatori
X: effekt modifikatorlari -- faqat bu heterogennilikni keltirib chiqaradi
W: konfonders -- faqat nuisance modellarga kiradi
"""
cf = CausalForestDML(
model_y=GradientBoostingRegressor(
n_estimators=200, max_depth=5, learning_rate=0.05
),
model_t=GradientBoostingClassifier(
n_estimators=200, max_depth=5, learning_rate=0.05
),
n_estimators=n_estimators,
min_samples_leaf=20,
max_depth=None,
criterion="het", # heterogennilik asosida bo'linish
honest=True, # vijdli baholash
inference=True, # infinitesimal-jackknife intervallari
cv=5, # DML uchun cross-fit katlamalari
random_state=42,
)
cf.fit(Y=Y, T=T, X=X, W=W)
return cf
def summarize_cate(cf, X, feature_names):
"""CATE taqsimoti va nima uning heterogenniligini keltirib chiqarishi."""
tau_hat = cf.effect(X)
tau_lo, tau_hi = cf.effect_interval(X, alpha=0.05)
print(f"Mean CATE: {tau_hat.mean():.4f}")
print(f"Std CATE: {tau_hat.std():.4f}")
print(f"Range: [{tau_hat.min():.4f}, {tau_hat.max():.4f}]")
print(f"% CI excl. 0: {((tau_lo > 0) | (tau_hi < 0)).mean():.1%}")
for idx in np.argsort(cf.feature_importances_)[::-1]:
print(f" {feature_names[idx]:>20s}: {cf.feature_importances_[idx]:.4f}")
return tau_hat, tau_lo, tau_hi
CATE Yuzasini Sharhlash
Marjinal effekt grafikalari, qolganlari median da bo'lganda bitta kovariat bo'ylab davolash effektining qanday harakatlanishini ko'rsatadi:
def plot_cate_by_feature(cf, X, feature_idx, n_points=50):
x_grid = np.linspace(X[:, feature_idx].min(),
X[:, feature_idx].max(), n_points)
X_eval = np.tile(np.median(X, axis=0), (n_points, 1))
X_eval[:, feature_idx] = x_grid
tau = cf.effect(X_eval)
tau_lo, tau_hi = cf.effect_interval(X_eval, alpha=0.05)
return x_grid, tau, tau_lo, tau_hi
Bularni fit qilingan yuzaning tavsiflari sifatida o'qing, kausal doza-response egri chiziqlari sifatida emas — boshqa kovariatlarni median ushlab turish sizni qo'llab-quvvatlanmagan kovariat fazosi regioniga qo'yishi mumkin.
Asosiy Farazlar va Diagnostikalar

Bularni buzang va o'zingiz ishonchli, aniq, noto'g'ri effektlarni olasiz.
1. Unconfoundedness (Kuzatiluvchilar bo'yicha Tanlov)
Davolash tayinlanishi kuzatilgan kovariatlar berilgan potensial natijalardan mustaqil bo'lishi kerak. Mexanik ravishda belgilangan hodisa uchun bu himoya qilinadi; o'zi bozor reaksiyasi bo'lgan hodisa uchun — listing e'loni, birjaning o'z likvidatsiya dvigatelining ishga tushishi — yo'q, chunki hodisani keltirib chiqargan bir xil kuzatilmagan oqim daromadni ham harakatlantiradi.
Buni Rosenbaum sezuvchanlik tahlili bilan tekshiring: kuzatilmagan davolash ehtimolini faktorigacha siljitishi mumkin bo'lsa,
baholangan effekt ishoratini o'zgartirishidan oldin qancha katta bo'lishi kerak? da sindirilgan dizayn topilm emas.
2. Overlap (Pozitivlik)
Har bir birlikning ikkala qo'lda ham paydo bo'lishi uchun musbat ehtimolikka muhtoj. Propensity skorlarini tekshiring va qirqing:
propensity = cf.models_t[0][0].predict_proba(np.hstack([X, W]))[:, 1]
print(f"Propensity range: [{propensity.min():.3f}, {propensity.max():.3f}]")
valid = (propensity > 0.05) & (propensity < 0.95)
print(f"Retained after trimming: {valid.mean():.1%}")
Qirqish bepul emas — u tasvirlaydigan populyatsiyani qayta belgilaydi. Omon qolgan fraktsiyani xabar bering.
3. SUTVA (Barqaror Birligi Davolash Qiymat Farazi)
Bir birikning davolashi boshqasining natijasiga ta'sir qilmasligi kerak. Kriptoda bu, uchtaning eng kuchsizi: bir perpdagi likvidatsiya kaskadi umumiy collateral va market makler inventari orqali har bir korelatsiyalan juftlarga tarqaladi, bu interferensiyadir. Standart xatolarni korelatsiya guruhi bo'yicha klasterlash qisman hal qiladi; hech narsa to'liq emas.
Ikkilik Davolashdan Tashqari
Kausal o'rmonlar bir xil DML mexanizmi orqali uzluvli davolashlarga kengayadi — hodisa emas, balki zarur kattaligining aktivlarni qanday farqli harakatlantirishini baholash:
bu yerda — masalan, funding-rate o'zgarishining basis points dagi o'lchami. Endi basis point uchun effekt.
cf_continuous = CausalForestDML(
model_y=GradientBoostingRegressor(n_estimators=200),
model_t=GradientBoostingRegressor(n_estimators=200), # regression, not classifier
discrete_treatment=False,
n_estimators=1000,
honest=True,
inference=True,
)
cf_continuous.fit(Y=car, T=funding_change_bps, X=asset_features, W=controls)
effects_25bp = cf_continuous.effect(X_test, T0=0, T1=25)
Amaliy Mulohazalar
Heterogennilik Haqiqiymi?
Bu, kausal o'rmonlarning javob beradigan savoli va ushbu blogda boshqa hech narsa qilmaydi va haqiqiy testni qadrli, bosh ka'ale emas. Vijdlik baholovchi ichida soxta bo'linishlarga qarshi himoya qiladi; tutilgan hodisalar da (tutilgan aktivlar da emas) namuna tashqari baholash standart va walk-forward optimization va deflated Sharpe va ko'p testlash da qoplanadi. Hech biri ning bilan o'zgarishini aytmaydi.
Best Linear Predictor testi bunu qiladi. Residualize natijani residualize davolash va uning centered CATE bahosi bilan interaksiyasi ustun regressiya qiling:
Ikki koeffitsient ikki xil savolga javob beradi. — o'rtacha effekt: bu yerda hech narsa bormi? — o'z bashoratlaringizdagi kalibrlash slope'i: o'rmingiz effekt kattaroq deyanda, haqiqatan ham kattaroqmi? Heterogennilik yo'qligi null ostida . Mukammal kalibrlash ostida . noldan sezilarli lekin birdan uzoqda bo'lsa, o'rmon haqiqiy tartibni topgan lekin tarqalishini oshirib yuborgan — siz tartibni savdo qilishingiz mumkin, kattaliklarni emas.
EconML ning RScorer hamroh model-tanlash ballini beradi:
from econml.score import RScorer
scorer = RScorer(
model_y=GradientBoostingRegressor(n_estimators=100),
model_t=GradientBoostingClassifier(n_estimators=100),
discrete_treatment=True,
cv=5,
)
scorer.fit(Y_val, T_val, X=X_val, W=W_val)
print(f"R-score: {scorer.score(cf):.4f}")
Scorerni, o'rmon hech qachon ko'rmagan validation split da fit qiling, keyin nomzod CATE modellarini bir-biri bilan va konstant-effekt baseline bilan solishtirish uchun ishlating. R-score da konstant-effekt modelini yena olmaydigan o'rmon, namuna ichki importancelari nima desa, savdo qilishga layoqat heterogennilikni topmagan.
Namuna O'lchami
Kausal o'rmonlar natija modelidan ko'proq ma'lumotga muhtoj, chunki estimand farq va ikkala qol ham har bir yaprak ichida to'ldirilishi kerak. Umumiy ma'lumot-vs-parametar tartibi — serbeh parametr uchun nechta namuna tashqari nuqta, va configurationlarni solishtirganda Bonferroni tuzatish — walk-forward optimization dagi ma'lumot talablari bo'limida. Kausal o'rmonga xos javob empirik, bosh ka'ale emas: o'rmoni ichma-ich past namunalarda fit qiling va median interval kengligini ga plot qiling; ishlatilishi mumkin bo'lgan namuna o'lchami, kenglik savdo qilmoqchi bo'lgan effekt o'lchamlari ostiga tushadigan joydir.
Walk-Forward, Ikki Buruncha
Baholash protokoli oddiy anchored walk-forward — gacha barcha hodisalarda refit qiling, hodisasini savdo qiling — va to'liq davolash, shu jumladan purging, embargo, walk-forward effitsiensiya nisbati va degradatsiya darajasi, walk-forward optimization da. Ikki narsa ushbu baholovchiga xos.
Birinchidan, hodisa oynalari overlap. Agar hodisasidan oldingi kovariat oynasi hodisasining natija oynasini o'z ichiga olsa, katlar kuzatuvlarni baham ko'radi va namuna tashqari natija kontaminat bo'ladi. Bitta PnL raqamini sanashdan oldin overlap oynalarni tozalang; funding flip kabi mexanik tez-tez davolash bilan bu hodisalarning muhim qismini o'chirib tashlashi mumkin.
Ikkinchidan, vijdli bo'linish har bir refit da qayta chizilishi kerak. Bir xil / bo'linishini katlar orqali tashish, vijdlik mavjud bo'lish sababli oldini olishga harakat qilayotgan bir xil struktura-tanlash sizib chiqishini qayta kiritadi, chunki yangi qo'shilgan hodisalar eski bilgan holda tanlangan bo'linmaga tushadi.
Keyin har qanday narsaga ishonishdan oldin hodisa darajasida namuna tashqari PnL ni odatdagi eshiklardan o'tkazing — PBO va deflated Sharpe ratio.
Xarajatlar
CATE signali, boshqa hodisa-driven signali kabi narxlanadi: no-trade filtrasidan oldin dan kutilayotgan half-spreadni ayring va ingil kitoblarda o'lchamni tushiring. Miqdoriy versiyalar — ildiz ta'sir qonuni va slippage cost models da fit langan cost egri chiziqlari, conformal prediction da cost-aware no-trade filtri, va implementation shortfall va TCA da ijro hisoblagich — barchasi o'zgarishsiz transfer qilinadi.
Transfer bo'lmagan narsa: COTE signali raf umr hodisa oynasi bilan cheklanadi, shuning uchun xarajat ochiq-uchunsiz emas, balki belgilangan qisqa ushlab turish davri bo'yicha amortizat qilinadi. Uzluvli ushlab turilgan signal spread bir marta to'laydi va edge qancha davom etsa shuncha yutadi; bu har bir hodisada to'laydi. Edge shuningdan omon qolishi mumkinmi — bu sizning o'ziga xos hodisangiz va o'ziga xos olamingiz haqida empirik savol va bu tekshirish kerak bo'lgan birinchi narsa, chunki u strategiyani har qanday kusal mexanizm muhim bo'lishidan oldin o'ldirishi mumkin.
Xulosa
Kausal o'rmonlar ushbu blogning boshqa toolkitidan farqli obyektni baholaydi. "Ushbu aktiv nimani qaytaradi" emas, balki "u uchmaganida nisbatan ushbu hodisa ushbu aktivni qancha harakatlantirdi". Buni baholash mumkin qiluvchi mexanizmlar — heterogennilikni maksimal qiluvchi bo'linishlar, vijdli baholash, moslashuvchan yadro og'irliklari va infinitesimal-jackknife intervallari — oddiy nazorat qilingan o'rganishda analogi yo'q va u talab qiladigan farazlar (unconfoundedness, overlap, SUTVA) yetarlicha kuchliki, ular da'vo qilinish o'rniga test qilinishi kerak.
Ushbu maqolaning yo'q narsasi — natija. Yuqoridagi har bir raqam joy tutuvchi. vijdli manfiy va deflated Sharpe tomonidan belgilangan standartga ko'ra, o'lchanmagan CATE taqsimoti, p-value bo'lgan BLP , overlap diagonistika va DSR/PBO eshikli namuna tashqari PnL bo'lmagan metod — darslik, topilm emas. Ushbu raqamlar keyingi ish; manfiy natija nashr qilishga layoqat.
Havolalar
- Athey, S., Imbens, G.W. "Recursive Partitioning for Heterogeneous Causal Effects." PNAS, 113(27), 7353-7360 (2016).
- Wager, S., Athey, S. "Estimation and Inference of Heterogeneous Treatment Effects using Random Forests." JASA, 113(523), 1228-1242 (2018). arXiv:1510.04342
- Athey, S., Tibshirani, J., Wager, S. "Generalized Random Forests." Annals of Statistics, 47(2), 1148-1178 (2019).
- Chernozhukov, V., et al. "Double/Debiased Machine Learning for Treatment and Structural Parameters." The Econometrics Journal, 21(1), C1-C68 (2018).
- Chernozhukov, V., Demirer, M., Duflo, E., Fernandez-Val, I. "Generic Machine Learning Inference on Heterogeneous Treatment Effects in Randomized Experiments." (2018). arXiv:1712.04802
- Battocchi, K., et al. "EconML: A Python Package for ML-Based Heterogeneous Treatment Effects Estimation." Microsoft Research (2019). GitHub
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.