㈠ 股市走势图k线怎么看
看股票K线是炒股最常用的方法之一。用K线找“规律”也是大家比较多用到的方法,股市风险大炒股还是要谨慎,才能分析清楚进而更好投资,获得收益。
下面就来跟大家详细说明一下K线,从哪几个方面去分析它。
分享之前,先免费送给大家几个炒股神器,能帮你收集分析数据、估值、了解最新资讯等等,都是我常用的实用工具,建议收藏:炒股的九大神器免费领取(附分享码)
一、 股票K线是什么意思?
K线图有许多别的称呼,像是蜡烛图、日本线、阴阳线等,最为普遍常见的叫法是--K线,它起初是为了计算米价的趋向而出现的,之后股票、期货、期权等证券市场都有它的一席之地。
影线和实体构成形为柱状的k线。影线在实体上方的部分叫上影线,下方的部分叫下影线,实体分阳线和阴线。
Ps:影线代表的是当天交易的最高和最低价,实体表示的是当天的开盘价和收盘价。
阳线的表示方法很多,最常用的有红色、白色柱体还有黑框空心,然而阴线通常用实体柱做代表,颜色一般为绿色、黑色或者蓝色,
另外,“十字线”被我们看到时,就可以认为一条线是实体部分改变后的形态
其实十字线很容易理解的,它表示的是当天的的收盘价=开盘价。
认识了K线,我们对找出买卖点就会很在行(K线也是有指导价值的,虽然说是股市无法预测),对于新手来说也是最好操控的。
这里大家应该值得注意的是,K线分析起来,没有想象中那么容易,如果你对K线不清楚,建议用一些辅助工具来帮你判断一只股票是否值得买。
比如说下面的诊股链接,输入你中意的股票代码,就能自动帮你估值、分析大盘形势等等,我刚开始炒股的时候就用这种方法来过渡,非常方便:【免费】测一测你的股票当前估值位置?
下面我来简单讲解几个K线分析的小技巧,一些简单的内容帮助你尽快知道。
二、怎么用股票K线进行技术分析?
1、实体线为阴线
这个时候股票的成交量就需要分析一下,出现那种成交量不大的情况,表明股价可能会短期下降;而成交量很大的话,那股价很有可能要长期下跌了。
2、实体线为阳线
实体线为阳线就意味着股价上涨动力更足,至于是不是长期上涨必须结合其他指标进行判断。
比如说大盘形式、行业前景、估值等等因素/指标,但是由于篇幅问题,不能展开细讲,大家可以点击下方链接了解:新手小白必备的股市基础知识大全
应答时间:2021-08-27,最新业务变化以文中链接内展示的数据为准,请点击查看
㈡ 股票里的LW&R怎么看
LW&R 威廉指标
1.LWR2<30,超买;LWR2>70,超卖。
2.线LWR1向下跌破线LWR2,买进信号; 线LWR1向上突破线LWR2,卖出信号。
3.线LWR1与线LWR2的交叉发生在30以下,70以上,才有效。
4.LWR指标不适于发行量小,交易不活跃的股票;对大盘和热门大盘股有极高准确性。
㈢ 在股市中,KDJ、MACD、OBV、DMA、VR、CR、WR、VOL、KD、RSI、EPS、PE分别指的是什么
kdj
随机指标(KDJ指标的中文名称是随机指数)最早起源于期货市场,由乔治·莱恩首创的,它在通过当日或最近几日最高价、最低价及收盘价等价格波动的波幅,反映价格趋势的强弱。
macd
MACD称为指数平滑异同移动平均线,是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线,MACD的意义和双移动平均线基本相同,但阅读起来更方便。当MACD从负数转向正数,是买的信号。当MACD从正数转向负数,是卖的信号。当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。
OBV
OBV的英文全称是:On Balance Volume,中英名称可翻译为:平衡交易量,是由美国的投资分析家Joe Granville所创。该指标通过统计成交量变动的趋势来推测股价趋势。OBV以“N”字型为波动单位,并且由许许多多“N”型波构成了OBV的曲线图,对一浪高于一浪的“N”型波,称其为“上升潮”(UP TIDE),至于上升潮中的下跌回落则称为“跌潮”(DOWN FIELD)
dma
DMA指标又叫平行线差指标,是目前股市分析技术指标中的一种中短期指标,它常用于大盘指数和个股的研判。
买卖原则:
DMA线向上交叉AMA线,做买。
DMA线向下交叉AMA线,做卖。
DMA指标也可观察与股价的背离。
VR
VR(Volitility Volumle Ratio)中文名称:成交量变异率,主要的作用在于以成交量的角度测量股价的热度,不同于AR、BR、CR的价格角度,但是却同样基于“反市场操作”的原理为出发点。和VR指标同性质的指标还有PVT、PVI、NVI、 A/DVOLUME……等
cr
CR指标又叫中间意愿指标,它和AR、BR指标又很多相似之处,但更有自己独特的研判功能,是分析股市多空双方力量对比、把握买卖股票时机的一种中长期技术分析工具
CR指标同AR、BR指标有很多相似的地方,如计算公式和研判法则等,但它与AR、BR指标最大不同的地方在于理论的出发点有不同之处。CR指标的理论出发点是:中间价是股市最有代表性的价格。
为避免AR、BR指标的不足,在选择计算的均衡价位时,CR指标采用的是上一计算周期的中间价。理论上,比中间价高的价位其能量为“强”,比中间价低的价位其能量为“弱”。CR指标以上一个计算周期(如N日)的中间价比较当前周期(如日)的最高价、最低价,计算出一段时期内股价的“强弱”,从而在分析一些股价的异常波动行情时,有其独到的功能。
另外,CR指标不但能够测量人气的热度、价格动量的潜能,而且能够显示出股价的压力带和支撑带,为分析预测股价未来的变化趋势,判断买卖股票的时机提供重要的参考。
wr
WR指标,中文称威廉指标,股票术语,表示当天的收盘价在过去一段日子的全部价格范围内所处的相对位置,是一种兼具超买超卖和强弱分界的指标。它主要的作用在于辅助其他指标确认讯号。
WR1一般是6天买卖强弱指标;
WR2一般是10天买卖强弱指标。
以N日威廉指标为例,
WR(N) = 100 * [ HIGH(N)-C ] / [ HIGH(N)-LOW(N) ]
C:当日收盘价
HIGH(N):N日内的最高价
LOW(n):N日内的最低价
vol
股市中的VOL是成交量指标,成交量是指个股和大盘的成交总手,在形态上用一根立式的柱子来表示。左面的坐标值与柱子的横向对应处,就是当日当时的成交总手。如当天收盘价高于当天均价,成交柱呈红色;反之,成交柱呈绿色。 蓝柱表示的是当天收盘指数是下跌的,红柱则表示当天是上涨的。(5,10,20)分别代表5天,10天,20天的平均成交量。 VOL,是成交量类指标中最简单、最常用得指标,它以成交量柱线和三条简单平均线组成
kd
KDJ指标的中文名称是随机指数,是技术分析指标的一种,最早起源于期货市场,是在WMS的基础上发展起来的
rsi
RSI最早被用于期货交易中,后来人们发现用该指标来指导股票市场投资效果也十分不错,并对该指标的特点不断进行归纳和总结。现在,RSI已经成为被投资者应用最广泛的技术指标之一。投资的一般原理认为,投资者的买卖行为是各种因素综合结果的反映,行情的变化最终取决于供求关系,而RSI指标正是根据供求平衡的原理,通过测量某一个期间内股价上涨总幅度占股价变化总幅度平均值的百分比,来评估多空力量的强弱程度,进而提示具体操作的。RSI的应用法则表面上比较复杂,包括了交叉、数值、形态和背离等多方面的判断原则。
EPS
是每股盈余(Earnings Per Share)的缩写,指普通股每股税后利润。 EPS(每股盈余)=盈余/流通在外股数,传统的每股收益指标计算公式为:每股收益=期末净利润÷期末总股本。EPS为公司获利能力的最后结果。每股盈余高代表着公司每单位资本额的获利能力高,这表示公司具有某种较佳的能力——产品行销、技术能力、管理能力等等,使得公司可以用较少的资源创造出较高的获利。 本业的每股获利,通常也代表着该年度所能配发的股利。如果以股利收入的角度来选股,则可以eps作为替代变数。
eps每股盈余 :(税后纯益-特别股股利)/发行在外普通股股数。即每股获利。税后净利=营业收入+营业外收入-营业成本-营业费用-营业外支出(Earnings Per Share)的缩写,每股收益。每股收益是指本年净收益与普通股份总数的比值,根据股数取值的不同,有全面摊薄每股收益和加权平均每股收益。全面摊薄每股收益是指计算时取年度末的普通股份总数,理由是新发行的股份一般是溢价发行的,新老股东共同分享公司发行新股前的收益。加权平均每股收益是指计算时股份数用按月对总股数加权计算的数据,理由是由于公司投入的资本和资产不同,收益产生的基础也不同。
每股收益=利润/总股数
并不是每股收益越高越好,因为还要考虑每股的股价
例如:利润100W,股数100W股 10元/股,此时假设企业股价反映了总资产为1000W
总资产收益率=100/1000*100%=10%
每股收益=100W/100W=1元
另一企业利润100W,股数50W股 40元/股,企业总资产为2000W
总资产收益率=100/2000*100%=5%
每股收益=100W/50W=2元
每股收益突出了分摊到每一份股票上的盈利数额,是股票市场上按市盈率定价的基础。如果一家公司的净利润很大,但每股盈利却很小,表明它的业绩被过分稀释,每股价格通常不高。
市盈率=每股市价/每股利润
pe
市盈率指在一个考察期(通常为12个月的时间)内,股票的价格和每股收益的比率。投资者通常利用该比例值估量某股票的投资价值,或者用该指标在不同公司的股票之间进行比较。“P/E Ratio”表示市盈率;“Price per Share”表示每股的股价;“Earnings per Share”表示每股收益。即股票的价格与该股上一年度每股税后利润之比(P/E),该指标为衡量股票投资价值的一种动态指标。
㈣ 如何编程从免费股票软件中提取实时数据
自己写程序的话,一种方法是从已提供的信息源,例如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 ct
import pandas as pd
import json
from urllib2 import urlopen,Request
def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
获取个股历史交易数据
--------
输入:
--------
code:string
股票代码 比如:601989
start: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分钟
输出:
--------
DataFrame
date 日期
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_COLS
else:
cols = ct.DAY_PRICE_COLS
df = 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'%code
def 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 url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
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'))
㈤ 股票交易行情中B、W、M分别是指什么
在股票交易系统中,B一般是指买入股票,W和M都是K线形态,W底对应着M头,是个别股的支撑、压力位。
例如:A股票今天的成交量是51.42M,B股票今天的成交量是1.52B
成交量51.42M就对应是5142万股,成交量1.52B,就是15.2亿股。
股票的市场价格由市场决定的。股票的面值和市值往往是不一致的。股票价格可以高于面值,也可以低于面值,但股票第一次发行的价格一般不低于面值。股票价格取决于预期股息的多少,银行利息率的高低,及股票市场的供求关系。股票市场是一个波动的市场,股票市场价格亦是不断波动的。
股票的市场交易价格主要有:开市价,收市价,最高价,最低价。收市价是最重要的,是研究分析股市以及抑制股票市场行情图表采用的基本数据。
㈥ 股票K线图上的TOW,KDJ,RSI 各代表什么意思啊 怎么运用 请高手指点
TOW是宝塔线指标;KDJ是随机指标,由K线、D线和J线这三条曲线共同构成;RSI是相对强弱指标。
经常炒股的人都知道要看股票K线。用K线找“规律”也是大家比较多用到的方法,股市风险大炒股还是要谨慎,这样可以更好的进行投资决策,获取收益。
下面跟大家来详细说明一下什么是K线,教大家如何分析它。
分享之前,先免费送给大家几个炒股神器,能帮你收集分析数据、估值、了解最新资讯等等,都是我常用的实用工具,建议收藏:炒股的九大神器免费领取(附分享码)
一、 股票K线是什么意思?
K线图被称作蜡烛图、日本线、阴阳线等,我们常叫K线,它最先用于分析米价的趋势的,后来被应用到了股票、期货、期权等证券市场。
K线是一条柱状的线条,由影线和实体组成。影线在实体上方的部分叫上影线,下方的部分叫下影线,实体分阳线和阴线。
Ps:影线代表的是当天交易的最高和最低价,实体表示的是当天的开盘价和收盘价。
其中阳线的表示方法有三种,分别是:红色、白色柱体还有黑框空心,而常见的阴线表示方法是用绿色、黑色或者蓝色实体柱。
除了讲的这些以外,大家目测到“十字线”的时候,就意味着是实体部分转换成一条线。
其实十字线很容易理解的,其实就是收盘的价格和开盘时一样。
将K线研究透,我们可以敏锐地找出买卖点(K线也是有指导价值的,虽然说是股市无法预测),对于新手来说也是最好操控的。
这里我要一下提醒大家,K线分析是比较难的,对于炒股小白来说,建议用一些辅助工具来帮你判断一只股票是否值得买。
比如说下面的诊股链接,输入你中意的股票代码,就能自动帮你估值、分析大盘形势等等,我刚开始炒股的时候就用这种方法来过渡,非常方便:【免费】测一测你的股票当前估值位置?
下面有几个关于K线分析的小妙招,接下来我就给大家讲讲,帮助你快速进入初级阶段。
二、怎么用股票K线进行技术分析?
1、实体线为阴线
股票成交量是怎样的,这个时候是我们要重视的,万一成交量不大,这就表示着股价可能会短期下降;如果成交量很大,估计股价要长期下跌了。
2、实体线为阳线
实体线为阳线代表了什么?代表股价上涨动力更足,但是否是长期上涨,还要结合其他指标进行判断。
比如说大盘形式、行业前景、估值等等因素/指标,但是由于篇幅问题,不能展开细讲,大家可以点击下方链接了解:新手小白必备的股市基础知识大全
应答时间:2021-09-24,最新业务变化以文中链接内展示的数据为准,请点击查看
㈦ 怎样自动导出通达信股票数据
方法:打开一个股票的K线图,34,【数据导出】,【高级导出】,【添加股票】,把沪A、深A的股票全部选上,选择好路径,选择【开始导出】即可。
股票是股份公司发行的所有权凭证,是股份公司为筹集资金而发行给各个股东作为持股凭证并借以取得股息和红利的一种有价证券。每股股票都代表股东对企业拥有一个基本单位的所有权。每支股票背后都有一家上市公司。同时,每家上市公司都会发行股票的。
同一类别的每一份股票所代表的公司所有权是相等的。每个股东所拥有的公司所有权份额的大小,取决于其持有的股票数量占公司总股本的比重。
股票是股份公司资本的构成部分,可以转让、买卖,是资本市场的主要长期信用工具,但不能要求公司返还其出资。
㈧ 股票中𠃊〇W是什么意思
你好,股票low通常是指股价被低估的一类股票。这类股票通常具有低市盈率与市净率、高股息的特征。
风险揭示:本信息部分根据网络整理,不构成任何投资建议,投资者不应以该等信息取代其独立判断或仅根据该等信息作出决策,不构成任何买卖操作,不保证任何收益。如自行操作,请注意仓位控制和风险控制。
㈨ 股票技术分析中的MACD,KDJ,RSI,BOLL,OBV,W&R,DMI,ASI,MIKE,VR,EXPMA,ARBR,SAR,BETA分别代表什么意思
我跟你说主要的吧!
MACD根据两条不同速度的指数平滑移动平均线来计算两者之间的离差状况作为行情研判的基础,实际是运用快速与慢速移动平均线聚合与分离的征兆,来判断买进与卖出的时机与信号。MACD使用滞后性的均线指标,来显示趋势特征。当用长均线减去短均线后,这些滞后指标就成为了一个动力振荡指标(Momentum oscillator)。其结果是它构造了一根在零点线上下摆动的振荡线,并且没有上下幅度限制。在实际操作中,MACD指标不但具备抄底(价格、MACD背离时)、捕捉强势上涨点(MACD连续二次翻红时买入)的功能,而且能够捕捉最佳卖点,帮助投资者成功逃顶。
KDJ指标的应用法则KDJ指标是三条曲线,在应用时主要从五个方面进行考虑:KD的取值的绝对数字;KD曲线的形态;KD指标的交叉;KD指标的背离;J指标的取值大小。
第一,从KD的取值方面考虑。KD的取值范围都是0~100,将其划分为几个区域:80以上为超买区,20以下为超卖区,其余为徘徊区。
根据这种划分,KD超过80就应该考虑卖出了,低于20就应该考虑买入了。应该说明的
是,上述划分只是一个应用KD指标的初步过程,仅仅是信号,完全按这种方法进行操作很容易招致损失。
第二,从KD指标曲线的形态方面考虑。当KD指标在较高或较低的位置形成了头肩形和多重顶(底)时,是采取行动的信号。注意,这些形态一定要在较高位置或较低位置出现,位置越高或越低,结论越可靠。
第三,从KD指标的交叉方面考虑。K与D的关系就如同股价与MA的关系一样,也有死亡交叉和黄金交叉的问题,不过这里交叉的应用是很复杂的,还附带很多其他条件。
以K从下向上与D交叉为例:K上穿D是金叉,为买入信号。但是出现了金叉是否应该买
入,还要看别的条件。第一个条件是金叉的位置应该比较低,是在超卖区的位置,越低越好。
第二个条件是与D相交的次数。有时在低位,K、D要来回交叉好几次。交叉的次数以2次为最少,越多越好。
第三个条件是交叉点相对于KD线低点的位置,这就是常说的“右侧相交”原则。K是在D已经抬头向上时才同D相交,比D还在下降时与之相交要可靠得多。
第四,从KD指标的背离方面考虑。在KD处在高位或低位,如果出现与股价走向的背离,则是采取行动的信号。
第五,J指标取值超过100和低于0,都属于价格的非正常区域,大于100为超买,小0为超卖。
RSI的原理简单来说是以数字计算的方法求出买卖双方的力量对比,譬如有100个人面对一件商品,如果50个人以上要买,竞相抬价,商品价格必涨。相反,如果50个人以上争着卖出,价格自然下跌。
强弱指标理论认为,任何市价的大涨或大跌,均在0-100之间变动,根据常态分配,认为RSI值多在30-70之间变动,通常80甚至90时被认为市场已到达超买状茶(Overbought),至此市场价格自然会回落调整。当价格低跌至30以下即被认为是超卖(Oversold),市价将出现反弹回升。
㈩ 如何编程从免费股票软件中提取实时数据
自己写程序的话,一种方法是从已提供的信息源,例如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 ct
import pandas as pd
import json
from urllib2 import urlopen,Request
def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
获取个股历史交易数据
--------
输入:
--------
code:string
股票代码 比如:601989
start: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分钟
输出:
--------
DataFrame
date 日期
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_COLS
else:
cols = ct.DAY_PRICE_COLS
df = 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'%code
def 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 url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
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'))