3

Bloomberg API を使用してデータを取得しています。現在、開発者ガイドに従って、典型的な方法でデータを取得する 3 つのプロセスがあります。何かのようなもの:

Service refDataService = session.getService("//blp/refdata");
Request request = refDataService.createRequest("ReferenceDataRequest");
request.append("securities", "IBM US Equity");
request.append("fields", "PX_LAST");
cid = session.sendRequest(request, null);

それはうまくいきます。ここで、ロジックを更新キューのようなものに拡張したいと思います。各プロセスがリクエストを更新キュー プロセスに送信し、更新キュー プロセスがセッションとサービスを作成してからリクエストを送信するようにしたいと考えています。ただし、サービスなしでリクエストを作成する方法がわかりません。また、リクエスト タイプ (referenceData、履歴データ、日中のティック) は非常に多様であり、そのような異なるプロパティを持っているため、更新キューが読み取ることができるコンテナー オブジェクトを作成することは簡単ではありません。

これを達成する方法についてのアイデアはありますか? 私の最終的な目標は、リクエストのリストを取得し、重複を削除し、30 秒間隔でデータを取得するためにブルームバーグに送信するプロセス (更新キューと呼んでいます) を持つことです。

ありがとうございました!

4

1 に答える 1

1

jBloombergライブラリを更新して、ティックデータを含めました。キューとして機能するBloombergSessionにさまざまなタイプのクエリを送信できます。したがって、さまざまなタイプのリクエストを送信する場合は、次のように記述できます。

RequestBuilder<IntradayTickData> tickRequest =
    new IntradayTickRequestBuilder("SPX Index",
        DateTime.now().minusHours(2),
        DateTime.now());

RequestBuilder<IntradayBarData> barRequest =
    new IntradayBarRequestBuilder("SPX Index",
        DateTime.now().minusHours(2),
        DateTime.now())
        .period(5, TimeUnit.MINUTES);

RequestBuilder<ReferenceData> refRequest =
    new ReferenceRequestBuilder("SPX Index", "NAME");

Future<IntradayTickData> ticks = session.submit(tickRequest);
Future<IntradayBarData> bars = session.submit(barRequest);
Future<ReferenceData> name = session.submit(refRequest);

javadocで利用可能なその他の例。

同じ情報を定期的に取得する必要がある場合は、ビルダーを再利用して、たとえば、 ScheduledThreadPoolExecutorと組み合わせて使用​​できます。

注:ライブラリはまだベータ状態なので、自動的に取引されるブラックボックスで盲目的に使用しないでください。

于 2013-01-29T00:13:02.530 に答える