ABD hisse senetlerine ait gerçek zamanlı WebSocket verileriyle çalışırken, fiyat göstergelerinizin neden olağandışı hareket ettiğini hiç merak ettiniz mi? Piyasaların kapalı olduğu saatlerde oluşan veriler, algoritmalarınızın performansını doğrudan etkileyebilir. Neyse ki, bu sorunun üstesinden gelmek için basit bir Python çözümü mevcut. İşte ABD piyasalarının farklı oturumlarına ait verileri nasıl tanımlayacağınıza dair adım adım rehber.
ABD Piyasası Oturumlarının Temel Özellikleri
ABD hisse senetleri piyasasının üç ana oturumunda farklı fiyat ve hacim dinamikleri gözlemlenir. Bu oturumları doğru şekilde ayırt etmek, veri temizliği ve algoritmik stratejiler için kritik önem taşır:
- Ön Piyasa (Pre-market): 04:00 – 09:30 EST
Düşük hacimli ve dalgalı fiyat hareketleriyle karakterize edilir. Genellikle kurumsal haberlere tepki olarak ortaya çıkar.
- Normal Oturum (Regular Hours): 09:30 – 16:00 EST
Yüksek likidite ve istikrarlı fiyat akışıyla en yoğun işlemlerin gerçekleştiği dönemdir.
- Kapanış Sonrası (After-hours): 16:00 – 20:00 EST
Haber akışına bağlı olarak yüksek volatiliteye sahip olabilir, ancak hacim genellikle normal oturuma kıyasla daha düşüktür.
Yöntem 1: Zaman Damgasını ABD Doğu Saatine Dönüştürme
Çoğu veri sağlayıcısı, zaman damgalarını UTC olarak gönderir. Bu bilgiyi ABD Doğu Saati’ne (EST) çevirerek oturumları sınıflandırabilirsiniz. İşte basit bir Python uygulaması:
from datetime import datetime
import pytz
# ABD Doğu Saati bölgesini tanımlayın
us_eastern = pytz.timezone('US/Eastern')
def oturum_belirle(zaman_damgasi):
# UTC zaman damgasını ABD Doğu Saati'ne çevirin
yerel_zaman = datetime.fromtimestamp(zaman_damgasi, us_eastern)
# Ön piyasa: 04:00 – 09:30
if yerel_zaman.hour < 9 or (yerel_zaman.hour == 9 and yerel_zaman.minute < 30):
return "ön_piyasa"
# Normal oturum: 09:30 – 16:00
elif yerel_zaman.hour < 16:
return "normal"
# Kapanış sonrası: 16:00 – 20:00
else:
return "kapanis_sonrasi"Bu yöntem, herhangi bir üçüncü taraf kütüphanesine ihtiyaç duymadan doğrudan yerel zaman dilimine göre sınıflandırma yapmanızı sağlar. Önemli olan, zaman damgasının doğru şekilde dönüştürülmesidir.
Yöntem 2: Sağlayıcıdan Gelen Oturum Bilgisini Kullanma
Bazı veri sağlayıcıları, sessionType veya benzeri bir alanla birlikte verileri gönderir. Bu durumda, zaman dilimi dönüştürmeye gerek kalmadan doğrudan oturum bilgisi kullanılabilir. Ancak, oturum geçiş saatlerinde (örneğin 09:30 veya 16:00) hassasiyeti kontrol etmek önemlidir. Yanlış sınıflandırmaları önlemek için sınır koşullarını test edin.
Gerçek Zamanlı WebSocket Entegrasyonu
Gerçek zamanlı veri akışında, her yeni fiyat güncellemesiyle birlikte oturum bilgisi de kaydedilebilir. Aşağıdaki örnekte, AllTick gibi bir WebSocket sağlayıcısından gelen verileri anında sınıflandıran bir sistem gösterilmektedir:
import websocket
import json
from datetime import datetime
import pytz
# ABD Doğu Saati bölgesini tanımlayın
us_eastern = pytz.timezone('US/Eastern')
def oturum_belirle(zaman_damgasi):
yerel_zaman = datetime.fromtimestamp(zaman_damgasi, us_eastern)
if yerel_zaman.hour < 9 or (yerel_zaman.hour == 9 and yerel_zaman.minute < 30):
return "ön_piyasa"
elif yerel_zaman.hour < 16:
return "normal"
else:
return "kapanis_sonrasi"
def mesaj_isleme(ws, mesaj):
veri = json.loads(mesaj)
oturum_tipi = oturum_belirle(veri["timestamp"])
# Sembol, oturum tipi, fiyat ve hacmi ekrana yazdırın
print(f"{veri['symbol']} | {oturum_tipi} | {veri['price']} | {veri['volume']}")
# WebSocket bağlantısını başlatın
ws = websocket.WebSocketApp(
"wss://ws.alltick.co/stock",
on_message=mesaj_isleme
)
ws.run_forever()Bu yaklaşım, verilerin işlenmesi sırasında oturum bilgilerini anında etiketleyerek, algoritmalarınızın yalnızca ilgili piyasa saatlerinde çalışmasını sağlar. Böylece gereksiz gürültüden arındırılmış, daha güvenilir sinyaller elde edersiniz.
Veri İşleme Verimliliği ve Önemi
Oturum sınıflandırmanın gerçek zamanlı veri akışına entegre edilmesi, sadece birkaç satırlık bir kod değişikliğine mal olurken, algoritmik ticaret stratejilerinizin doğruluğunu önemli ölçüde artırır. Örneğin, hareketli ortalama hesaplamaları yaparken yalnızca normal oturum verilerini kullanabilir, ön piyasa ve kapanış sonrası verilerinden kaynaklanan sapmaları ortadan kaldırabilirsiniz. Küçük bir hesaplama maliyetinin uzun vadede büyük avantajlar sağlayacağına şüphe yok.
Verilerinizi doğru şekilde sınıflandırdığınızda, modelinizin hem eğitim hem de canlı ortamda daha tutarlı performans göstermesi kaçınılmazdır. ABD hisse senetleriyle çalışırken bu detaylara dikkat etmek, algoritmik ticaret dünyasında önemli bir rekabet avantajı yaratabilir.
Yapay zeka özeti
ABD piyasalarının farklı oturum saatlerine ait verileri Python kullanarak nasıl ayırt edebilirsiniz? Ön piyasa, normal ve kapanış sonrası oturumlarını WebSocket verilerinden sınıflandırın.