İçeriğe geç
Seçkin Can Şahin
PaykoKurucu, tek geliştiriciŞubat 2026AnkaraDevam ediyor

Kendimi devreden çıkarmak için kurduğum borsa otomasyonu

Borsa için bir yapay zeka komuta merkezi kuruyorum. On beş Lambda veri topluyor, Rust'ta yazılmış bir motor riski ölçüyor, bir dil modeli hattı emirleri üretiyor. Hedef, kararı hızlandırmak değil; benim orada olmamı gereksiz kılmak.

Yetmiş iki commit, 89.561 satır, on beş Lambda ve Rust'ta bir risk motoru. Henüz yayında değil; şu an bir kişinin kendi sermayesini yönettiği bir otomasyon.

Rakamlarla Payko

Arka plan servisi
15 Lambda
Kod
89.561 satır
Arayüz rotası
55

Payko adını ikinci kez kullanıyorum. İlki paylı gayrimenkul yatırımıydı ve Sermaye Piyasası Kurulu bitirmemizi istediğinde kapandı. Bu, onunla adı dışında hiçbir şeyi paylaşmıyor: borsa için bir otomasyon ve karar merkezi, ve kullanıcısı şimdilik tek kişi — ben.

Kurma sebebim de alışılmış olanın tersi. Çoğu yatırım aracı, kullanıcının daha iyi karar vermesini sağlamak için kurulur: daha çok grafik, daha çok gösterge, daha hızlı ekran. Ben tam olarak bunu istemiyorum. Amacım, sabah uyandığımda bakmam gereken bir şey olmaması.

Neden otomasyon, neden şimdi

On yılı aşkın süredir yatırım yapıyorum ve bu sürede öğrendiğim en pahalı şey, kendi dikkatimin güvenilmez bir kaynak olduğu. Bir haberi görüp tepki verdiğim günlerle görmediğim günler arasındaki fark, çoğu zaman getirinin kendisinden büyük çıkıyor. Sorun bilgi eksikliği değildi; aynı bilgiyle farklı günlerde farklı davranmamdı.

Bunun iki çözümü var. Ya disiplini kendinize kural olarak dayatırsınız — kâğıt üzerinde işe yarar, pratikte piyasa sert hareket ettiğinde çöker — ya da kararı kendinizden alıp yazıya dökersiniz. İkincisini seçtim. Yazıya dökülmüş bir kuralın en güzel yanı, kötü bir günde de aynı şeyi yapması.

Sistem neye benziyor

Üç katman var ve kasıtlı olarak birbirinden ayrılar.

Veri katmanı on beş Lambda’dan oluşuyor. Her biri tek bir işi yapıyor: fiyat toplayıcı, kotasyon tazeleyici, temel veri tazeleyici, ticker eşitleyici, S&P 500 geçmişi, haber toplayıcı ve onu tetikleyen ayrı bir servis, emir üretici, otomatik anlık görüntü ve onun hatırlatıcısı, günlük özet, raporlayıcı, başlatıcı ve bir de veri sağlayıcısına giden vekil.

Bu ayrımın sebebi mimari zarafet değil, hata yalıtımı. Haber servisi çöktüğünde fiyatlar akmaya devam etmeli. Tek bir süreçte toplasaydım, en kırılgan parçanın en sağlam parçayı da yere indirdiği bir sistem kurmuş olurdum — ve bu tür sistemlerde en kırılgan parça her zaman dış veri sağlayıcısına bağlı olandır.

Risk motorunu Rust’ta yazdım. Monte Carlo simülasyonu ve stres testi yapıyor, WebAssembly olarak derleniyor. Bu seçim, LeanScale’de 35.000 satırlık bir JavaScript sistemini Rust’a taşıdıktan sonra öğrendiğim bir şeyden geliyor: aynı hesabı binlerce kez tekrarlayan kod, dilin kendisinden gerçekten etkileniyor. On binlerce senaryoyu çalıştıran bir simülasyonda bu fark, “biraz daha hızlı” değil, “tarayıcıda çalışabilir mi çalışamaz mı” farkı.

Karar katmanı bir dil modeli hattı. Her turda önce bağlamı topluyor — piyasa açık mı, o gün hangi haberler çıkmış, hangi şirketin bilançosu gelmiş, portföyün kıyas ölçütüne göre performansı ne — sonra bu bağlamla emirleri üretiyor, sonra turun tamamını loglıyor.

O son adım en önemlisi. Her turun neye bakıp ne karar verdiği kaydediliyor. Otomatik bir sistemin en tehlikeli hâli, doğru kararlar veren ama nedenini söyleyemeyen hâlidir; çünkü yanlış karar vermeye başladığında bunu fark etmenizin bir yolu kalmaz.

Arayüzün işi, kullanılmamak

Elli beş rota var: gösterge paneli, portföy, terminal, analitik ve korelasyon, risk, faktör röntgeni, strateji ve opsiyon laboratuvarları, optimizasyon, autotrader, haber, bilanço, günlük, uyarılar, izleme listesi, pozisyon boyutlandırıcı. Arayüz İngilizce ve Türkçe, açık ve koyu temada çalışıyor, çevrimdışı açılıyor.

Bu kadar ekran kurup sonra “amacım bunlara bakmamak” demek çelişkili duruyor, biliyorum. Ama iki farklı iş bunlar. Sistem çalışırken bakmam gereken bir şey olmamalı; sistemin neden öyle çalıştığını anlamam gerektiğinde ise bakabileceğim bir yer olmalı. İlki günlük hayat, ikincisi ayda bir yapılan denetim.

Pratikte en çok kullandığım ekran gösterge paneli değil, günlük. Yani sistemin ne yaptığı değil, ne düşündüğü.

Şu an nerede

Yetmiş iki commit, 89.561 satır, altı hafta. Henüz yayında değil ve kimseye bir hizmet sunmuyor; kendi sermayemi yöneten kişisel bir otomasyon. Eski Payko’nun nasıl bittiğini yaşamış biri olarak, düzenlemeye tabi bir işe girmeden önce düzenlemeyi okumayı öğrendim.

En zor kısım da beklediğim yerde çıkmadı. Veri hattı, risk motoru, arayüz — bunlar bilinen problemler. Zor olan, kendi kararımı bir metne dökmek. Bir şirketi neden aldığımı yazmaya çalıştığımda, cümlenin yarısında durduğum çok oldu: gerekçenin bir kısmı gerçekten sebep değil, sonradan bulunmuş bir açıklamaymış. Bir sistemi otomatikleştirmenin en dürüst yanı bu; kuralı yazmadan önce kuralınız olmadığını fark ediyorsunuz.

Teknoloji

  • TypeScript
  • Next.js
  • AWS Lambda
  • Rust
  • WebAssembly
  • PostgreSQL

Yorumlar

Burada henüz kimse konuşmamış. İlk sözü siz söyleyin — katılmadığınız yeri yazarsanız daha da iyi.

Yorum yazın

Yorumlar önce bana geliyor. Onayladığımda burada, adınızla birlikte yayımlanıyor.

Yayımlanmaz. Sadece gerekirse size dönebilmek için.