首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#创建实时股票行情

使用C#创建实时股票行情
EN

Stack Overflow用户
提问于 2018-11-14 03:55:19
回答 1查看 2.7K关注 0票数 0

我正在创建一个实时股票报价应用程序,它使用IEX API (https://iextrading.com/developer/docs/)来获取实时信息。我想知道是否有比我目前拥有的更好的方式来轮询这个URL。

代码语言:javascript
复制
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));

                        }
                    }
                }
            }
        }

我目前的工作很好,我只是想知道是否有更好/更有效的方法来做到这一点。

我的报价类

代码语言:javascript
复制
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; }
}
EN

回答 1

Stack Overflow用户

发布于 2018-11-14 03:59:54

你可能想看看他们是否有一个实时报价源,你只需订阅和观看即可。

当你不知道是否真的发生了变化时,不断询问特定股票的报价是令人惊讶的低效。

当一切都没有改变时,你会问;当事情发生改变时,你会不必要地拖延。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53288553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档