Bloomberg API'sini Nasıl Kullanılır

Bu eğitim, Bloomberg API'sini kullanarak finansal verileri ayarlama, bağlama ve çıkarma adımlarını anlatır.

Efe Demir

Efe Demir

5 June 2025

Bloomberg API'sini Nasıl Kullanılır

Bloomberg API (Uygulama Programlama Arayüzü), Bloomberg'in kapsamlı finansal veri hizmetlerine programlı erişim sağlayan güçlü bir araçtır. Finans kuruluşları, hedge fonları, varlık yöneticileri ve yazılım geliştiriciler için Bloomberg API, gerçek zamanlı piyasa verilerini, geçmiş bilgilerini ve referans verilerini doğrudan özel uygulamalara, ticaret sistemlerine ve analitik araçlara entegre etmenin bir yolunu sunar.

Bloomberg, farklı programlama dillerine ve kullanım durumlarına uyum sağlamak için çeşitli API sürümleri sunar:

Bu eğitim, API'lerini kullanarak Bloomberg'in finansal ekosisteminden veri ayarlama, bağlama ve verimli bir şekilde çıkarma konusunda temel adımlarda size rehberlik edecektir.


Bloomberg API uygulamasını incelemeden önce, API test platformunuz olarak Apidog'u ayarlamayı düşünebilirsiniz.

Apidog, özellikle API geliştirme, test etme ve dokümantasyon için tasarlanmış gelişmiş özelliklerle Postman'e kapsamlı bir alternatif sunar. Sezgisel arayüzü ve güçlü işbirliği araçları, Bloomberg API entegrasyon iş akışınızı önemli ölçüde kolaylaştırabilir.

Otomatik test, sahte sunucular ve daha iyi ekip işbirliği yetenekleri gibi özelliklerle Apidog, karmaşık finansal API'lerle çalışırken özellikle değerlidir.

button

Adım 1: Python için Bloomberg API'sini Kurma

Önkoşullar

Python'da Bloomberg API'sine başlamadan önce, şunlara sahip olduğunuzdan emin olun:

Yükleme Süreci

Bloomberg Python API Paketini Yükleyin:
Python için Bloomberg API'si pip kullanılarak yüklenebilir:

pip install blpapi

Bu, temel C++ BLPAPI kitaplığıyla iletişim kuran resmi Bloomberg API Python sarmalayıcısını yükleyecektir.

Bloomberg Hizmetlerini Doğrulayın:
Devam etmeden önce, Bloomberg hizmetlerinin makinenizde çalıştığından emin olun. Masaüstü API'sini kullanıyorsanız, Bloomberg Terminal'in çalışıyor olması ve oturum açmış olmanız gerekir.

Ortam Değişkenlerini Ayarlayın:
Bazı yapılandırmalarda, Python'un Bloomberg kitaplıklarını bulmasına yardımcı olmak için belirli ortam değişkenleri ayarlamanız gerekebilir:

import os
os.environ['BLPAPI_ROOT'] = 'C:\\blp\\API'  # İhtiyaca göre yolu ayarlayın

Yüklemeyi Doğrulayın:
API'nin doğru yüklendiğinden emin olmak için basit bir test programı oluşturun:

import blpapi
print(f"Bloomberg API version: {blpapi.VERSION_MAJOR}.{blpapi.VERSION_MINOR}.{blpapi.VERSION_PATCH}")

Bu, hatalar olmadan çalışırsa, Bloomberg API Python yüklemeniz doğru çalışıyor demektir.

Adım 2: Bloomberg API Mimarisi'ni Anlama

Koda dalmadan önce, Bloomberg API mimarisinin temel bileşenlerini anlamak önemlidir:

