股票接口
首先我们需要得到所有的股票代码,好在已经有网页帮我们列出了所有的股票名称和代码,地址是:
http://quote.eastmoney.com/stocklist.html
通过这个页面,就可以抓取了。抓取之后我们就可以存入mysql中,每一个股票可以存一张表,而每一张表中则可以存入股票的动态数据。
这里我们只能获取到一些最简单的数据,一些更加详细的数据还需要获取,这里需要使用一个腾讯财经的接口
http://qt.gtimg.cn/q=sz000858
该接口为获取五粮液的股票数据,返回结果如下:
v_sz000858="51~五 粮 液~000858~52.79~53.70~53.50~63629~24808~38821~52.76~21~52.75~321~52.74~10~52.73~38~52.72~80~52.79~131~52.80~340~52.82~60~52.83~26~52.84~1~09:55:06/52.79/193/B/1018514/1168|09:55:03/52.79/121/S/638756/1166|09:55:00/52.79/48/S/253405/1165|09:54:57/52.79/3/S/15838/1162|09:54:54/52.79/151/B/796991/1160|09:54:51/52.78/105/S/554359/1158~20170615095507~-0.91~-1.69~53.71~52.60~52.79/63267/335599767~63629~33751~0.17~26.81~~53.71~52.60~2.07~2003.78~2003.89~3.95~59.07~48.33~1.99";
解析数据的时候需要按照~进行分割,分割之后数据含义如下
0: 未知,可能是在腾讯数据库中的主键 1: 名字 2: 代码 3: 当前价格 4: 昨收 5: 今开 6: 成交量(手) 7: 外盘 8: 内盘 9: 买一 10: 买一量(手) 11-18: 买二 买五 19: 卖一 20: 卖一量 21-28: 卖二 卖五 29: 最近逐笔成交 30: 时间 31: 涨跌 32: 涨跌% 33: 最高 34: 最低 35: 价格/成交量(手)/成交额 36: 成交量(手) 37: 成交额(万) 38: 换手率 39: 市盈率 40: 41: 最高 42: 最低 43: 振幅 44: 流通市值 45: 总市值 46: 市净率 47: 涨停价 48: 跌停价
通过这个接口我们就可以完善股票基础数据了,从目前来看,我们仅仅需要这些数据。
struct stock{ id, #主键 code, #股票代码,作唯一索引处理 type, #股票类型,有sz,hs分别表示深圳,沪深 name, #股票名称,字符串类型 pe, #市盈率 pb, #市净率 }
接着就是每日下午三点之后更新当日的数据,我们要做的就是对当天的数据进行分析,当日股票的数据结构如下
struct sotck_id{ code, #股票代码 type, #股票类型 open_price, #开盘价 close_price, #收盘价 peak_price, #最高价 low_price, #最低价 main_inflow, #主力流入 main_outflow, #主力流出 main_net_inflow, #主力净流入 }
腾讯还有一个获取资金流向的接口,这让我们很方便的看出主力的操作
接口地址
http://qt.gtimg.cn/q=ff_sz300658
获取的数据结果如下
v_ff_sz300658="sz300658~5918.75~6913.40~-994.66~-4.97~14088.73~13094.08~994.65~4.97~20007.48~49843.378~46441.413~延江股份~20170616~20170615^12366.07^10534.77~20170614^9722.16^8610.57~20170613^12193.90^8315.81~20170612^9642.50^12066.86";
以~分割字符串,得到的结果以及含义如下
0: 股票代码 1: 主力流入 2: 主力流出 3: 主力净流入 4: 主力净流入/资金流入流出总和 5: 散户流入 6: 散户流出 7: 散户净流入 8: 散户净流入/资金流入流出总和 9: 资金流入流出总和1+2+5+6 10: 未知 11: 未知 12: 名字 13: 日期
设定阈值
有了股票数据就好办了,可以利用各种技术指标对股票进行筛选,每天只需要关注符合我们技术指标的股票就可以了,这种方法适合超短线。
常用有可以分析蜡烛图,MACD,主力资金流向等等。这里就不详细多说了,我也是个菜鸟,目前还正在学习。
历史数据验证
设定好了阈值,就可以进行历史数据回测了,通过历史数据来验证我们的程序到底是不是准确。
获取历史数据我们选用凤凰财经的接口,code表示股票的代码。
http://api.finance.ifeng.com/akdaily/?code=sz002307&type=last
这个接口可以一次性获取股票的历史数据,其中每个数组里面的数据如下所示
["2017-06-16","18.180","19.290","18.300","17.400","1000574.62","0.420","2.35","16.614","16.121","16.023","644,057.57","537,300.99","490,775.52","17.95"]
通过与软件的对比,可以得到这些数据的含义
0 日期 1 开盘价 2 最高价 3 收盘价 4 最低价 5 成交量 6 涨跌额 7 涨跌幅 8 5日均价 9 10日均价 10 20日均价 11 5日均量 12 10日均量 13 20日均量 14 换手率
涨跌家数
https://hq.sinajs.cn/rn=1587089097462&list=sh000002_zdp,sz399107_zdp,sh000003_zdp,sz399108_zdp,sz399102_zdp
返回
var hq_str_sh000002_zdp="961,427,113"; var hq_str_sz399107_zdp="1432,633,138"; var hq_str_sh000003_zdp="26,12,11"; var hq_str_sz399108_zdp="24,13,9"; var hq_str_sz399102_zdp="561,203,36";
sh000002 = 沪A
sz399107 = 深A
sh000003 = 全B
sz399102 = 创业
961是上涨家数
427是平家数
113是下跌家数