混合型股票基金有什么办法可以实时查看涨跌情况?比如指数基金。
Ref = = = & gt图沙雷
系统:Ubuntu 15.04 Python:2.7环境包:Anaconda,仅供娱乐。...
最近在学Python语言,就想学学怎么炒股。所以在学习了一些基础知识之后,打算做一些股票相关的演示练习。首先要解决的问题当然是数据收集。
我上网搜了一下,看了一些朋友的代码片段,知道API请求数据的格式是这样的:',' ifeng': 'ifeng.com'}
URL_ERROR_MSG = '获取失败,请检查网络状态,或者API端口URL不匹配!'
获取_历史_数据. py
# -*-编码:utf-8 -*-
"""
创建于2007年7月23日星期四09:15:40 2015
@作者:jet
"""
将常数作为联系类型导入
进口熊猫作为pd
导入json
从urllib2导入urlopen,请求
def get_hist_data(code = None,start = None,end = None,ktype = 'D '):
"""
功能:
获取个股历史交易数据
-
输入:
-
代码:字符串
股票代码,例如:601989。
开始:字符串
开始日期格式:当YYYY-MM-DD为空时,取API提供的最早日期数据。
结束:字符串
结束日期格式:当YYYY-MM-DD为空时,取最近一个交易日的数据。
Ktype:string(默认=D,函数自动统一为大写)
数据类型D=日k线,W=周k线,M=月k线,5=5分钟,15=15分钟。
30=30分钟,60=60分钟?
输出:
-
数据帧
日期日期
开盘价
最高价
收盘价格
最低价格
Chg涨跌?
P_chg涨跌
Ma5五天平均价格
Ma10 10日平均价格
Ma20 20天平均价格
VMA5的5天平均值
Vma10日平均
Vma20 20日平均
周转率(该指数没有这一项)
"""?
code = code _ to _ API code(code . upper())
ktype = ktype.upper()
url =“”?
url = get_url(ktype,code)?
打印(url)
js = json.loads(ping_API(url))
cols = []
if len(js[' record '][0])= = 14:
cols = ct。指数_日_价格_列
否则:
cols = ct。日价格栏
df = pd。DataFrame(js['record'],columns=cols)
如果ct中的ktype。K_TYPE_KEY:
df = df . apply map(lambda x:x . replace(u ',',u ' '))
对于列中的列[1:]:
df[col]=df[col]。astype(浮点型)
如果开始不是无:
df = df[df . date & gt;=开始]
如果end不是None:
df = df[df . date & lt;=结束]
df = df.set_index('date ')
还df?
def code_to_APIcode(代码):
"""
功能:
验证输入的股票代码是否正确,如果正确,返回API使用的股票代码。
"""
打印(代码)
ct中的if代码。INDEX_KEY:
返回ct。INDEX _ LIST[代码]
否则:
if len(代码)!= 6:
引发IOError('代码输入错误!')
否则:
如果代码[:1]在['5 ',' 6'] else 'sz%s'%code中,则返回' sh%s'%code
def get_url(ktype,code):
"""
功能:
验证输入的k线类型是否正确,如果正确则返回url。
"""?
如果ct中的ktype。K_TYPE_KEY:
url = ct。日价格网址%。PAGE_TYPE['http'],ct。PAGE_DOMAIN['ifeng'],
ct。K_TYPE[ktype],代码)
返回url
联系类型中的elif ktype。K_TYPE_MIN_KEY:
url = ct。最低价格URL %。PAGE_TYPE['http'],ct。PAGE_DOMAIN['ifeng'],
代码,ktype)
返回url
否则:
引发IOError('ktype输入错误!')
定义ping_API(url):
"""
功能:
向API发送数据请求,如果链接正常则返回数据。
"""
text = ' '
尝试:
req =请求(url)
text = urlopen(req,timeout=10)。read()?
if len(text)& lt;15:
引发IOError('无数据!')?
例外情况为e:
打印(e)
否则:
返回文本
#测试门户
print(get _ hist _ data(' 601989 ',' 2015-07-11 ',' 2015-07-22 '))