0

我正在开发一个 Node.js 项目,我需要使用 Bloomberg API 对一些股票进行定价。我发现这个 API 有一个 NPM 包,所以我安装了它并根据https://github.com/bloomberg/blpapi-node开始测试它,但我没有得到任何响应。

这是我的代码:

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?

非常感谢。

4

1 回答 1

1

我认为您缺少 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();
于 2017-04-13T10:34:17.777 回答