2

Goal: I use Bloomberg Java API's subscription service to monitor bond prices in real time (subscribing to ASK/BID real time fields). However in the RESPONSE messages, bloomberg does not provide the associated yield for the given price. I need a way to calculate the yields.

Attempt: Here's what I've tried: Within in the code that processes Events coming backing from a real time subscription, when I get a BID or ASK response, I extract the price from the message element, and then initiates a new synchronous reference data request, using overrides to get the YAS_BOND_YLD by providing YAS_BOND_PX and setting the overriding flag.

Problem: This seems very slow and cumbersome. Is there a better way other than having to calculate yields myself? In my code, I seem to be able to process real time prices if they are being sent to me slowly. If a few bonds' prices were updated at the same time (say, in MSG1 pricing), I seem to only capture one out of these updates, it feels like I'm missing the other events.. Is this because I cannot use a synchronous reference data request while the subscription is still alive?

Thanks.

WillZ
  • 3,775
  • 5
  • 30
  • 38
  • Apaprently the `ASK_YIELD` and `BID_YIELD` fields have been removed. You may try: `YIELD_ASK_CLOSE_RT` or `EVT_QUOTE_ASK_YIELD_RT` or a combination of both. – assylias Jan 17 '14 at 14:56
  • I don't think those two fields are sent back as part of the subscription new event message. Personally I think they should be for bonds, as it saves you from making another request. Calculating it on the fly is too much hassle because you'd need to know a lot about the bond's cash flow dates... – WillZ Jan 20 '14 at 22:36

1 Answers1

1

bloomberg does not provide the associated yield for the given price

Have you tried retrieving the ASK_YIELD and BID_YIELD fields? They may be what you are looking for.

Problem: This seems very slow and cumbersome.

Synchronous one-off requests are slower than real time subscription. Unless you need real time data on the yield, you could queue the requests and send them all at once every x seconds for example. The time to get 100 or 1 yield is probably not that different, and certainly not 100 times slower.

In my code, I seem to be able to process real time prices if they are being sent to me slowly. If a few bonds' prices were updated at the same time (say, in MSG1 pricing), I seem to only capture one out of these updates, it feels like I'm missing the other events.. Is this because I cannot use a synchronous reference data request while the subscription is still alive?

You should not miss items just because you are sending a synchronous request. You may get a "Slow consumer warning" but that's about it. It's difficult to say more without seeing your code. However, if you want to make sure your real time data is not delayed by your synchronous requests, you should use two separate Sessions.

assylias
  • 321,522
  • 82
  • 660
  • 783
  • "Have you tried retrieving the ASK_YIELD and BID_YIELD fields? They may be what you are looking for." Yes I have, these fields are not part of the event messages sent back by bloomberg. "Problem: This seems very slow and cumbersome." At the moment speed is not critical, but great suggestion, thanks. Yes, I got a reply from Bloomberg help suggesting using a new separate session. I will try this and revert. – WillZ Jan 13 '14 at 22:27