Finansal Piyasa Verisi Kazıma Neden Kritik?
Finansal piyasa verisi kazıma, yatırım kararlarını saniyeler içinde alması gereken sistemler için artık lüks değil zorunluluktur. Kazanç çağrısı transkriptleri, SEC dosyaları, haber akışları ve sosyal duygu sinyalleri; hepsi alfa araştırmasından risk izlemeye kadar farklı hatlarda çalışır. Ancak bu veriyi toplamak, anti-bot duvarları, coğrafi kısıtlar ve düzenleyici sınırlarla doludur. Bu rehber, veri bütünlüğünü ve uyumu gözeterek finansal veri kazıma pipeline'ını kurmanız için pratik bir yol haritası sunar.
Hedef Veri Kaynakları ve Özellikleri
Finansal veri ekosistemi, güncelleme sıklığı ve erişim zorluğu açısından dramatik biçimde farklılık gösteren kaynaklardan oluşur. Aşağıdaki tablo ana kaynakları ve bunların kazıma profillerini özetliyor:
| Veri Kaynağı | Örnek Siteler | Güncelleme Sıklığı | Anti-Bot Zorluğu |
|---|---|---|---|
| Kazanç Çağrısı Transkriptleri | Seeking Alpha, Motley Fool | Çeyreklik (yayından sonra saatler) | Orta-Yüksek |
| Kazanç Takvimi | Zacks, Earnings Whispers | Günlük / saatlik | Orta |
| Finansal Haberler | Bloomberg, Reuters, MarketWatch | Gerçek zamanlı / dakikalık | Yüksek |
| SEC Dosyaları | EDGAR (SEC.gov) | Günlük (8-K dahil) | Düşük (kamu API) |
| Sosyal Duygu | StockTwits, X (Twitter) | Saniyelik | Orta-Yüksek |
SEC EDGAR: Kamu API'si Olan İstisna
EDGAR, ABD menkul kıymet düzenleyicisinin kamuya açık veritabanıdır ve SEC EDGAR arayüzü üzerinden doğrudan erişilebilir. EDGAR'ın kendi REST API'si vardır; bu nedenle çoğu dosya türü (10-K, 10-Q, 8-K) için kazıma yerine yapılandırılmış API çağrısı tercih edilmelidir. Yine de EDGAR bile istek başına 10 istek/saniye hız sınırı uygular ve bunu aşmak IP yasaklarına yol açar.
Kazanç Transkriptleri ve Haber Siteleri
Seeking Alpha, Motley Fool, Bloomberg ve Reuters gibi siteler, içeriklerini yoğun Cloudflare veya PerimeterX katmanlarıyla korur. Coğrafi kısıtlar da yaygındır; örneğin bazı haber siteleri ABD dışı IP'lerden düşük çözünürlüklü veya gecikmeli içerik sunar. Bu noktada finansal haber proxyleri devreye girer: konum hedeflemeli residential proxy'ler, hem anti-bot duvarını aşmanızı hem de bölgesel kısıtlamaları atlamanızı sağlar.
Veri Bütünlüğü: Zaman Damgaları, Sıra Garantileri ve Gecikme
Finansal veride sıralama ve zaman damgası doğruluğu, ticaret kararlarının temelidir. Bir 8-K dosyasının EDGAR'a teslim saati ile sizin sisteminize ulaşma saati arasındaki fark, arbitraj fırsatını belirleyebilir ya da yok edebilir.
Zaman Damgası Kaynakları
- Sunucu tarafı zaman damgaları: EDGAR'ın
file_dateveacceptedalanları, milisaniye çözünürlüklü resmi zaman damgalarıdır. Bunları mutlaka kaydedin. - Site yayın saati: Haber sitelerinin kendi zaman damgaları olabilir; ancak bu değerler CDN önbellekleme ve saat dilimi tutarsızlıklarından etkilenebilir.
- Alım zaman damgası: Veriyi ne zaman çektiğinizi kaydedin; ancak bunu resmi yayın saati ile karıştırmayın. Gecikme analizi için her ikisini saklayın.
Sıra Garantileri
Paralel kazıma işçileri kullanırken, olayların sırasını kaybetmek kolaydır. Örneğin üç farklı haber sitesinden aynı şirket hakkında art arda gelen haberler geliyorsa, bunları alım sırasına göre değil, yayın sırasına göre dizmelisiniz. Bunu sağlamak için:
- Her kaynağın yayın zaman damgasını normalize edin (UTC).
- Alım sırasını ayrı bir
ingested_atalanında tutun. - Olay dizisini yeniden yapılandırırken yayın zaman damgasını birincil sıralama anahtarı olarak kullanın.
Gecikme (Latency)
Ticaret-ilişkili kullanım senaryolarında gecikme kritik faktördür. Residential proxy'ler, datacenter proxy'lere kıyasla ortalama 50–200 ms daha yüksek gecikme sunabilir; ancak bu fark, anti-bot engellemelerinden dolayı yaşanan dakikalar süren IP yasaklarıyla karşılaştırıldığında ihmal edilebilir. ProxyHat'ın residential ağı, ortalama <300 ms bağlantı gecikmesiyle bu dengeyi optimize eder.
Neden Residential + Düşük Gecikmeli Proxy?
Finansal siteler, bot trafiğini tespit etmek için gelişmiş parmak izi teknikleri kullanır. Datacenter IP blokları, ASN tabanlı filtrelerle kolayca engellenebilir. Residential proxy'ler ise gerçek ISP IP'leri sunar ve bu da trafiğin normal kullanıcıdan geldiğini gösterir.
Coğrafi Hedeflemenin Önemi
Bazı finansal veri kaynakları, kullanıcı konumuna göre farklı içerik sunar. Örneğin bir ABD haber sitesi, ABD dışı IP'lerden erişildiğinde makalenin tamamını göstermeyebilir. ProxyHat ile ülke bazlı hedefleme yaparak bu sorunu aşabilirsiniz:
# ABD konumlu residential proxy ile Seeking Alpha transkripti kazıma
curl -x http://user-country-US:pass@gate.proxyhat.com:8080 \
"https://seekingalpha.com/symbol/AAPL/earnings/transcripts"
IP Rotasyon Stratejileri
Finansal sitelerde orantısız istek hacmi, hızlı IP yasaklarına yol açar. İki temel strateji:
- İstek başına rotasyon: Her HTTP isteğinde yeni IP. Dizin taraması ve genel veri toplama için uygundur.
- Yapışkan oturum (sticky session): Aynı IP üzerinde oturum süresince kalma. Oturum açma gerektiren siteler ve sayfalandırma işlemleri için gereklidir.
# Yapışkan oturum ile haber sitesi kazıma
# session-earnings-001 tanımlayıcısı, oturum süresi boyunca aynı IP'yi korur
curl -x http://user-session-earnings001-country-US:pass@gate.proxyhat.com:8080 \
"https://www.marketwatch.com/investing/stock/aapl"
Mimari: Kaynak Güncelleme Sıklığına Uyumlu Kazıma Kadansı
Her veri kaynağının farklı güncelleme sıklığı vardır. Kazıma cadence'ınızı buna ayarlamazsanız ya gereksiz istek harcar ya da kritik güncellemeleri kaçırırsınız.
Gerçek Zamanlı Kaynaklar (Haber, Sosyal Duygu)
Bloomberg, Reuters ve StockTwits gibi kaynaklar saniyeler içinde güncellenir. Bu kaynaklar için:
- Polling aralığı: 5–30 saniye (kaynağa ve rate limit'e göre).
- WebSocket kullanımı: Mümkünse HTTP polling yerine WebSocket bağlantısı tercih edin; bu %60'a varan bant genişliği tasarrufu sağlar.
- Sıralı istek limiti: Kaynak başına eşzamanlı bağlantıyı 5–10 ile sınırlayın; aksi halde anti-bot tetiklenir.
Günlük Kaynaklar (EDGAR, Kazanç Takvimi)
EDGAR dosyaları ve kazanç takvimleri gün içinde belirli aralıklarla güncellenir:
- EDGAR: Çalışma saatlerinde (9:00–17:00 ET) 15 dakikada bir, çalışma saatleri dışında 30 dakikada bir polling yeterlidir.
- Kazanç takvimi: Sabah ve öğleden sonra olmak üzere günde 2–3 kez yeterlidir; piyasa öncesi sürprizler için 5 dakikalık aralıklar eklenebilir.
Çeyreklik Kaynaklar (Kazanç Transkriptleri)
Transkriptler, kazanç çağrısından saatler veya günler sonra yayınlanır. Bu kaynaklar için:
- Kazanç çağrısı tarihini takvim verisinden alın.
- Çağrı sonrası 2–6 saat içinde transkript yayını için polling başlatın.
- Transkript bulunduğunda polling'i durdurun ve sonraki çeyreğe geçin.
Python ile Üç Katmanlı Finansal Veri Pipeline'ı
Aşağıdaki örnek, EDGAR, haber ve duygu verisini paralel toplayan ve zaman damgalarını normalize eden basit bir pipeline gösterir:
import requests
import time
from datetime import datetime, timezone
PROXY = "http://user-country-US:pass@gate.proxyhat.com:8080"
proxies = {"http": PROXY, "https": PROXY}
def fetch_edgar_filing(cik: str, form_type: str = "8-K"):
"""EDGAR'dan son dosyalamayı çek ve zaman damgalarını normalize et."""
url = f"https://data.sec.gov/submissions/CIK{cik}.json"
headers = {"User-Agent": "YourOrg admin@yourorg.com"} # EDGAR zorunlu
resp = requests.get(url, headers=headers, proxies=proxies, timeout=15)
filings = resp.json()["filings"]["recent"]
for i, ft in enumerate(filings["form"]):
if ft == form_type:
accepted = filings["acceptanceDateTime"][i]
filed = filings["fileDate"][i]
return {
"form": form_type,
"file_date": filed,
"accepted_utc": accepted,
"ingested_at": datetime.now(timezone.utc).isoformat(),
"source": "EDGAR"
}
return None
def fetch_news(query: str, max_retries: int = 3):
"""Haber sitesinden veri çek; anti-bot engellerinde yeniden dene."""
for attempt in range(max_retries):
try:
resp = requests.get(
f"https://www.marketwatch.com/search?q={query}",
proxies=proxies,
timeout=20
)
return {
"query": query,
"ingested_at": datetime.now(timezone.utc).isoformat(),
"status": resp.status_code
}
except requests.exceptions.RequestException:
wait = 2 ** attempt # üssel geri çekilme
time.sleep(wait)
return None
Düzenleyici Farkındalık: SEC, MiFID II ve Veri Lisanslama
Finansal veri kazıma, yalnızca teknik değil, aynı zamanda hukuki bir faaliyettir. Üç temel düzenleyici çerçeve dikkat gerektirir:
SEC ve EDGAR Kullanım Koşulları
EDGAR kamuya açık olsa da, SEC EDGAR Filer Manual'da belirtildiği üzere, verinin ticari yeniden dağıtımı için ek lisanslar gerekebilir. Özellikle EDGAR'dan alınan XBRL verisini ticari bir üründe sunuyorsanız, SEC'in veri kullanım politikasını incelemeniz zorunludur.
MiFID II ve AB İçinde Veri Yeniden Dağıtımı
Avrupa Birliği'nde faaliyet gösteren kurumlar, MiFID II kapsamında işlem sonrası şeffaflık verisini belirli format ve zamanlamayla yayınlamakla yükümlüdür. Bu veriyi kazıyarak ticari ürün oluşturuyorsanız, ESMA'nın şeffaflık gereksinimleri kapsamında veri lisansı almanız gerekebilir. MiFID II, veri sağlayıcıların makul ticari koşullarla lisans vermesini zorunlu kılar; ancak bu ücretsiz anlamına gelmez.
Profesyonel Piyasa Verisi Lisanslama
Borsalar (NYSE, NASDAQ, LSE vb.) gerçek zamanlı fiyat verisini kendi lisans koşulları altında sunar. Eğer kazıdığınız veri gerçek zamanlı fiyat içeriyorsa ve bunu müşterilerinize dağıtıyorsanız, ilgili borsanın profesyonel veri aboneliği gereklidir. Gecikmeli veri (genellikle 15 dakika) çoğu borsa için ücretsiz veya düşük maliyetlidir, ancak bunun koşulları da değişebilir.
Düzenleyici uyum, teknik zorluklardan daha pahalıya mal olabilir. Veri pipeline'ınızı tasarlarken, lisans maliyetlerini ve yükümlülükleri erken aşamada hesaba katın.
Kullanım Senaryoları
Alfa Araştırması
Kazanç transkriptlerinden NLP ile yönetim duygu skoru çıkarmak, 8-K dosyalarından beklenmedik olayları tespit etmek ve sosyal duygu sinyallerini birleştirerek alfa sinyalleri üretmek. Bu senaryoda zaman damgası doğruluğu, olay çalışmasının (event study) geçerliliği için kritiktir.
Risk İzleme
Sektör haberlerini ve SEC dosyalarını sürekli izleyerek portföy riskini proaktif yönetmek. Örneğin, bir şirketin 8-K dosyasında CEO değişikliği tespit edildiğinde, risk modeline saniyeler içinde yansıtılabilmelidir.
Düzenleyici Uyum Beslemeleri
Yatırım fonları ve bankalar, düzenleyici raporlama için EDGAR ve benzeri kaynaklardan veri toplamak zorundadır. Bu verinin eksiksiz ve sıralı olması, denetim geçebilirliğinin ön koşuludur.
ProxyHat ile Finansal Veri Kazıma Kurulumu
ProxyHat, residential, mobil ve datacenter proxy'leri tek bir ağ geçidinde sunar. Finansal veri kazıma için residential proxy'ler en uygun seçenektir; ancak düşük gecikme gerektiğinde datacenter proxy'ler de kullanılabilir.
Temel Yapılandırma
# Node.js ile SOCKS5 üzerinden finansal duygu verisi kazıma
const SocksProxyAgent = require('socks-proxy-agent');
const axios = require('axios');
const agent = new SocksProxyAgent(
'socks5://user-country-US:pass@gate.proxyhat.com:1080'
);
async function scrapeSentiment(symbol) {
const url = `https://stocktwits.com/symbol/${symbol}`;
const resp = await axios.get(url, {
httpsAgent: agent,
timeout: 15000
});
return {
symbol,
ingested_at: new Date().toISOString(),
status: resp.status
};
}
scrapeSentiment('AAPL').then(console.log);
Gelişmiş Konum Hedefleme
ABD borsası verisi için ABD lokasyonlu IP kullanmak, hem coğrafi kısıtları aşar hem de daha düşük gecikme sağlar. ProxyHat, ülke ve şehir düzeyinde hedefleme sunar:
user-country-US— ABD genelinde rastgele IPuser-country-US-city-newyork— New York şehri IP'si (borsa lokasyonuna yakın, gecikme minimize edilir)user-session-abc123— Yapışkan oturum tanımlayıcısı
ProxyHat'ın sunduğu konum seçeneklerini ve fiyatlandırma detaylarını fiyatlandırma sayfasından ve lokasyonlar sayfasından inceleyebilirsiniz. Ayrıntılı teknik belgeler için ProxyHat belgelerine başvurun.
Yaygın Hatalar ve Kenar Durumlar
1. EDGAR Rate Limit'ini İhlal Etmek
EDGAR, IP başına saniyede 10 istek sınırını katı biçimde uygular. Bunu aşarsanız, IP'niz saatlerce engellenebilir. Çözüm: İstekler arası 100 ms bekleme ekleyin ve proxy rotasyonu kullanın.
2. Zaman Dilimi Tutarsızlığı
ABD borsası verisi ET (Eastern Time), AB verisi CET/CEST, küresel haber akışları ise genellikle UTC kullanır. Tüm zaman damgalarını saklama anında UTC'ye normalize etmeden, olay dizisi yeniden yapılandırması imkansız hale gelir.
3. Yapışkan Oturum Yönetimi
Oturum açma gerektiren sitelerde, yapışkan oturum süresi dolduğunda IP değişir ve oturum sonlanır. ProxyHat'ın yapışkan oturumları varsayılan olarak 10 dakika sürer; ancak bu süre, site tarafında oturum zaman aşımı daha kısaysa sorun yaratabilir. Her oturum için yeniden kimlik doğrulama mantığı ekleyin.
4. CAPTCHA ve Anti-Bot Tetiklemeleri
Paralel istek sayısını kaynak başına 5 eşzamanlı bağlantı ile sınırlayın. İstekler arası rastgele gecikme (1–3 saniye) ekleyin. Başarısız yanıtlarda (403, 429) üssel geri çekilme uygulayın.
Temel Çıkarımlar
- Zaman damgaları kritiktir: Her kaynağın resmi yayın saatini UTC olarak saklayın; alım zamanını ayrı bir alanda tutun.
- Kaynak kadansına uyum sağlayın: Gerçek zamanlı kaynaklar için 5–30 saniyelik polling, günlük kaynaklar için 15–30 dakikalık aralıklar yeterlidir.
- Residential proxy'ler finansal sitelerde zorunludur: Datacenter IP'leri ASN filtreleriyle hızla engellenir.
- Düzenleyici uyumu erken planlayın: SEC, MiFID II ve borsa lisans gereksinimleri, teknik maliyetlerden fazla olabilir.
- EDGAR'ın API'sini kullanın: EDGAR için HTML kazıma yerine yapılandırılmış JSON API tercih edin; ancak rate limit'e saygı gösterin.
- Gecikme ve güvenilirlik arasındaki dengeyi yönetin: Residential proxy'ler datacenter'a göre 50–200 ms daha yavaş olabilir; ancak engellenme riskini dramatik biçimde azaltır.
Finansal veri kazıma pipeline'ınızı ölçeklendirmeye hazır mısınız? ProxyHat'ın residential ağı, web kazıma kullanım senaryosunda detaylandırıldığı gibi, anti-bot duvarlarını aşmak ve coğrafi kısıtlamaları atlamak için tasarlanmıştır. SERP izleme ve finansal haber akışı gibi düşük gecikmeli iş yükleri için de uygun altyapı sunar.






