It depends, both on the api, how you're defining latency, and the trading requirements of your strategy.
At a superficial level, in general you're requesting less data with bars and this frees up compute cycles which would make a given computation run with less latency.
However, you have to consider that the broker is building bars for you, probably from the same feed source you as the user would be using. So the latency of building bars is likely built in to both scenarios. It has to be done somewhere and it takes a finite amount of time. So they should be close to same barring the network overhead of having to continually request the bars, which is pretty minor if you're only doing every X seconds. Or unless your broker/feed provider has tremendously more efficient algs or systems than you.
Obviously if your strategy is capable of entering mid-bar, then when you compute bars locally you can enter immediately. However in the situation where you're requesting bars every X seconds, you're going to have minimum latency of X relative to fastest possible execution. So in this case building your own bars would be significantly more efficient. Again this consideration is strategy dependent and it wouldn't be relevant for all strategies.
In general I would say building your own bars is most efficient. That is why in TradeLink we use this method defacto in the off-the-shelf products. However there may be special cases where the opposite could be true. That is why in TradeLink we support this so you can build your own apps if needed.
http://tradelink.googlecode.com
------------------------------
Hello,
I know you are familiar with APIs. I have a question.
Which of the following two options makes most sense to you. The goal is to retrieve the data bars as quickly as possible with minimum latency.
1. Use the API's native properties for 1min, 1 hour bars, ect to retrieve historical 1minute, 1 hour bars, etc every 1 minute, every 1 hour
or
2. Subscribe to the API's real-time data feed and use this data feed to build your own 1min, 1 hour bars in real-time by performing your own aggregation using the real-time feed.
One party says Option 1 is the fastest and most efficient option.
Another party says Option 2 is the fastest and most efficient option.
What say you?
Thank you for your help.
I know you are familiar with APIs. I have a question.
Which of the following two options makes most sense to you. The goal is to retrieve the data bars as quickly as possible with minimum latency.
1. Use the API's native properties for 1min, 1 hour bars, ect to retrieve historical 1minute, 1 hour bars, etc every 1 minute, every 1 hour
or
2. Subscribe to the API's real-time data feed and use this data feed to build your own 1min, 1 hour bars in real-time by performing your own aggregation using the real-time feed.
One party says Option 1 is the fastest and most efficient option.
Another party says Option 2 is the fastest and most efficient option.
What say you?
Thank you for your help.