添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Repository files navigation

finance:Stata与金融

这个程序包里面包含了一些金融数据获取、绘图的Stata命令。

安装方法一:

net install finance, from("http://www.czxa.top/finance")

安装方法二(推荐):

  • 首先你需要安装github命令,这个命令是用来安装github上的命令的:
  • net install github, from("https://haghish.github.io/github/")
  • 然后就可以安装这个命令了:
  • github install czxa/finance, replace

    安装方法三:

  • 另外你也可以从这里把ado文件和sthlp文件下载下来,然后放在你的Stata系统文件夹里,查看系统文件夹的路径可以运行下面的命令:
  • sysdir
  • 放在那个文件夹里都可以,推荐放在plus文件夹里。
  • bitcoin -- 自动获取比特币价格数据和波动率指数并绘制一幅JavaScript图表

    bitcoin

    cnstock2 -- 爬取沪市、深市或两市所有上市公司基本情况数据

    这个命令需要两个shell命令支持,具体阅读我的这篇博客: 彻底解决Stata无法读取过宽文件的问题&cnstock2命令获取上市公司基本情况信息 。Mac用户可以直接使用。Windows用户需要安装curl和 sed 才能使用。

    /* 下载两市所有上市公司的基本情况数据: */
    cnstock2
    /* 下载沪市所有上市公司的基本情况数据: */
    cnstock2, m(SH)
    /* 下载深市所有上市公司的基本情况数据: */
    cnstock2, m(SZ)

    cntrade2 -- 从网易财经获取股票交易数据

    这个命令是对李春涛的cntrade的修改,主要是通过修改变量的名称使之更方便使用。

    cntrade2 codelist, [s:tart(string) e:nd(string) s:tock i:ndex]
  • codelist 一列股票代码,使用空格分割。
  • 对于每一个股票代码会输出一个Stata数据集文件;
  • 输出的数据集中包含了该股票的交易数据; 输出数据集的名字是上市公司的股票代码;
  • 中国上市公司的股票代码为六位数字,这不同与纽约证券交易所。 例如: 000001 平安银行 000002 万科 600000 浦发银行 600005 武钢股份
  • 开头的0是可以被省略的。
  • start(string):数据起始日期;
  • end(string):数据截止日期;
  • stock:指定代码为股票代码,这是默认的;
  • index:指定代码为股票指数代码。
  • cntrade2 1, start(20180101) end(20180701)
    cntrade2 1, start(20180101) end(20180701) index

    copen -- 在Stata中打开指定文件、网页或文件夹

    注意:Windows系统下只能打开文件。

    copen www.baidu.com
    copen temp.txt

    ctbc2 -- 从中国债券信息网获取2002年以来的各个期限的中债国债到期收益率数据

    ctbc2

    exrate -- 从第一黄金网获取财经时间序列数据

    这个命令的详细介绍可以参考这篇文章: exrate——从第一黄金网获取财经数据 。这个命令大概可以获取400个观测值,可以用于获取汇率、黄金、指数等数据。

    exrate USDCNY

    exrate2 -- 从和讯网获取汇率时间序列数据

    这个比起上面的那个有所进步,可以获取过去一千个观测值。 由于exrate命令获取数据的能力有限,所以我又写了这个exrate2命令。 一些可以获得的汇率列表可以在这个网页上找到: http://quote.hexun.com/forex/default.aspx

    exrate2 USDCNY

    fxrate -- 在Stata中查询人民币的汇率

    fxrate

    ipanel -- Tradeconomics数据接口,提供30+种各国数据的下载

    ipanel arg [, c:ontinent(string)]
  • 该命令将会自动爬取指定的数据变量。
  • arg: 指定下载的数据变量。
  • continent(string): 指定下载哪个大洲的国家,如果不指定则为全世界。可选洲为:europe/america/asia/africa/australia/g20(G20国家)

    ipanel interest-rate
    ipanel interest-rate, c(g20)

    kline2 -- 调用ECharts绘制蜡烛图

    kline2 code, [start(string) end(string) stock index scheme(string)]
  • code 股票代码
  • 中国上市公司的股票代码为六位数字,这不同与纽约证券交易所。 例如: 000001 平安银行 000002 万科 600000 浦发银行 600005 武钢股份
  • 开头的0是可以被省略的。
  • 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 -- 将数值型日期转变成字符串型日期

    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 -- 把日期时间变量转换成毫秒记的时间戳

    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 -- 在Stata中查询中国重要利率

    这就是著名的裴政利率! 该命令将会自动输出一个包含人民币重要利率的表格。

    pzrate

    stkd -- 根据输入的股票代码查询股票的详细信息

    基本语法:

    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 -- 绘制股价棒状图

    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 -- 绘制股价蜡烛图

    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 -- 绘制股价蜡烛图+移动平均线

    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 -- UTF-8转码

    这个可以非常方便的进行文件转码。

    utrans temp.dta
    utrans temp.txt