我正在创建一个实时股票报价应用程序,它使用IEX API (https://iextrading.com/developer/docs/)来获取实时信息。我想知道是否有比我目前拥有的更好的方式来轮询这个URL。
string[] Symbols = { "AAPL", "AMD" };
var Url = string.Format("https://api.iextrading.com/1.0/stock/market/batch?symbols={0}&types=quote", string.Join(",", Symbols));
using (var client = new HttpClient())
{
while (true)
{
using (var request = new HttpRequestMessage(HttpMethod.Get, Url))
{
using (var response = await client.SendAsync(request))
{
var stream = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
var r = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, Quote>>>(stream);
Console.WriteLine(JsonConvert.SerializeObject(r[Symbols[0]]["quote"].latestPrice));
}
}
}
}
}我目前的工作很好,我只是想知道是否有更好/更有效的方法来做到这一点。
我的报价类
public class Quote
{
public string symbol { get; set; }
public string companyName { get; set; }
public string primaryExchange { get; set; }
public string sector { get; set; }
public string calculationPrice { get; set; }
public decimal? open { get; set; }
public decimal? openTime { get; set; }
public decimal? close { get; set; }
public decimal? closeTime { get; set; }
public decimal? high { get; set; }
public decimal? low { get; set; }
public decimal? latestPrice { get; set; }
public string latestSource { get; set; }
public string latestTime { get; set; }
public decimal? latestUpdate { get; set; }
public decimal? latestVolume { get; set; }
public decimal? iexRealtimePrice { get; set; }
public decimal? iexRealtimeSize { get; set; }
public decimal? iexLastUpdated { get; set; }
public decimal? delayedPrice { get; set; }
public decimal? delayedPriceTime { get; set; }
public decimal? extendedPrice { get; set; }
public decimal? extendedChange { get; set; }
public decimal? extendedChangePercent { get; set; }
public decimal? extendedPriceTime { get; set; }
public decimal? previousClose { get; set; }
public decimal? change { get; set; }
public decimal? changePercent { get; set; }
public decimal? iexMarketPercent { get; set; }
public decimal? iexVolume { get; set; }
public decimal? avgTotalVolume { get; set; }
public decimal? iexBidPrice { get; set; }
public decimal? iexBidSize { get; set; }
public decimal? iexAskPrice { get; set; }
public decimal? iexAskSize { get; set; }
public decimal? marketCap { get; set; }
public decimal? peRatio { get; set; }
public decimal? week52High { get; set; }
public decimal? week52Low { get; set; }
public decimal? ytdChange { get; set; }
}发布于 2018-11-14 03:59:54
你可能想看看他们是否有一个实时报价源,你只需订阅和观看即可。
当你不知道是否真的发生了变化时,不断询问特定股票的报价是令人惊讶的低效。
当一切都没有改变时,你会问;当事情发生改变时,你会不必要地拖延。
https://stackoverflow.com/questions/53288553
复制相似问题