Temel Bileşenler

  1. Oturum: Bloomberg hizmetleriyle iletişim kurmak için birincil arayüz
  2. Hizmet: Belirli bir Bloomberg hizmetini temsil eder (örneğin, referans verileri için //blp/refdata)
  3. İstek: Belirli verileri almak için Bloomberg'e gönderilen bir mesaj
  4. Olay: İsteklere veya aboneliklere yanıt olarak Bloomberg'den döndürülen bilgiler
  5. Mesaj: Olaylar içindeki gerçek veri kapsayıcısı
  6. Öğe: Basit değerler veya karmaşık iç içe yapılar olabilen mesajlar içindeki veri alanları

Hizmet Türleri

Bloomberg API, çeşitli hizmetlere erişim sağlar:

Adım 3: Bağlantı Kurma

Herhangi bir Bloomberg API uygulamasının temeli, Bloomberg hizmetlerine uygun bir bağlantı kurmaktır.

Bağlantı Seçenekleri

Bloomberg API, çeşitli bağlantı yöntemleri sunar:

Temel Bağlantı Örneği

import blpapi

def create_session():
    """Bloomberg API'sine bir bağlantı kurun."""
    # Oturum seçeneklerini başlat
    session_options = blpapi.SessionOptions()
    
    # Masaüstü API'si için bağlantı parametrelerini yapılandırın
    session_options.setServerHost("localhost")
    session_options.setServerPort(8194)  # Bloomberg Masaüstü API'si için Standart bağlantı noktası
    
    # İsteğe bağlı: B-PIPE için kimlik doğrulama ayrıntılarını ayarlayın
    # session_options.setAuthenticationOptions("AuthenticationMode=APPLICATION_ONLY;ApplicationAuthenticationType=APPNAME_AND_KEY;ApplicationName=YourAppName")
    
    # Oturumu oluşturun ve başlatın
    session = blpapi.Session(session_options)
    if not session.start():
        print("Oturum başlatılamadı.")
        return None
    
    print("Bloomberg API'sine başarıyla bağlandı")
    return session

# Oturumu oluştur
session = create_session()
if session is None:
    exit()

Bağlantı Güvenliği ve Kimlik Doğrulama

B-PIPE bağlantıları için güvenlik çok önemlidir. Kimlik doğrulama süreci tipik olarak şunları içerir:

def authenticate_session(session):
    """B-PIPE erişimi için bir oturumu kimlik doğrulayın."""
    # Kimlik doğrulama hizmetini aç
    if not session.openService("//blp/apiauth"):
        print("//blp/apiauth hizmeti açılamadı")
        return False
    
    auth_service = session.getService("//blp/apiauth")
    
    # Yetkilendirme isteği oluştur
    auth_request = auth_service.createAuthorizationRequest()
    auth_request.set("uuid", "YOUR_UUID")
    auth_request.set("applicationName", "YOUR_APP_NAME")
    
    # İsteğe bağlı: Dizin hizmeti araması için IP adresleri ekleyin
    ip_addresses = auth_request.getElement("ipAddresses")
    ip_addresses.appendValue("YOUR_IP_ADDRESS")
    
    # İstek gönder
    identity = session.createIdentity()
    session.sendAuthorizationRequest(auth_request, identity)
    
    # Yetkilendirme yanıtını işleyin
    while True:
        event = session.nextEvent(500)
        
        if event.eventType() == blpapi.Event.RESPONSE or \
           event.eventType() == blpapi.Event.PARTIAL_RESPONSE or \
           event.eventType() == blpapi.Event.REQUEST_STATUS:
            for msg in event:
                if msg.messageType() == blpapi.Name("AuthorizationSuccess"):
                    print("Yetkilendirme başarılı")
                    return True
                elif msg.messageType() == blpapi.Name("AuthorizationFailure"):
                    print("Yetkilendirme başarısız")
                    return False
        
        if event.eventType() == blpapi.Event.RESPONSE:
            break
    
    return False

Adım 4: Temel Veri İstekleri Yapma

Bağlandıktan sonra, çeşitli istek türlerini kullanarak Bloomberg'den veri istemeye başlayabilirsiniz.

Bir Hizmet Açma

İstek yapmadan önce, uygun hizmeti açmanız gerekir:

def open_service(session, service_name):
    """Bir Bloomberg hizmeti açın."""
    if not session.openService(service_name):
        print(f"{service_name} hizmeti açılamadı")
        return None
    
    return session.getService(service_name)

# Referans veri hizmetini aç
refdata_service = open_service(session, "//blp/refdata")
if refdata_service is None:
    session.stop()
    exit()

Referans Veri İsteği

Referans veri istekleri, menkul kıymetler için statik veya hesaplanmış alanları almanızı sağlar.

def get_reference_data(refdata_service, securities, fields):
    """Belirtilen menkul kıymetler ve alanlar için referans verilerini alın."""
    # İstek oluştur
    request = refdata_service.createRequest("ReferenceDataRequest")
    
    # İsteğe menkul kıymetler ekleyin
    for security in securities:
        request.append("securities", security)
    
    # İsteğe alanlar ekleyin
    for field in fields:
        request.append("fields", field)
    
    # İsteğe bağlı: Geçersiz kılmalar ekleyin
    # overrides = request.getElement("overrides")
    # override1 = overrides.appendElement()
    # override1.setElement("fieldId", "SETTLE_DT")
    # override1.setElement("value", "20230630")
    
    print("Referans Veri İsteği Gönderiliyor:")
    print(f"  Menkul Kıymetler: {securities}")
    print(f"  Alanlar: {fields}")
    
    # İsteği gönder
    session.sendRequest(request)
    
    # Yanıtı işleyin
    results = {}
    done = False
    
    while not done:
        event = session.nextEvent(500)  # Milisaniye cinsinden zaman aşımı
        
        for msg in event:
            if msg.messageType() == blpapi.Name("ReferenceDataResponse"):
                security_data_array = msg.getElement("securityData")
                
                for security_data in security_data_array.values():
                    security = security_data.getElementAsString("security")
                    
                    # Menkul kıymet hatalarını kontrol edin
                    if security_data.hasElement("securityError"):
                        error_info = security_data.getElement("securityError")
                        error_message = error_info.getElementAsString("message")
                        results[security] = {"error": error_message}
                        continue
                    
                    # Alan verilerini işleyin
                    field_data = security_data.getElement("fieldData")
                    field_values = {}
                    
                    # Mevcut tüm alanları çıkarın
                    for field in fields:
                        if field_data.hasElement(field):
                            field_value = None
                            
                            # Farklı veri türlerini işleyin
                            field_element = field_data.getElement(field)
                            if field_element.datatype() == blpapi.DataType.FLOAT64:
                                field_value = field_data.getElementAsFloat(field)
                            elif field_element.datatype() == blpapi.DataType.INT32:
                                field_value = field_data.getElementAsInt(field)
                            elif field_element.datatype() == blpapi.DataType.STRING:
                                field_value = field_data.getElementAsString(field)
                            elif field_element.datatype() == blpapi.DataType.DATE:
                                field_value = field_data.getElementAsDatetime(field).toString()
                            else:
                                field_value = str(field_data.getElement(field))
                            
                            field_values[field] = field_value
                        else:
                            field_values[field] = "N/A"
                    
                    results[security] = field_values
                    
                    # Alan hatalarını kontrol edin
                    if security_data.hasElement("fieldExceptions"):
                        field_exceptions = security_data.getElement("fieldExceptions")
                        for i in range(field_exceptions.numValues()):
                            field_exception = field_exceptions.getValue(i)
                            field_id = field_exception.getElementAsString("fieldId")
                            error_info = field_exception.getElement("errorInfo")
                            error_message = error_info.getElementAsString("message")
                            
                            # Sonuçlara hata bilgisi ekleyin
                            if "field_errors" not in results[security]:
                                results[security]["field_errors"] = {}
                            results[security]["field_errors"][field_id] = error_message
        
        # Tam yanıtı alıp almadığımızı kontrol edin
        if event.eventType() == blpapi.Event.RESPONSE:
            done = True
    
    return results

# Örnek kullanım
securities = ["AAPL US Equity", "MSFT US Equity", "IBM US Equity"]
fields = ["PX_LAST", "NAME", "MARKET_CAP", "PE_RATIO", "DIVIDEND_YIELD"]

reference_data = get_reference_data(refdata_service, securities, fields)

# Sonuçları yazdır
for security, data in reference_data.items():
    print(f"\nMenkul Kıymet: {security}")
    if "error" in data:
        print(f"  Hata: {data['error']}")
        continue
    
    for field, value in data.items():
        if field != "field_errors":
            print(f"  {field}: {value}")
    
    if "field_errors" in data:
        print("  Alan Hataları:")
        for field, error in data["field_errors"].items():
            print(f"    {field}: {error}")

Adım 5: Geçmiş Verilerle Çalışma

Geçmiş veri istekleri, bir veya daha fazla menkul kıymet için zaman serisi verilerini almanızı sağlar.

def get_historical_data(refdata_service, security, fields, start_date, end_date, periodicity="DAILY"):
    """Belirtilen menkul kıymet ve alanlar için geçmiş verileri alın."""
    # İstek oluştur
    request = refdata_service.createRequest("HistoricalDataRequest")
    
    # İstek parametrelerini ayarlayın
    request.set("securities", security)
    for field in fields:
        request.append("fields", field)
    
    request.set("startDate", start_date)
    request.set("endDate", end_date)
    request.set("periodicitySelection", periodicity)
    
    # İsteğe bağlı parametreler
    # request.set("maxDataPoints", 100)  # Veri noktası sayısını sınırlayın
    # request.set("returnEids", True)    # Öğe tanımlayıcılarını dahil et
    # request.set("adjustmentNormal", True)  # Normal kurumsal eylemler için ayarlayın
    # request.set("adjustmentAbnormal", True)  # Anormal kurumsal eylemler için ayarlayın
    # request.set("adjustmentSplit", True)  # Bölmeler için ayarlayın
    
    print(f"{security} için {start_date} - {end_date} tarihleri arasındaki geçmiş veriler isteniyor")
    
    # İsteği gönder
    session.sendRequest(request)
    
    # Yanıtı işleyin
    time_series = []
    done = False
    
    while not done:
        event = session.nextEvent(500)
        
        for msg in event:
            if msg.messageType() == blpapi.Name("HistoricalDataResponse"):
                security_data = msg.getElement("securityData")
                security_name = security_data.getElementAsString("security")
                
                # Menkul kıymet hatalarını kontrol edin
                if security_data.hasElement("securityError"):
                    error_info = security_data.getElement("securityError")
                    error_message = error_info.getElementAsString("message")
                    print(f"{security_name} için hata: {error_message}")
                    return []
                
                # Alan verilerini işleyin
                field_data = security_data.getElement("fieldData")
                
                for i in range(field_data.numValues()):
                    field_datum = field_data.getValue(i)
                    data_point = {"date": field_datum.getElementAsDatetime("date").toString()}
                    
                    # İstenen tüm alanları çıkarın
                    for field in fields:
                        if field_datum.hasElement(field):
                            data_point[field] = field_datum.getElementAsFloat(field)
                        else:
                            data_point[field] = None
                    
                    time_series.append(data_point)
                
                # Alan hatalarını kontrol edin
                if security_data.hasElement("fieldExceptions"):
                    field_exceptions = security_data.getElement("fieldExceptions")
                    for i in range(field_exceptions.numValues()):
                        field_exception = field_exceptions.getValue(i)
                        field_id = field_exception.getElementAsString("fieldId")
                        error_info = field_exception.getElement("errorInfo")
                        error_message = error_info.getElementAsString("message")
                        print(f"{field_id} için alan hatası: {error_message}")
        
        # Tam yanıtı alıp almadığımızı kontrol edin
        if event.eventType() == blpapi.Event.RESPONSE:
            done = True
    
    return time_series

# Örnek kullanım
security = "IBM US Equity"
fields = ["PX_LAST", "OPEN", "HIGH", "LOW", "VOLUME"]
start_date = "20220101"
end_date = "20221231"

historical_data = get_historical_data(refdata_service, security, fields, start_date, end_date)

# İlk birkaç veri noktasını yazdır
print(f"\n{security} için geçmiş veriler:")
for i, data_point in enumerate(historical_data[:5]):
    print(f"  {data_point['date']}:")
    for field in fields:
        print(f"    {field}: {data_point.get(field)}")
print(f"  ... (toplam {len(historical_data)} veri noktası)")

Adım 6: Gerçek Zamanlı Piyasa Verilerine Abone Olma

Gerçek zamanlı güncellemeler gerektiren uygulamalar için, piyasa verilerine abone olabilirsiniz:

def subscribe_market_data(session, securities, fields):
    """Belirtilen menkul kıymetler ve alanlar için gerçek zamanlı piyasa verilerine abone olun."""
    # Piyasa verileri hizmetini aç
    if not session.openService("//blp/mktdata"):
        print("//blp/mktdata hizmeti açılamadı")
        return False
    
    # Abonelik listesi oluştur
    subscriptions = blpapi.SubscriptionList()
    
    # Aboneliğe menkul kıymetler ekleyin
    for security in securities:
        # Alanları virgülle ayrılmış dize olarak biçimlendirin
        fields_str = ",".join(fields)
        # Her menkul kıymet için benzersiz bir korelasyon kimliği oluşturun
        cid = blpapi.CorrelationId(security)
        # Abonelik listesine ekle
        subscriptions.add(security, fields_str, "", cid)
    
    # Abone ol
    session.subscribe(subscriptions)
    print(f"{len(securities)} menkul kıymet için piyasa verilerine abone olundu")
    return subscriptions

def process_market_data(session, max_events=100):
    """Gelen piyasa verileri olaylarını işleyin."""
    # En son değerleri takip edin
    latest_values = {}
    
    try:
        counter = 0
        while counter < max_events:
            event = session.nextEvent(500)
            
            if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA:
                for msg in event:
                    topic = msg.correlationId().value()
                    
                    if topic not in latest_values:
                        latest_values[topic] = {}
                    
                    # Mesajdaki tüm alanları işleyin
                    for field in msg.asElement().elements():
                        field_name = field.name()
                        
                        # Yönetimsel alanları atla
                        if field_name in ["TIMESTAMP", "MESSAGE_TYPE"]:
                            continue
                            
                        # Veri türüne göre değeri çıkarın
                        if field.datatype() == blpapi.DataType.FLOAT64:
                            value = field.getValueAsFloat()
                        elif field.datatype() == blpapi.DataType.INT32:
                            value = field.getValueAsInt()
                        elif field.datatype() == blpapi.DataType.STRING:
                            value = field.getValueAsString()
                        else:
                            value = str(field.getValue())
                        
                        latest_values[topic][field_name] = value
                        print(f"{topic} {field_name}: {value}")
            
            counter += 1
    except KeyboardInterrupt:
        print("Abonelik işleme kesildi")
    
    return latest_values

# Örnek kullanım
securities = ["IBM US Equity", "AAPL US Equity", "MSFT US Equity"]
fields = ["LAST_PRICE", "BID", "ASK", "VOLUME"]

subscriptions = subscribe_market_data(session, securities, fields)
if subscriptions:
    latest_values = process_market_data(session, max_events=50)
    
    # Her menkul kıymet için en son değerleri yazdır
    print("\nEn son değerler:")
    for security, values in latest_values.items():
        print(f"  {security}:")
        for field, value in values.items():
            print(f"    {field}: {value}")
    
    # İşiniz bittiğinde aboneliği iptal edin
    session.unsubscribe(subscriptions)

Adım 7: Karmaşık Veri Türleri ve Toplu Verilerle Çalışma

Bloomberg API, karmaşık veri yapılarını ve büyük veri kümelerini verimli bir şekilde işleyebilir.

Gün İçi Çubuk Verileri

Gün içi çubuk verileri, belirli aralıklar boyunca toplanan fiyat ve hacim bilgilerini sağlar:

def get_intraday_bars(refdata_service, security, event_type, interval, start_time, end_time):
    """Gün içi çubuk verilerini alın."""
    # İstek oluştur
    request = refdata_service.createRequest("IntradayBarRequest")
    
    # Parametreleri ayarlayın
    request.set("security", security)
    request.set("eventType", event_type)  # TRADE, BID, ASK, BID_BEST, ASK_BEST, vb.
    request.set("interval", interval)      # Dakika cinsinden: 1, 5, 15, 30, 60, vb.
    request.set("startDateTime", start_time)
    request.set("endDateTime", end_time)
    
    # İstek gönder
    session.sendRequest(request)
    
    # Yanıtı işleyin
    bars = []
    done = False
    
    while not done:
        event = session.nextEvent(500)
        
        for msg in event:
            if msg.messageType() == blpapi.Name("IntradayBarResponse"):
                bar_data = msg.getElement("barData")
                
                if bar_data.hasElement("barTickData"):
                    tick_data = bar_data.getElement("barTickData")
                    
                    for i in range(tick_data.numValues()):
                        bar = tick_data.getValue(i)
                        
                        # Çubuk verilerini çıkarın
                        time = bar.getElementAsDatetime("time").toString()
                        open_price = bar.getElementAsFloat("open")
                        high = bar.getElementAsFloat("high")
                        low = bar.getElementAsFloat("low")
                        close = bar.getElementAsFloat("close")
                        volume = bar.getElementAsInt("volume")
                        num_events = bar.getElementAsInt("numEvents")
                        
                        bars.append({
                            "time": time,
                            "open": open_price,
                            "high": high,
                            "low": low,
                            "close": close,
                            "volume": volume,
                            "numEvents": num_events
                        })
        
        if event.eventType() == blpapi.Event.RESPONSE:
            done = True
    
    return bars

# Örnek kullanım
security = "AAPL US Equity"
event_type = "TRADE"
interval = 5  # 5 dakikalık çubuklar
start_time = "2023-06-01T09:30:00"
end_time = "2023-06-01T16:30:00"

intraday_bars = get_intraday_bars(refdata_service, security, event_type, interval, start_time, end_time)

# İlk birkaç çubuğu yazdır
print(f"\n{security} için gün içi {interval}-dakikalık çubuklar:")
for i, bar in enumerate(intraday_bars[:5]):
    print(f"  {bar['time']}:")
    print(f"    OHLC: {bar['open']}/{bar['high']}/{bar['low']}/{bar['close']}")
    print(f"    Hacim: {bar['volume']} ({bar['numEvents']} olay)")
print(f"  ... (toplam {len(intraday_bars)} çubuk)")

Adım 8: Gelişmiş İşlevsellik - Toplu Veri İstekleri ve Portföy Analizi

Bloomberg API, gelişmiş analizler ve toplu veri alımı sağlar:

Portföy Analizi

def run_portfolio_analysis(refdata_service, portfolio_data, risk_model="BPAM"):
    """Bloomberg PORT API'sini kullanarak portföy analizi çalıştırın."""
    # İstek oluştur
    request = refdata_service.createRequest("PortfolioDataRequest")
    
    # Genel parametreleri ayarlayın
    request.set("riskModel", risk_model)
    
    # Portföy pozisyonları ekleyin
    positions = request.getElement("positions")
    for position in portfolio_data:
        pos_element = positions.appendElement()
        pos_element.setElement("security", position["security"])
        pos_element.setElement("weight", position["weight"])
    
    # Analiz edilecek risk faktörlerini ekleyin
    analyses = request.getElement("analyses")
    analyses.appendValue("RISK_FACTOR_EXPOSURES")
    analyses.appendValue("TRACKING_ERROR_CONTRIBUTION")
    
    # İstek gönder
    session.sendRequest(request)
    
    # Yanıtı işleyin
    # (Not: Gerçek yanıt işleme daha karmaşık olacaktır)
    results = {}
    done = False
    
    while not done:
        event = session.nextEvent(500)
        # Olay verilerini işleyin...
        
        if event.eventType() == blpapi.Event.RESPONSE:
            done = True
    
    return results

Adım 9: Hata İşleme ve Hata Ayıklama

Sağlam Bloomberg API uygulamaları kapsamlı hata işleme gerektirir:

def handle_bloomberg_exceptions(func):
    """Bloomberg API istisnalarını işlemek için dekoratör."""
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except blpapi.InvalidRequestException as e:
            print(f"Geçersiz İstek Hatası: {e}")
        except blpapi.InvalidConversionException as e:
            print(f"Geçersiz Tür Dönüşüm Hatası: {e}")
        except blpapi.NotFoundException as e:
            print(f"Öğe Bulunamadı Hatası: {e}")
        except blpapi.Exception as e:
            print(f"Bloomberg API Hatası: {e}")
        except Exception as e:
            print(f"Beklenmeyen hata: {e}")
        return None
    return wrapper

@handle_bloomberg_exceptions
def get_safe_reference_data(refdata_service, securities, fields):
    # Yerleşik hata işlemeyle uygulama
    pass

Adım 10: Performans Optimizasyonu ve En İyi Uygulamalar

Bloomberg API kullanan üretim sistemleri için:

İstek Toplu İşlemi

def batch_security_requests(securities, batch_size=50):
    """Büyük bir menkul kıymet listesini daha küçük gruplara ayırın."""
    for i in range(0, len(securities), batch_size):
        yield securities[i:i + batch_size]

# Büyük bir menkul kıymet listesini toplu olarak işleyin
all_securities = ["SECURITY1", "SECURITY2", ..., "SECURITY1000"]
all_results = {}

for batch in batch_security_requests(all_securities):
    batch_results = get_reference_data(refdata_service, batch, fields)
    all_results.update(batch_results)

Adım 11: Kaynakları Temizleyin

İşiniz bittiğinde her zaman bağlantıları düzgün bir şekilde kapatın:

def clean_up(session, subscriptions=None):
    """Bloomberg API kaynaklarını düzgün bir şekilde temizleyin."""
    try:
        # Etkin aboneliklerden aboneliği iptal edin
        if subscriptions:
            session.unsubscribe(subscriptions)
        
        # Oturumu durdurun
        if session:
            session.stop()
        
        print("Bloomberg API oturumu kapatıldı")
        return True
    except Exception as e:
        print(f"Bloomberg oturumunu kapatırken hata: {e}")
        return False

# Uygulamanızın sonunda
clean_up(session, subscriptions)

Sonuç

Python ile Bloomberg API, dünyanın en kapsamlı finansal veri platformlarından birine güçlü erişim sağlar. Bu eğitim, temel bağlantı ve veri alımından gelişmiş gerçek zamanlı aboneliklere ve portföy analizine kadar API ile çalışmanın temel yönlerini kapsamıştır.

Unutulmaması gereken önemli noktalar:

  1. Bağlantıları her zaman düzgün bir şekilde başlatın ve kapatın
  2. Daha iyi performans için benzer istekleri toplu olarak işleyin
  3. Kapsamlı hata işleme uygulayın
  4. Oran sınırlarını ve veri yetkilerini göz önünde bulundurun
  5. Uygun olduğunda statik verileri önbelleğe alın
  6. Uygun veri türlerini ve dönüştürme yöntemlerini kullanın

Kurumsal düzeydeki uygulamalar için, misyon açısından kritik sistemler için özel bağlantı seçenekleri ve daha yüksek verim

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin