2017-04-13 75 views
0

我正在研究一個Node.js項目,我需要用Bloomberg API定價一些股票。我發現這個API有一個NPM包,所以我安裝了它並根據https://github.com/bloomberg/blpapi-node開始測試,但是我沒有收到任何迴應。我沒有得到Node.js Bloomberg API包(blpapi)的響應

這是我的代碼:

var blpapi = require('blpapi'); 

var bloombergPricing = function() 
{ 
    var session = new blpapi.Session({ host: '127.0.0.1', port: 8194 }); 

    session.on('SessionStarted', function(m) { 
     console.log('bonjou'); 
    session.openService('//blp/mktdata', 1); 

    }); 

    var securities = [ 
    { security: 'AAPL US Equity', correlation: 0, fields: ['LAST_TRADE'] }, 
    { security: 'GOOG US Equity', correlation: 1, fields: ['LAST_TRADE'] } 
]; 

session.on('ServiceOpened', function(m) { 
    console.log(session); 
    if (m.correlations[0].value == service_id) { 
     console.log(session); 
     session.subscribe(securities); 
    } 
}); 

session.on('MarketDataEvents', function(m) { 
    if (m.data.hasOwnProperty('LAST_TRADE')) { 
     console.log(securities[m.correlations[0].value].security, 
        'LAST_TRADE', m.data.LAST_TRADE); 
    } 
}); 

} 

是這個包還工作嗎?如果不是,怎麼可能從Node.js調用Java Bloomberg API?

非常感謝。

+0

你看到在控制檯的任何錯誤? (在開發者控制檯下) –

+0

我的節點控制檯沒有任何東西! – Everblack

回答

0

我想你錯過了一個session.start();在函數結束時。這將觸發連接。

編輯,包括代碼爲我的作品:

var blpapi = require('blpapi'); 

var bloombergPricing = function() 
{ 
    var session = new blpapi.Session({ host: '127.0.0.1', port: 8194 }); 

    session.on('SessionStarted', function(m) { 
    console.log('bonjou'); 
    session.openService('//blp/mktdata', 1); 

    }); 

    var securities = [ 
    { security: 'AAPL US Equity', correlation: 0, fields: ['LAST_TRADE'] }, 
    { security: 'GOOG US Equity', correlation: 1, fields: ['LAST_TRADE'] } 
    ]; 

    session.on('ServiceOpened', function(m) { 
     console.log(session); 
     if (m.correlations[0].value == 1) { 
      console.log(session); 
      session.subscribe(securities); 
     } 
    }); 

    session.on('MarketDataEvents', function(m) { 

     if (m.data.hasOwnProperty('LAST_TRADE')) { 
     console.log(securities[m.correlations[0].value].security, 
        'LAST_TRADE', m.data.LAST_TRADE); 
     } 
    }); 

    session.start(); 
} 

bloombergPricing(); 
+0

謝謝你的幫助。添加session.start();指令,我得到這個錯誤: 13APR2017_12:08:59.730 9785:2984225600錯誤blpapi_platformtransporttcp.cpp:671 blpapi.session.transporttcp。{1}。<127.0.0.1:8194>連接失敗 – Everblack

+0

這聽起來像沒有通信服務器在端口8194上的本地主機上運行。您需要運行bbcomm.exe(用於DesktopAPI或ServerAPI)。如果bbcomm沒有運行,您可能需要手動觸發它(通過開始 - >所有程序中的彭博菜單) – amkingTRP

+0

事實上,我沒有安裝任何東西。我該怎麼辦?我在Ubuntu 16.04 32位。 – Everblack