GaiaExGaiaEx
Finans için Python: Kütüphaneler, Veri ve İlk Betiğin
GeliştiriciProgramlama10 min read

Finans için Python: Kütüphaneler, Veri ve İlk Betiğin

Kantitatif finansta en popüler dil — buradan başla

Paylaş

Sadece Sözdizimi Değil, Bir İş Akışı Dili Olarak Python

Kantitatif finans ekipleri bir dili sadece soyut zarafeti için nadiren seçer. Bir araştırmacıyı karmakarışık bir CSV dosyasından test edilmiş bir sinyale, dünyayı her hafta yeniden yazmadan taşıyan aracı seçerler. Python kazanır, çünkü okunabilir, betiklenebilir ve devasa bir sayısal ekosistemin merkezinde durur: veri alımı, temizleme, özellik çalışması, görselleştirme ve (dikkatli kullanıldığında) üretim servisleri.

Neredeyse her masada üç kısıt karşına çıkar:

  • İlk grafiğe kadar geçen süre — Geçmişten bir dilim yükleyip aykırı değerleri dakikalar içinde görebiliyor musun?
  • Birlikte çalışabilirlik (interop) — Borsa API'lerini, veritabanlarını ve ML kütüphanelerini bir tek süreç içinde çağırabiliyor musun?
  • Tekrar üretilebilirlik — Başka biri senin ortamını yeniden kurup aynı sayılara ulaşabiliyor mu?

Python, CPU çevrimi başına en hızlı dil değildir. Ama sorudan kanıta giden en hızlı yol genellikle odur — ki gerçek darboğaz da tam olarak budur.

Typical Python quant stack (logical layers) API / files REST, WS, CSV pandas align, resample NumPy vector math viz / ML matplotlib, sklearn… Notebook for exploration → module for reuse → job or service for schedule Same language; tighten boundaries as the idea survives scrutiny
Veri, akışlardan içeri doğru akar; kütüphaneler üst üste yığılır; sıkılaştırma kodu defterlerden modüllere taşır.

Yeniden Kurabileceğin Ortamlar

Her ciddi projeye izole bir ortamdan başla, böylece pip install denemeleri ilgisiz işleri zehirlemesin. Klasik yol python -m venv .venv'dir, onu etkinleştir, ardından bağımlılıkları requirements.txt içinde veya Poetry/pip-tools'tan bir kilit dosyasında sabitle.

Finans için, simülasyonların önemli olduğu yerlerde rastgele tohum (random seed) değerlerini de sabitle ve sonuçların yanına veri anlık görüntülerini (girdi dosyasının bir hash'i bile olsa) kaydet. Bir risk komitesi ne değişti diye sorduğunda, tekrar üretilebilirlik kurnaz tek seferlik grafiklerden çok daha değerlidir.

python -m venv .venv
source .venv/bin/activate
pip install pandas numpy matplotlib

Ezbere Bilmeye Değer Kütüphaneler

NumPy sana bitişik diziler ve hızlı eleman bazlı matematik sağlar. pandas bunun üstüne etiketli tablolar, zaman indeksleri, birleştirmeler (merge) ve gruplamalar (groupby) katar. Matplotlib (veya Plotly) serileri bir toplantıda savunabileceğin grafiklere dönüştürür.

Kripto bağlantısı için ccxt, birçok borsa API'sini tek bir yüzeyin arkasında normalize eder — yine de her platformun hassasiyet ve hız limitlerini okumaya devam et. Geleneksel hisse senetleri için, vendor SDK'ları veya Yahoo tarzı yükleyiciler eğitim verisi için yaygındır, gecikmeye hassas canlı işlem için değil.

Minimal Bir Getiri ve Oynaklık Taslağı

İş akışlarının çoğu şuna indirgenir: fiyatları yükle → getirileri hesapla → hareketli istatistikleri türet. Günlük kapanışları kullanan derli toplu bir örüntü:

import pandas as pd
import numpy as np

df = pd.read_csv("prices.csv", parse_dates=["date"]).set_index("date")
df["ret"] = df["close"].pct_change()
df["vol_20d"] = df["ret"].rolling(20).std() * np.sqrt(252)

Yıllıklandırılmış oynaklık, günlük standart sapmayı √252 ile çarpar — ama sadece takvim günlerini tutarlı şekilde ele alıyorsan bu geçerlidir; gün içi (intraday) barlar farklı ölçeklendirme gerektirir. Gönderdiğin her sayının yanına bar boyutunu not et.

From raw prices to risk stats Pₜ close rₜ ΔP/P σ, VaR rolling windows signal Garbage at ingest poisons every later box — validate timestamps and splits first.
Getiriler, fiyat seviyeleri ile aşağı akışta yer alan neredeyse her risk veya alfa metriği arasındaki menteşedir.

Geriye Dönük Testten API Çağrılarına

Araştırma kodu ile üretim kodu birbirinden ayrışır: birincisi yavaş döngülere tolerans gösterir; ikincisi zaman aşımları, geri çekilmeli (backoff) yeniden denemeler, idempotent sipariş ID'leri ve yapılandırılmış loglar gerektirir. Hyperliquid üzerindeki GaiaEx gibi platformlara karşı otomasyon yapıyorsan, cüzdan anahtarlarını, nonce disiplinini ve zincir üstü kesinliği (finality) sistemin bir parçası olarak ele al — bir deftere sonradan yamanmış bir düşünce olarak değil.

Python, iyi bir orkestrasyon katmanı olarak kalır: işlem API'sini çağır, gerçekleşen işlemleri analiz için pandas'a it, risk limitleri aşıldığında Slack'te uyar. Piyasalar sıçradığında akıl yürütebileceğin kadar basit bir kritik yol tut.