这个程序包里面包含了一些金融数据获取、绘图的Stata命令。
net install finance, from("http://www.czxa.top/finance")
net install github, from("https://haghish.github.io/github/")
github install czxa/finance, replace
sysdir
bitcoin
这个命令需要两个shell命令支持,具体阅读我的这篇博客: 彻底解决Stata无法读取过宽文件的问题&cnstock2命令获取上市公司基本情况信息 。Mac用户可以直接使用。Windows用户需要安装curl和 sed 才能使用。
/* 下载两市所有上市公司的基本情况数据: */
cnstock2
/* 下载沪市所有上市公司的基本情况数据: */
cnstock2, m(SH)
/* 下载深市所有上市公司的基本情况数据: */
cnstock2, m(SZ)
这个命令是对李春涛的cntrade的修改,主要是通过修改变量的名称使之更方便使用。
cntrade2 codelist, [s:tart(string) e:nd(string) s:tock i:ndex]
cntrade2 1, start(20180101) end(20180701)
cntrade2 1, start(20180101) end(20180701) index
注意:Windows系统下只能打开文件。
copen www.baidu.com
copen temp.txt
ctbc2
这个命令的详细介绍可以参考这篇文章: exrate——从第一黄金网获取财经数据 。这个命令大概可以获取400个观测值,可以用于获取汇率、黄金、指数等数据。
exrate USDCNY
这个比起上面的那个有所进步,可以获取过去一千个观测值。 由于exrate命令获取数据的能力有限,所以我又写了这个exrate2命令。 一些可以获得的汇率列表可以在这个网页上找到: http://quote.hexun.com/forex/default.aspx
exrate2 USDCNY
fxrate
ipanel arg [, c:ontinent(string)]
continent(string): 指定下载哪个大洲的国家,如果不指定则为全世界。可选洲为:europe/america/asia/africa/australia/g20(G20国家)
ipanel interest-rate
ipanel interest-rate, c(g20)
kline2 code, [start(string) end(string) stock index scheme(string)]
start(string):数据起始日期;
end(string):数据截止日期;
stock:指定代码为股票代码,这是默认的;
index:指定代码为股票指数代码;
scheme(string):
控制绘图的主题,有dark/roma/vintage/macarons/infographic/shine六种可选,默认vintage主题。
kline2 1, start(20180101) end(20180701)
kline2 1, start(20180101) end(20180701) index
numdate2string [, split(string)]
clear
set obs 10
gen date = 10000 + _n
format date %tdCY-N-D
numdate2string date, split(/)
. list
+-----------+
| date |
|-----------|
1. | 1987/5/20 |
2. | 1987/5/21 |
3. | 1987/5/22 |
4. | 1987/5/23 |
5. | 1987/5/24 |
|-----------|
6. | 1987/5/25 |
7. | 1987/5/26 |
8. | 1987/5/27 |
9. | 1987/5/28 |
10. | 1987/5/29 |
+-----------+
numdate2timestamp [, gen:erate(newvarname)]
clear
set obs 10
gen date = 10000 + _n
format date %tdCY-N-D
numdate2timestamp date, gen(timestamp)
. list
+---------------------------+
| date timestamp |
|---------------------------|
1. | 1987-05-20 548467212288 |
2. | 1987-05-21 548553588736 |
3. | 1987-05-22 548639997952 |
4. | 1987-05-23 548726407168 |
5. | 1987-05-24 548812816384 |
|---------------------------|
6. | 1987-05-25 548899192832 |
7. | 1987-05-26 548985602048 |
8. | 1987-05-27 549072011264 |
9. | 1987-05-28 549158387712 |
10. | 1987-05-29 549244796928 |
+---------------------------+
这就是著名的裴政利率!
该命令将会自动输出一个包含人民币重要利率的表格。
pzrate
stkd codelist, [path(string) store iterm(string) fmt(string) cite]
codelist: 是一列你想要查询详细信息的股票代码列表。如果不足六位,该命令会自动在代码前面加0补齐至六位。
path(string): 指定保存文件的路径,默认为当前工作目录。
store: 选择是否要储存股票信息文件,默认不保存。
fmt(string): 选择要储存股票信息文件的格式,默认为txt格式,指定该选项时会自动保存。
cite: 如果你需要引用该命令,加上该选项可以显示引用格式。
iterm(string): 选择要直接显示出来的股票信息,默认会显示股票的名称。有一下选择,很容易发现,这些都是对应股票信息的拼音缩写:
可选选选项主要分为基础信息、工商信息、经营范围、证券信息、联系方式以及公司简介六类,使用这六个词的拼音缩写就会显示该类别的所有信息,另外可以使用_all选项显示所有的信息。
_all
: 全部信息
jcxx: 【基础信息】
gpdm: 股票代码
gsqc: 公司全称
gsywmc: 公司英文名称
cym: 曾用名
clrq: 成立日期
sshy: 所属行业
ssgn: 所属概念
ssdy: 所属地域
fddbr: 法定代表人
dlds: 独立董事
zxfwjg: 咨询服务机构
kjssws: 会计师事务所
zqswdb: 证券事务代表
jyfw: 【经营范围】
jyfw: 经营范围
zqxx: 【证券信息】
ssrq: 上市日期
ssjys: 上市交易所
zqlx: 证券类型
ltgb: 流通股本
zgb: 总股本
zcxs: 主承销商
fxj: 发行价
sssrkpj: 上市首日开盘价
sssrzdf: 上市首日涨跌幅
sssrhsl: 上市首日换手率
tbclhts: 特别处理和退市
fxsyl: 发行市盈率
zxsyl: 最新市盈率
lxfs: 【联系方式】
lxdhdm: 联系电话(董秘)
gscz: 公司传真
dzyx: 电子邮箱
gswz: 公司网站
lxr: 联系人
yzbm: 公司邮编
gsjj: 【公司简介】
gsjj: 公司简介
在运行完stkd后运行下面的命令可以查看返回值。
return list
上面所列的每一条信息都储存在返回值里。可以使用r()进行调用。
stkd 1
stkd 2, i(jyfw)
stkd 4, s
stkd 5, path(~/Desktop) s
stkd 6, fmt(dta)
stkd 7, c
stkpv2 code, [start(string) end(string) stock index]
code 股票代码
中国上市公司的股票代码为六位数字,这不同与纽约证券交易所。 例如:
000001 平安银行
000002 万科
600000 浦发银行
600005 武钢股份
开头的0是可以被省略的。
start(string):数据起始日期;
end(string):数据截止日期;
stock:指定代码为股票代码,这是默认的;
index:指定代码为股票指数代码;
stkpv2 1, start(20180101) end(20180701)
stkpv2 1, start(20180101) end(20180701) index
stkpv3 code, [start(string) end(string) stock index]
code 股票代码
中国上市公司的股票代码为六位数字,这不同与纽约证券交易所。 例如:
000001 平安银行
000002 万科
600000 浦发银行
600005 武钢股份
开头的0是可以被省略的。
start(string):数据起始日期;
end(string):数据截止日期;
stock:指定代码为股票代码,这是默认的;
index:指定代码为股票指数代码;
stkpv3 1, start(20180101) end(20180701)
stkpv3 1, start(20180101) end(20180701) index
stkpv4 code, [s:tart(string) e:nd(string) s:tock i:ndex a:dd(string)]
code 股票代码
中国上市公司的股票代码为六位数字,这不同与纽约证券交易所。 例如:
000001 平安银行
000002 万科
600000 浦发银行
600005 武钢股份
开头的0是可以被省略的。
add(string):添加移动平均线;
start(string):数据起始日期;
end(string):数据截止日期;
stock:指定代码为股票代码,这是默认的;
index:指定代码为股票指数代码。
stkpv4 1, start(20180101) end(20180701)
stkpv4 1, start(20180101) end(20180701) index
stkpv4 1, start(20180101) end(20180701) index add(5 15 30 90)
这个可以非常方便的进行文件转码。
utrans temp.dta
utrans temp.txt