打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何编程从免费股票软件中提取实时数据?

是从免费软件提取,如:通达信、大智慧、飞狐等软件中提取。


自己写程序的话,一种方法是从已提供的信息源,例如webservice获取数据。还有种办法就是去连接提供即时信息的网页硬解析。代码举例如下:Created on Thu Jul 23 09:17:27 2015@author: jet"""DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume', 'chg', '%chg', 'ma5', 'ma10', 'ma20', 'vma5', 'vma10', 'vma20', 'turnover']DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300','SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume','chg', '%chg', 'ma5', 'ma10', 'ma20','vma5', 'vma10', 'vma20'] K_TYPE_KEY = ['D', 'W', 'M']K_TYPE_MIN_KEY = ['5', '15', '30', '60']K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s' PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}URL_ERROR_MSG = '获取失败,请检查网络状态,或者API端口URL已经不匹配!'get_hist_data.py# -*- coding: utf-8 -*-"""Created on Thu Jul 23 09:15:40 2015@author: jet"""import const as ctimport pandas as pdimport jsonfrom urllib2 import urlopen,Requestdef get_hist_data(code = None, start = None, end = None, ktype = 'D'):"""功能:获取个股历史交易数据--------输入:--------code:string股票代码 比如:601989start:string开始日期 格式:YYYY-MM-DD 为空时取到API所提供的最早日期数据end:string结束日期 格式:YYYY-MM-DD 为空时取到最近一个交易日数据ktype:string(default=D, 函数内部自动统一为大写)数据类型 D=日K线,W=周K线,M=月K线,5=5分钟,15=15分钟30=30分钟,60=60分钟 输出:--------DataFramedate 日期open 开盘价high 最高价close 收盘价low 最低价chg 涨跌额 p_chg 涨跌幅ma5 5日均价ma10 10日均价ma20 20日均价vma5 5日均量vma10 10日均量vma20 20日均量turnover换手率(指数无此项)""" code = code_to_APIcode(code.upper())ktype = ktype.upper()url = '' url = get_url(ktype, code) print(url)js = json.loads(ping_API(url))cols = []if len(js['record'][0]) == 14:cols = ct.INDEX_DAY_PRICE_COLSelse:cols = ct.DAY_PRICE_COLSdf = pd.DataFrame(js['record'], columns=cols)if ktype in ct.K_TYPE_KEY:df = df.applymap(lambda x:x.replace(u',', u''))for col in cols[1:]:df[col]=df[col].astype(float)if start is not None:df = df [df.date >= start]if end is not None:df = df[df.date <= end]df = df.set_index('date')return df def code_to_APIcode(code):"""功能:验证输入的股票代码是否正确,若正确则返回API对应使用的股票代码"""print(code)if code in ct.INDEX_KEY:return ct.INDEX_LIST[code]else:if len(code) != 6:raise IOError('code input error!')else:return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%codedef get_url(ktype, code):"""功能:验证输入的K线类型是否正确,若正确则返回url""" if ktype in ct.K_TYPE_KEY:url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],ct.K_TYPE[ktype], code)return urlelif ktype in ct.K_TYPE_MIN_KEY:url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],code, ktype)return urlelse:raise IOError('ktype input error!')def ping_API(url):"""功能:向API发送数据请求,若链接正常返回数据"""text = ''try:req = Request(url)text = urlopen(req,timeout=10).read() if len(text) < 15:raise IOError('no data!') except Exception as e:print(e)else:return text#测试入口

print(get_hist_data('601989','2015-07-11','2015-07-22'))


“ 金 融 点 评 网 ” 有 大 量 关 于 此 类 的 问 题 解 答 , 您 可 以 去 查 看 !
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
股票​实时数据如何获取?如何获取股票实时行情数据?
[转]大智慧炒股软件使用攻略
波浪理论分析软件Advanced GET
基金仓位哪里可以看到?仓位查询方法
excel里也可以偷偷添加股票实时行情,边摸鱼,边高抛低吸
用Excel徒手做一个股票软件?(涨跌分布篇)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服