⑴ 如何提取股票1分钟k线数据股票分时数据导出成文本格式
你得看什么软件假如是通晓信的话默认1分钟周期是不克不及看到那么久的即使看到屏幕显示也是个问题。导不出文本格局。
⑵ 如何用excel获取网页上的股票数据,并按照日期制成表格
打开通达信行情软件,切换到某个股票的K线图状态,再按F1,菜单“系统”里选择“数据导出”,点“高级导出”,文件名“.TXT”改为“.XLS",点“添加品种”找到自己保存的股票,再点“开始导出”就OK了。
⑶ 如何编程从免费股票软件中提取实时数据
自己写程序的话,一种方法是从已提供的信息源,例如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'))
⑷ 如何根据一组数据进行曲线拟合
您好,这样的:一、
单一变量的曲线逼近
matlab有一个功能强大的曲线拟合工具箱
cftool
,使用方便,能实现多种类型的线性、非线
性曲线拟合。下面结合我使用的
matlab
r2007b
来简单介绍如何使用这个工具箱。
假设我们要拟合的函数形式是
y=a*x*x
+
b*x,
且a>0,b>0
。
1、在命令行输入数据:
》x=[110.3323
148.7328
178.064
202.8258033
224.7105
244.5711
262.908
280.0447
296.204
311.5475]
》y=[5
10
15
20
25
30
35
40
45
50]
2、启动曲线拟合工具箱
》cftool
3、进入曲线拟合工具箱界面“curve
fitting
tool”
(1)点击“data”按钮,弹出“data”窗口;
(2)利用x
data和y
data的下拉菜单读入数据x,y,可修改数据集名“data
set
name”,然
后点击“create
data
set”按钮,退出“data”窗口,返回工具箱界面,这时会自动画出数
据集的曲线图;
(3)点击“fitting”按钮,弹出“fitting”窗口;
(4)点击“new
fit”按钮,可修改拟合项目名称“fit
name”,通过“data
set”下拉菜单
选择数据集,然后通过下拉菜单“type
of
fit”选择拟合曲线的类型,工具箱提供的拟合类
型有:
custom
equations:用户自定义的函数类型
exponential:指数逼近,有2种类型,
a*exp(b*x)
、
a*exp(b*x)
+
c*exp(d*x)
fourier:傅立叶逼近,有7种类型,基础型是
a0
+
a1*cos(x*w)
+
b1*sin(x*w)
gaussian:高斯逼近,有8种类型,基础型是
a1*exp(-((x-b1)/c1)^2)
interpolant:插值逼近,有4种类型,linear、nearest
neighbor、cubic
spline、shape-
preserving
polynomial:多形式逼近,有9种类型,linear
~、quadratic
~、cubic
~、4-9th
degree
~
power:幂逼近,有2种类型,a*x^b
、a*x^b
+
c
rational:有理数逼近,分子、分母共有的类型是linear
~、quadratic
~、cubic
~、4-5th
degree
~;此外,分子还包括constant型
smoothing
spline:平滑逼近(翻译的不大恰当,不好意思)
sum
of
sin
functions:正弦曲线逼近,有8种类型,基础型是
a1*sin(b1*x
+
c1)
weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
选择好所需的拟合曲线类型及其子类型,并进行相关设置:
——如果是非自定义的类型,根据实际需要点击“fit
options”按钮,设置拟合算法、修改
待估计参数的上下限等参数;
——如果选custom
equations,点击“new”按钮,弹出自定义函数等式窗口,有“linear
equations线性等式”和“general
equations构造等式”两种标签。
在本例中选custom
equations,点击“new”按钮,选择“general
equations”标签,输入函
数类型y=a*x*x
+
b*x,设置参数a、b的上下限,然后点击ok。
⑸ 什么是拟合指数
拟合指数 Simulation Index/fit index/Agreement Index
拟合是《计量经济学》研究的范畴,所谓拟合指数简单的说就是选择的变量与被解释变量之间的相关关系
股票\基金拟合指数:
指数基金是一种拟合目标指数、跟踪目标指数变化为原则,实现与市场同步成长的基金品种。指数基金的投资采取拟合目标指数收益率的投资策略,分散投资于目标指数的成分股,力求股票组合的收益率拟合该目标指数所代表的资本市场平均收益率。
操作简单透明度高
从理论上讲,指数基金的运作方法简单,只要根据每一种证券在指数中所占的比例购买相应比例的证券,长期持有就可。
其次,指数基金费用低廉。由于指数基金采取持有策略,不用经常换股,交易成本远远低于积极管理的基金。
此外,指数基金的业绩透明度较高。投资人看到指数型基金跟踪的目标基准指数涨了,就会知道自己投资的指数型基金今天净值大约能升多少。所以很多机构投资人和一些看得清大势、看不准个股的个人投资者比较喜欢投资指数型基金,不必再有“赚了指数不赚钱”的苦恼。
有效规避非系统性风险
与其他基金相比,指数基金的优点首先在于能够有效规避非系统性风险,因而指数基金广泛地分散投资,任何单个股票的波动都不会对指数基金的整体表现构成影响,从而分散风险。另一个方面,由于指数基金所钉住的指数一般都具有较长的历史可以追踪,在一定程度上指数基金的风险是可以预测的。
因此,从长期来看,指数基金投资业绩优于其他基金。2006年,市场上的指数基金以平均125.87%的年累计净值增长率成为最赚钱的基金品种。这种基金不会对某些特定的证券或行业投入过量资金。它一般会保持全额投资而不进行市场投机。
关键因素拟合指数化投资方法的实证研究
指数化投资是一种试图完全复制某一证券价格指数或者按照证券价格指数编制原理构建投资组合而进行的证券投资。按此种方式投资的基金称为指数基金,其收益水平目标是所基指数的变化幅度。自20世纪90年代以来,美国华尔街上大多数股票基金管理人的业绩都低于同期市场指数的表现,这样,以复制市场指数走势为核心思想的指数基金在全球范围内迅速发展壮大起来,并对传统的证券投资思维形成巨大的冲击与挑战。在美国,指数基金的收益超过65~80%的共同基金,因而越来越受到欢迎。流入共同基金市场的新增资金中,流入指数基金的比例由1994年的2%增加到1999年的31%。1999年末美国指数基金总资金量达到3380亿美元,占全美股票基金总量的8.37%。最大的指数基金、也是全美最大的共同基金Vanguard S&P 500管理着1050亿美元的资金。
我国的指数化投资出现较晚,这主要是因为我国的证券市场还比较年轻,还在不断探索和发展,我国的投资者群体还不成熟,缺乏科学的投资观念,市场行为的监管还欠完善,庄家炒作等非市场行为对股指有较大影响。由于这些原因的共同影响,我国股票指数常常与市场背离,不能反映市场的真实情况。
就指数化投资方法而言,市场上常用的方法主要是完全复制某一证券价格指数或者按照证券价格指数编制原理构建投资组合。这种传统的指数化投资方法相对比较被动,在大盘正常运行的时候可以良好运作,但是当部分样本股出现异常的快速上扬或急速下跌时,将失去进一步盈利和及时止损的机会。为了弥补这一不足,各种替代方法应运而生。
Francesco Corielli与Massimiliano Marcellino(2002)认为跟踪指数是要建立指数的替代投资组合(replica),这个替代投资组合包含的股票要远远少于指数所包含的股票,并且跟踪误差中不包含非经常性成份,他们运用动态因子提取方法建立指数替代投资组合,用蒙特.卡罗经验指数和EURO STOXX50指数进行了验证。验证结果令人鼓舞,替代投资组合基本完成了跟踪曲线[7]。吴冲锋(2000)运用未定因素含义法分析1998年7月8日至1999年3月29日期间上证30指数样本股,得出由6只股票的投资组合替代上证30指数的结论[6]。
从以上研究我们发现,指数化投资方法不一定非要按照证券价格指数编制原理构建投资组合,可以通过构建替代投资组合对指数进行跟踪。在此基础上,笔者提出关键因素拟合指数化投资方法,该方法认为,股票指数由其样本股按照证券价格指数编制原理构成,它的走势体现了这些样本股的共同作用,但并不是每一只样本股对指数的贡献都一样,股票指数中存在关键性因素,这些关键因素对股指的影响体现在各自所代表的样本股的表现之上。同样,也并不是每一种关键因素所代表的样本股对它的贡献都一样,关键因素中存在最具代表性的关键样本股,正是这些最具代表性的关键样本股对股票指数起着举足轻重的作用,我们只要抓住了它们就抓住了股票指数,换句话说,我们只要投资于这些关键因素拟合的组合就等于投资了这个股票指数了。另外,同一关键因素中具有代表性的关键样本股之间具有可替代性,可以使对股票指数的投资更加灵活,又不会影响投资组合的指数化性质,在一定程度上弥补了传统方法的不足。
下面我们将以上证50指数为研究对象,对关键因素指数化投资方法进行实证研究。论文的结构安排如下:首先,我们进行研究设计,确定研究的程序、模型、样本及数据;然后,我们对数据进行因子分析,提取出上证50指数的关键因素;在此基础上,我们将按关键因素构造出的投资组合与实际的上证50指数进行相关性检验和回归分析以验证该方法;最后得出结论。
研究设计
一、 研究程序与模型设计
第一步,我们要找出影响上证50指数走势的关键性因素。
我们以上证50指数成份股个股的日收益率为基础进行因子分析,提取出反映上证50指数走势的n个共同因子,这n个共同因子即代表了影响上证50指数走势的n个关键因素的。构造多因素模型如下:
Index50=A1*F1+A2*F2+……+An*Fn+ε
式中:Index50为上证50指数;Fn为第n个共同因子;An为第n个共同因子对上证50指数的贡献率;ε为残差。
在找出这n个关键因素之后,我们要进一步找出这n种关键性的共同因子所代表的样本股。对应关系如下:
F1~a1(stock11)+a2(stock12)+……
F2~b1(stock21)+b2(stock22)+……
…………………………………
Fn~n1(stockn1)+n2(stockn2)+……
式中:Fn为第n个共同因子;stock为共同因子所代表的样本股;a、b……n为样本股对共同因子的贡献率,即因子负荷。
观察共同因子的因子负荷强弱,我们可以分析判断出各个共同因子所反映的关键因素,并对它们进行相应的解释。
第二步,为了证明我们找出的这n个关键因素是否真的能够反映上证50指数的走势。我们用它们中最具代表性的一组样本股构造出一个投资组合Portfolio50,与上证50指数Index50进行比较,验证是否Portfolio50与Index50等价。
为此,我们找出对这n个关键因素最有代表性的i个样本股,按照其方差对总方差解释的贡献率所占比重作为权重构造投资组合如下:
Portfolio50=w1*STOCK1+w2*STOCK2+……+wi*STOCKi
式中:Portfolio50为构造的投资组合的日收益率;STOCKi为参与构造投资组合的第i个最有代表性的样本股的日收益率;wi为第i只样本股的权重。
计算出投资组合Portfolio50的日收益率和上证50指数的日收益率Index50,在通过相关性检验之后,将Portfolio50与Index50进行线性回归分析。构造回归模型如下:
Portfolio50=a+b*(Index50)+ε
式中:Portfolio50为构造的投资组合的日收益率;Index50为上证50指数的日收益率;a为常数项;b为回归系数;ε为残差。
如果该模型经检验成立,并且a趋近于0,同时b趋近于1,那么Portfolio50≈Index50,即Portfolio50与Index50等价,说明我们找出的这n各关键性因素能够真实地反映上证50指数的走势,Portfolio50可以代替上证50指数进行指数化投资。
二、 模型变量计算
上证50指数成份股个股日收益率用相对收益率计算,假如碰到配股、送股、送现金红利的情况,则用下面的公式计算:
式中:rit为第i种股票的第t日收益率;Pt、Pt-1分别为t日和t-1日的收盘价;C为以t-1日为基准的t日每股现金红利;As为以t-1日为基准的t日每股配股比例;S为以t-1日为基准的t日每股配股价;Ad为以t-1日为基准的t日每股送股比例。
上证50指数日收益率Index50同样用相对收益率计算,公式如下:
式中:Rt为上证50指数的第t日收益率;Pt、Pt-1分别为上证50指数t日和t-1日的收盘价。
三、 研究样本选择
本文研究中所需的上证50指数收盘价、成份股个股的收盘价、现金红利等原始交易数据来源于上海万国股市测评咨询有限公司制作的“大智慧证券信息平台V5.00”。
因子分析过程中,样本数据时期为2002年12月03日至2004年03月18日,每只样本股包含309条数据记录。由于各种原因引起暂时停牌而产生的缺失值采用相邻数据平均法填补。
考虑到个别新上市公司样本股上市日期太短,样本数据数量不充分,业绩容易出现非正常波动,而且公司内部各方面的运行机制还不够健全和完善,为使检验不受少部分数据干扰,将其剔出样本股,在关键因素确立之后再根据专业知识单独判断其属性。剔出样本股共五只,分别为:白云机场(600004)、华夏银行(600015)、南方航空(600029)、中信证券(600030)和长江电力(600900)。
综上,因子分析样本股中共纳入45只上证50指数样本股,每只含309条日收益率记录,共计309组,13905条日收益率记录。
相关性检验与回归分析过程中,由于上证50指数自2004年1月2日起正式发布,指数简称上证50,指数代码000016,基日为2003年12月31日。到目前为止数据量太小,所以我们无法直接用它计算。但是上海证券交易所为上证50的顺利推出,于2003年1月2日起发布上证50板块概念指数993265。其编制方法与走势和上证50基本相同,只是所取的基数有所不同。在此我们用上证50板块概念指数993265数据代替上证50指数000016数据进行计算。计算的时间跨度为前面分析时期的子集区间2003年07月22日至2004年03月12日,同样,缺失值的处理方法采用相邻数据平均数填补法,共计155组数据。
因子分析
表1 KMO统计量和Bartlett’s球形检验表
Kaiser-Meyer-Olkin Measure of Sampling Adequacy. .958
Bartlett's Test of Sphericity Approx. Chi-Square 9857.426
df 990
Sig. .000
首先,我们对各样本股日收益率数据采用KMO统计量和Bartlett’s球形检验,以判断样本数据是否符合因子分析的前提条件。可以看出,表格中检验变量间偏相关性的KMO统计量,数值为0.958,接近1,表明各变量间的相关程度无太大差异,数据非常适合做因子分析。同时,Bartlett’s球形假设检验的结果也被拒绝,强烈认可了变量之间的相关性,说明各样本股日收益率之间存在共同信息,符合提取共同因子的前提条件。见表1。
本文采用的因子提取方法为主成分分析法(Principal Components Analysis)。考虑到共同因子的可解释性,在提取因子的过程中采用正交旋转,具体旋转方法为方差最大化正交旋转(Varimax)。根据提取的主成分共同因子的累积贡献率达到约85%以上为标准,一共提取20个共同因子。信息提取的充分性检验表(略)告诉我们,按照上诉共同因子提取标准,样本股信息的提取基本是充分的。
表2 共同因子所解释的方差百分比表
Factor F1 F2 F3 F4 F5 F6 F7 F8 F9 F10
%of Variance 42.311 6.849 4.540 3.208 2.395 2.856 2.367 2.133 2.035 1.844
Cumulative% 42.311 49.160 53.700 56.908 59.764 62.158 64.525 66.658 68.693 70.537
Factor F11 F12 F13 F14 F15 F16 F17 F18 F19 F20
%of Variance 1.728 1.674 1.553 1.491 1.410 1.324 1.286 1.261 1.201 1.154
Cumulative% 72.265 73.939 75.491 76.982 78.392 79.716 81.002 82.263 83.464 84.618
我们把共同因子所解释的方差百分比(表2)作为因子对指数所贡献的权重,相应的多因素模型如下:
Index50=0.4231*F1+0.0685*F2+0.0454*F3+0.0321*F4+0.0286*F5+0.0239*F6+0.0237*F7+0.0213*F8+0.0204*F9+0.0184*F10+0.0173*F11+0.0167*F12+0.0155*F13+0.0149*F14+0.0141*F15+0.0132*F16+0.0129*F17+0.0126*F18+0.0120*F19+0.0115*F20+ε
经过方差最大化正交旋转之后,将因子和变量之间因子负荷大于0.4的变量提出来,再根据同一样本股对共同因子的贡献大小取相对较大的值。我们得到以下20个共同因子所主要代表的样本股列表,见表3。
表4 共同因子代表样本股列表
F1 600028 中国石化 F5 600664 哈药集团
600808 马钢股份 600038 哈飞股份
600688 上海石化 F6 600839 四川长虹
600019 宝钢股份 600033 福建高速
600026 中海发展 600008 首创股份
600569 安阳钢铁 F7 600591 上海航空
600050 中国联通 600221 海南航空
600036 招商银行 F8 600795 国电电力
600350 山东基建 600011 华能国际
600649 原水股份 600642 申能股份
600000 浦发银行 F9 600643 爱建股份
F2 600602 广电电子 F10 600887 伊利股份
600832 东方明珠 600597 光明乳业
600637 广电信息 F11 600016 民生银行
600100 清华同方 F12 600811 东方集团
600171 上海贝岭 F13 600652 爱使股份
600601 方正科技 F14 600006 东风汽车
F3 600609 金杯汽车 F15 600812 华北制药
600805 悦达投资 F16 600705 北亚集团
600104 上海汽车 F17 600895 张江高科
F4 600717 天津港 F18 600863 内蒙华电
600018 上港集箱 F19 600098 广州控股
600009 上海机场 F20 - -
各个共同因子与样本股的因子负荷对应关系如下:
F1~0.84(600028)+0.84(600808)+0.83(600688)+0.82(600019)+0.65(600026)+0.61(600569)+0.61(600050)+0.55(600036)+0.53(600350)+0.46(600649)+0.45(600000)
F2~0.88(600602)+0.86(600832)+0.85(600637)+0.78(600100)+0.69(600171)+0.49(600601)
F3~0.81(600609)+0.75(600805)+0.63(600104)
F4~0.76(600717)+0.67(600018)+0.46(600009)
F5~0.88(600664)+0.85(600038)
F6~0.66(600839)+0.49(600033)+0.46(600008)
F7~0.72(600591)+0.67(600221)
F8~0.56(600795)+0.55(600011)+0.52(600642)
F9~0.83(600643)
F10~0.75(600887)+0.40(600597)
F11~0.80(600016)
F12~0.81(600811)
F13~0.81(600652)
F14~0.97(600006)
F15~0.80(600812)
F16~0.77(600705)
F17~0.78(600895)
F18~0.75(600863)
F19~0.52(600098)
F20~----------------
观察共同因子代表样本股列表与因子负荷对应关系,我们可以分析判断出各个共同因子所反映的关键因素如下:
F1对应的样本股分别为:600028中国石化、600808马钢股份、600688上海石化、600019宝钢股份、600026中海发展、600569安阳钢铁、600050中国联通、600036招商银行、600350山东基建、600649原水股份、600000浦发银行,这些都是广大股民所熟知的经营业绩优秀,净资产收益率很高的大盘蓝筹股,其中也包含了几只银行股,可以说是大盘中的大盘,蓝筹中的蓝筹,我们可以定义因子F1为“大盘深蓝股”。
F2对应的样本股分别为:600602广电电子、600832东方明珠、600637广电信息、600100清华同方、600171上海贝岭、600601方正科技,这几只股票是高科技行业的杰出代表,主营计算机、微电子和信息产业,具有高成长性,我们可以定义因子F2为“高科技成长股”。
F3对应的样本股分别为:600609金杯汽车、600805悦达投资、600104上海汽车,属于典型的汽车类股票,随着近几年汽车行业的崛起,业绩呈现稳步增长,我们可以定义因子F3为“汽车蓝筹股”。
F4对应的样本股分别为:600717天津港、600018上港集箱、600009上海机场,与水陆空港口物流和运输有密切关系,我们可以定义因子F4为“港口物流股”。
F5对应的样本股分别为:600664哈药集团、600038哈飞股份,具有明显的地域色彩,触摸到东北老工业基地的发展脉搏,我们可以定义因子F5为“东北老工业股”。
F6对应的样本股分别为:600839四川长虹、600033福建高速、600008首创股份,其中600033福建高速、600008首创股份主要是经营公益事业和基础设施,我们可以定义因子F6为“基础公益股”。但600839四川长虹的主营是电视机、空调等家用电器产品,业绩彪炳,被归于此类可以算是因统计之外原因引起的一个例外。
F7对应的样本股分别为:600591上海航空、600221海南航空,国内航空运输业的两只优质股票,我们可以定义因子F7为“航空运输股”。
F8对应的样本股分别为:600795国电电力、600011华能国际、600642申能股份,显然代表电力能源,我们可以定义因子F8为“电力能源股”。
F9对应的样本股为:600643爱建股份,是上证50成份股中的非银行类金融股,我们可以定义因子F9为“非银行金融股”。
F10对应的样本股分别为:600887伊利股份、600597光明乳业,皆为乳品业龙头,乳业产品的消费与老百姓日常生活息息相关,其业绩从一定角度上也体现了老百姓生活的富裕程度,我们可以定义因子F10为“乳品消费股”。
F11对应的样本股为:600016民生银行,银行类股票。F12对应的样本股为:600811东方集团,一只综合类股票,涉猎金融、电子商务、建材、通讯等领域。F13对应的样本股为:600652爱使股份,主营计算机硬件及网络设备。F14对应的样本股为:600006东风汽车,汽车行业股票。F15对应的样本股为:600812华北制药,医药化工产品的生产和销售。F16对应的样本股为:600705北亚集团,主营运输物流及贸易。F17对应的样本股为:600895张江高科,房地产类个股。F18对应的样本股为:600863内蒙华电,主营活力发电、供热。F19对应的样本股为:600098广州控股,从事能源、物流、基础设施等综合类股票。这些因子所代表的个股具有很强的针对性,虽然有些个股可以归结为前面几种共同因子,但从统计学角度来说,应单独列出,以保证对原始信息的完整反映。F20对应的样本股因子负荷均小于0.4,说明其可解释性很小,体现的样本股散乱,从专业的角度看没有分析价值,故此将它剔出。
对于白云机场(600004)、华夏银行 (600015)、南方航空(600029)、中信证券(600030)和长江电力(600900)这五只由于上市时间不长而被剔出的个股,我们可以运用专业知识将其归类,并在今后的分析中予以验证。白云机场(600004)主营空港物流,可归为F4;华夏银行(600015)属于银行股,可归为F11;南方航空(600029)主营航空运输业,可归为F7;中信证券(600030)为非银行金融股,可归为F9和长江电力(600900)主营电力能源,可归为F8。
综上所述,通过对上证50指数成份股个股的日收益率数据因子分析,我们提取出有实际意义的F1~F19这19个共同因子,代表了影响上证50指数走势的19个关键因素。构造多因素模型如下:
Index50=0.4231*F1+0.0685*F2+0.0454*F3+0.0321*F4+0.0286*F5+0.0239*F6+0.0237*F7+0.0213*F8+0.0204*F9+0.0184*F10+0.0173*F11+0.0167*F12+0.0155*F13+0.0149*F14+0.0141*F15+0.0132*F16+0.0129*F17+0.0126*F18+0.0120*F19 +ε
相关性检验与回归分析
我们将因子分析中提取的19种共同因子中有代表性的样本股加权组合构造出一个投资组合Portfolio50,每个样本股的权重就等于每种共同因子所解释的方差百分比在累积百分比之中所占的比重。比如:共同因子F1的权重等于(42.311/83.464=0.5069)。考虑到F1因子所代表的股票较多,且权重比例较大,故选入排名前四位的4只股票,每只股票权重取F1因子权重的四分之一,共计22只样本股。
构造投资组合如下:
Portfolio50=0.1267*((600028)+(600808)+(600688)+(600019))+0.0821*(600602)+0.0544*(600609)+0.0384*(600717)+0.0342*(600664)+0.0287*(600839)+0.0284*(600591)+0.0256*(600795)+0.0244*(600643)+0.0221*(600887)+0.0207*(600016)+0.0201*(600811)+0.0186*(600652)+0.0179*(600006)+0.0169*(600812)+0.0159*(600705)+0.0154*(600895)+0.0151*(600863)
Portfolio50与Index50相关性检验表(略)显示,Portfolio50与Index50的相关系数在0.01置信水平下为0.943,说明Portfolio50与Index50高度相关。
表4 回归模型与检验结果表
Model Sum of Squares df Mean Square F Sig.
1 Regression .025 1 .025 1238.863 .000
Resial .003 153 .000
Total .028 154
表5 回归系数与检验结果表
Model Unstandardized Coefficients Standardized Coefficients t Sig. Correlations
B Std. Error Beta Zero-order Partial Part
1 (Constant) 7.235E-04 .000 2.004 .047
INDEX50 1.021 .029 .943 35.197 .000 .943 .943 .943
从回归模型与检验结果(表4)我们可以看出该回归模型具有明显的统计学意义。从回归系数与检验结果(表5)我们可以看出该回归模型系数b具有明显的统计学意义,且b值为1.021。对于常数项的检验虽然没有统计学意义,但这无关紧要,出于常识,我们一般都将其保留在方程中,a值为0.0007235。
据此我们可以构建回归模型如下:
Portfolio50=0.0007235+1.021*(Index50)
式中:常数项a=0.0007235,非常接近于0,回归系数b=1.021,也同样接近于1。所以我们可以认为Portfolio50≈Index50。
最后,我们进行回归模型拟合效力评价分析(过程略)。由拟合模型的拟合优度简报和Durbin-Watson统计量我们可以得出确定系数R2为0.89,校正的确定系数Adjusted R2为0.889,说明该模型拟合效果显着。Durbin-Watson统计量为1.786,取值在2附近。可见残差间没有明显的相关性。为了进一步分析模型的正态性,即的残差ε是否服从正态分布,我们做出残差分布直方图和正态PP图(见图1、图2)。可见,该模型残差基本服从正态分布。
图1 残差分布直方图 图2 残差的正态PP图
结论
根据以上实证研究,我们得出如下结论:
1.在2002年12月3日至2004年3月18日期间,上证50指数的50种样本股的收益率受到19种关键因素的影响。这19种关键因素中最有代表性的是600028中国石化、600602广电电子等22只样本股。从另外一个角度看,这22只样本股的总体走势基本上反映了上证50指数的50只样本股的走势。
2.影响上证50指数的关键因素具有很强的板块效应,企业性质、经营主业、地域特征和管理业绩相同或相近的股票走势高度相关,可归为同一关键因素。但同时个股的表现也同样突出,几乎每个板块中都有个别股票表现与众不同,这些特立独行的个股由于经营、资本运作等众多原因,走出了自己的特色,成为了市场不可或缺的亮点,对指数有着重要的贡献。
3.从个股对上证50指数关键因素的影响来看,如果一个关键因素所代表的样本股的个数少,则说明这些样本股更加具有代表性。相反,如果一个关键因素所代表的样本股的个数多,则说明这些样本股之间具有可替代性,也就是说,如果需要调整投资组合,就可以在代表多数样本股的因子中进行调整,这样不会影响投资组合的代表性。
4.如果要对上证50指数进行指数化投资,不需要投资于所有的50种样本股,只需要投资于19种关键因素中最有代表性的22只关键样本股即可,构造投资组合如下:Portfolio50=0.1267*((600028)+(600808)+(600688)+(600019))+0.0821*(600602)+0.0544*(600609)+0.0384*(600717)+0.0342*(600664)+0.0287*(600839)+0.0284*(600591)+0.0256*(600795)+0.0244*(600643)+0.0221*(600887)+0.0207*(600016)+0.0201*(600811)+0.0186*(600652)+0.0179*(600006)+0.0169*(600812)+0.0159*(600705)+0.0154*(600895)+0.0151*(600863)。检验结果表明,这22种具有代表性的关键样本股构造的投资组合Portfolio50的收益率基本上反映了上证50指数Index50的收益率,并且两者的风险处在同一水平上,即可以用投资组合Portfolio50来替代上证50指数进行指数化投资。另外,由于同一关键因素所代表的股票具有可替代性,使得投资组合Portfolio50的构造更加灵活,我们可以根据市场的具体情况对该投资组合Portfolio50进行调整,同时还不会影响它对指数的反映。
以上结论说明,我们从实证研究的角度验证了关键因素拟合指数化投资方法,即指数化投资不必完全复制股票指数,股票指数中存在关键因素,利用这些关键因素构造的投资组合可以拟合出相应的股票指数,用来进行指数化投资。这种方法能够适用于多种指数,并且操作灵活积极,基金经理可以同时结合其他的分析工具,根据市场的具体情况对拟合的投资组合进行调整,从而达到最佳的投资绩效。
⑹ 如何将两个表中相同股票代码所在行的内容提取出来合并成一个表
这个可以通过VLOOKUP()语句来实现
【VLOOKUP】
VLOOKUP用于在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值,其语法形式为:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 【按列(col)查找】
其中::
1、Lookup_value:表示要查找的值,它必须位于自定义查找区域的最左列。
Lookup_value 可以为数值、引用或文字串。
2、Table_array:查找的区域,用于查找数据的区域,上面的查找值必须位于这个区域的
最左列。可以使用对区域或区域名称的引用。
3、Row_index_num:为 table_array 中待返回的匹配值的行序号。
Row_index_num 为1 时,返回 table_array 第一行的数值;
row_index_num 为 2 时,返回 table_array 第二行的数值;
依次类推。
4、Col_index_num:为相对列号。最左列为1,其右边一列为2,依次类推。
5、Range_lookup:为一逻辑值,指明函数VLOOKUP 查找时是精确匹配,还是近似匹配。
Range_lookup为:FALSE ,VLOOKUP将只查找精确匹配值。
如果Table_array 的第一列中有两个或更多值与 lookup_value 匹配,
则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A
Range_lookup为:TRUE 或被省略,则返回精确匹配值或近似
匹配值。如果找不到精确匹配值,则返回小于 lookup_value 的最大
值。并且,必须按升序排列 Table_array 第一列中的值;否则,
VLOOKUP 可能无法返回正确的值。
【TRUE 或被省略,返回的值有两种,因此,精确查找则选用参数FALSE。】
如果 Table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用从上往下,第一个升序排列段的最后一个值,如果排列段后面还有值与lookup_value 匹配。此时,反馈的还是使用从上往下,第一个升序排列段的最后一个值。
⑺ 如何快速批量导出炒股软件F10里的部分信息,最终汇总生成EXCEL文件
1.打开行情软件,点击主页最左上角的【系统】/【数据导出】,如下图所示
⑻ 股票直线拟合是什么意思
就是针对某段行情,找到一条直线,使得这段行情在该线附近振荡。
如果严格说的话,假设一段行情从t0开始,到T结束,时间单位是dt,我们把股票行情记为f(t), t是时间。而直线就可以表示为line = a t, a是斜率,t是时间。
目的就是找到一个最好的a来拟合f(t):
即 min {SUM_t0^T (f(t)-at)^2}
⑼ 怎么将股票中的数据导出到excel
1、首先在电脑桌面上打开股票软件。