需要注意的这个只是获取单只股票

代码的用处,通过这个代码有炒股的朋友就可以写出简单的自动止损和按一定价格入场的程序了。(国内正规券商不支持这种功能,可能是为了防止一些东西。)

我们先来看一下股票信息的类

namespace Qianfa.net.Library.Entity
{
    /*http://hq.sinajs.cn/list=sh600066  sh上海 sz深圳
     * 0:”大秦铁路”,股票名字;
   1:”27.55″,今日开盘价;
   2:”27.25″,昨日收盘价;
   3:”26.91″,当前价格;//时间结束后也就是收盘价了
   4:”27.55″,今日最高价;
   5:”26.20″,今日最低价;
   6:”26.91″,竞买价,即“买一”报价;
   7:”26.92″,竞卖价,即“卖一”报价;
   8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
   9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
   10:”4695″,“买一”申请4695股,即47手;
   11:”26.91″,“买一”报价;
   12:”57590″,“买二”
   13:”26.90″,“买二”
   14:”14700″,“买三”
   15:”26.89″,“买三”
   16:”14300″,“买四”
   17:”26.88″,“买四”
   18:”15100″,“买五”
   19:”26.87″,“买五”
   20:”3100″,“卖一”申报3100股,即31手;
   21:”26.92″,“卖一”报价
   (22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
   30:”2008-01-11″,日期;
   31:”15:05:32″,时间;
   */
    public class StockInfo
    {
        public string Name
        {
            get;
            set;
        }

public decimal TodayOpen
        {
            get;
            set;
        }

public decimal YesterdayClose
        {
            get;
            set;
        }

public decimal Current
        {
            get;
            set;
        }

public decimal High
        {
            get;
            set;
        }

public decimal Low
        { get; set; }

/// <summary>
        /// 竟买价 买1
        /// </summary>
        public decimal Buy
        { get; set; }

/// <summary>
        /// 竟卖价 卖1
        /// </summary>
        public decimal Sell { get; set; }

/// <summary>
        /// 成交数 单位股数 通常除于100成为手
        /// </summary>
        public int VolAmount { get; set; }

/// <summary>
        /// 成交多少钱,单位元
        /// </summary>
        public decimal VolMoney { get; set; }

/// <summary>
        /// 新浪是可以看到5个,5档看盘 ,买1-买5
        /// </summary>
        public List<GoodsInfo> BuyList { get; set; }

/// <summary>
        /// 卖1-卖5
        /// </summary>
        public List<GoodsInfo> SellList { get; set; }

/// <summary>
        /// Date and Time
        /// </summary>
        public DateTime Time { get; set; }

public override string ToString()
        {
            return Name + ": " + VolAmount + ":" + Current;
        }
       
    }

/*现在爬文章的很多,原文在http://www.cnblogs.com/lovebanyi/archive/2010/05/02/1725874.html */
}

namespace Qianfa.net.Library
{

///股票数据获取接口,你可以自己实现新浪yahoo...
    public interface IDataService
    {
         StockInfo GetCurrent(string stockCode);   
    }
}

namespace Qianfa.net.DataServices
{
    public class Sina : IDataService
    {

private const string dataurl = "http://hq.sinajs.cn/list=%7B0}";
        #region IStockInfo Members
        HttpClient client;
        private StockInfo PrevInfo;
        public StockInfo GetCurrent(string stockCode)
        {
            try
            {
                if (client == null)
                {
                    client = new HttpClient();
                }
                if (stockCode.Substring(0, 2) == "60")//上海是600打头
                {
                    stockCode = "sh" + stockCode;
                }
                else if(stockCode.Substring(0,2)=="00")//深圳
                {
                    stockCode = "sz" + stockCode;
                }
                else if (stockCode.Substring(0, 2) == "51")//上海基金
                {
                    stockCode = "sh" + stockCode;
                }
                string url = string.Format(dataurl, stockCode);
                string data = client.DownloadString(string.Format(url, stockCode));
                PrevInfo = Parse(data);
                return PrevInfo;
            }
            catch
            {
                return PrevInfo;
            }
           
        }

/// <summary>
        /// Parse Sina data to stock Info
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static StockInfo Parse(string content)
        {
           // var hq_str_sh600066 = "宇通客车,9.27,9.35,9.76,9.80,9.27,9.77,9.78,4567858,44306952,3100,9.77,1200,9.76,20500,9.75,1400,9.74,15300,9.73,10030,9.78,28093,9.79,156827,9.80,2800,9.81,6400,9.82,2009-01-09,15:03:32";
            int start = content.IndexOf('"')+1;
            int end = content.IndexOf('"',start);
            string input = content.Substring(start, end - start);
            string[] temp = input.Split(',');
            if (temp.Length != 32)
            {
                return null;
            }
            StockInfo info = new StockInfo();
            info.Name = temp[0];
            info.TodayOpen = decimal.Parse(temp[1]);
            info.YesterdayClose = decimal.Parse(temp[2]);
            info.Current = decimal.Parse(temp[3]);
            info.High = decimal.Parse(temp[4]);
            info.Low = decimal.Parse(temp[5]);
            info.Buy = decimal.Parse(temp[6]);
            info.Sell = decimal.Parse(temp[7]);
            info.VolAmount = int.Parse(temp[8]);
            info.VolMoney = decimal.Parse(temp[9]);
            info.BuyList = new List<GoodsInfo>(5);
            int index = 10;
            for (int i = 0; i < 5; i++)
            {
                GoodsInfo goods = new GoodsInfo();
                goods.State = GoodsState.Buy;
                goods.Amount = int.Parse(temp[index]);
                index++;
                goods.Price = decimal.Parse(temp[index]);
                index++;
                info.BuyList.Add(goods);
            }
            info.SellList = new List<GoodsInfo>(5);

for (int i = 0; i < 5; i++)
            {
                GoodsInfo goods = new GoodsInfo();
                goods.State = GoodsState.Sell;
                goods.Amount = int.Parse(temp[index]);
                index++;
                goods.Price = decimal.Parse(temp[index]);
                index++;
                info.SellList.Add(goods);
            }
            info.Time = DateTime.Parse(temp[30] + " " + temp[31]);
            return info;

}

#endregion
    }
}

public class GoodsInfo
    {
        public int Amount
        { get; set; }
        public decimal Price
        {
            get;
            set;
        }
        public GoodsState State { get; set; }
    }

如果你想要商业类型的股票接口可以可以跟我联系哦。

http://www.qianfa.net/StockInfoSoft.aspx

转载于:https://www.cnblogs.com/lovebanyi/archive/2010/05/02/1725874.html

新浪的股票接口 c#相关推荐

  1. 新浪level2股票接口说明

    新浪level2股票接口说明: 1.逐笔委托可以看买1,卖1最多50档.时间戳精确到10毫秒: 2.逐笔交易明细自带精确到10毫秒的时间戳: 3.10档盘口快照自带时间戳是秒级别的,3秒1次快照. 其 ...

  2. 新浪level2股票接口有哪些类型?

    新浪level2股票接口类型有哪些? 从法规来说,即要么是自己开发的交易接口,要么是证券公司提供的交易接口.如果是第三方交易接口,那么只有以下三种程序化股票交易接口是合规的: (一)客户端是证券公司与 ...

  3. 新浪level2股票接口有什么特点?

    1.新浪level2股票接口相对于传统实时行情,Level2行情具备了速度更快信息更完整,委托信息更丰富,更多行业数据,更多统计信息. 2.响应相关部门规定,产品已永久下线,包括level2实时推送接 ...

  4. 新浪实时股票接口大全

    股票数据的获取今朝有如次两种要领可以获取: 1. http/javascript接口取数据 2. -service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大秦 ...

  5. 新浪实时股票数据接口http://hq.sinajs.cn/list=code

    股票数据的获取目前有如下两种方法可以获取: 1. http/javascript接口取数据 2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 ...

  6. 新浪获取股票实时数据接口(22年春节后)

    2022年春节前夕 新浪获取股票实时行情接口,获取数据进行调整. 请求:http://hq.sinajs.cn/list 调用返回:Kinsoku jikou desu! 以下为最新获取方法(Java ...

  7. 新浪实时股票数据接口http://hq.sinajs.cn/list=股票代码

    股票数据的获取目前有如下两种方法可以获取: 1. http/JavaScript接口取数据 2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 ...

  8. python股票数据分析_用Python抓取新浪的股票数据

    最近做数据分析,先是找到了Tushare这个免费开源的第三方财经包,但后来用了几天之后发现,它的日交易历史数据有时候有不准确的情况,查看源代码发现,这个包的数据源是凤凰财经,而对比凤凰网站其站点的数据 ...

  9. python如何爬虫股票数据_如何抓取股票数据_用Python抓取新浪的股票数据

    python爬虫成长之路(一)抓取证券之星的股票数据 其中编译匹配模式findall方法使用这个匹配模式来匹配所需的信息并以列表的形式返回.正则表达式的语法非常多.下面我只列出使用的符号的含义.匹配除 ...

最新文章

  1. css3 多列布局使用
  2. java 优酷视频缩略图_java获取优酷等视频缩略图
  3. 帝国cms如何域名html的专题,帝国cms怎么生成html网站地图
  4. C语言线性表realloc增加空间,数据结构C语言实现系列——线性表
  5. Extjs4.2里Grid显示日期类型数据
  6. 常用传感器讲解九--雨滴传感器
  7. 前后端分离的跨域问题
  8. Codeforces936B. Sleepy Game
  9. python GPS解析,坐标转换,两经纬度直线距离,方位角
  10. 添加友情链接获取CF币
  11. 天嵌科技恭祝大家元宵节快乐
  12. matlab实现无人机自组网,无人机自组网技术.pdf
  13. 独眼龙夏侯惇为什么能两次打败巅峰时期的赵云,他到底有多厉害?
  14. 谈谈我做拼音搜索的一点经验
  15. 日志规范——转自晓风轻专栏
  16. [含lw+开题报告+源码等]SSM酒店管理系统|旅店管理[包运行成功]
  17. 《Adobe Fireworks CS5中文版经典教程》——1.7复习
  18. 一大波大运存来袭,智能手机进入大容量时代
  19. 一文看懂业界在离线混部技术
  20. 毕业设计 基于单片机的风速测量系统 - 物联网 嵌入式 stm32 arduino

热门文章

  1. spring boot mybatis拦截器
  2. Java03接口与内部类
  3. 好程序员web前端分享JS引擎的执行机制
  4. ES6模块与commonJS模块的差异
  5. 统计0-n数字中出现k的次数
  6. Windows下安装Python模块时环境配置
  7. 获取电脑和操作系统信息-uname
  8. Ralink5350开发环境搭建
  9. multi-mechanize error: can not find test script: v_user.py问题
  10. 洛谷 P1529 回家 Bessie Come Home Label:Dijkstra最短路 乱搞