我常用的两种数据获取方式

 
 

edf1a3907b8b5bf07aebe14557e82f97.gif

 
 
公众号后台回复“图书“,了解更多号主新书内容

     作者:xiaoyi

     来源:小一的学习笔记

财经数据因为其特殊性,数据的获取方式也比较多样

最常见的就是通过各类财经网站,像雪球、网易财经、微博财经等都可以获取到当天的数据,甚至几天前、几十天前的数据也都可以通过修改参数拿到。

唯一的问题是频繁的访问会被限制爬虫程序的运行,所以我更推荐下面两种方法

  • 1. 通过 万矿平台 在线运行代码

  • 2. 通过 tushare 接口在本地运行代码

1. 万矿平台

万矿对应的官网是:https://www.windquant.com/

登录之后可以在右上方选项卡点击『研究1.0』进入个人研究界面

70a2903417c78516d24436b0cfd7f626.png

之后就能看到左侧的选项卡看到相应的菜单,对应的代码文件都会在『Notebook』文件夹下。

14ac4bf9329291b5d4c927e0b843e785.png

就拿上一篇文章 比普通定投高20%的支付宝智能定投策略,30行代码轻松复现 来举例:

点击『新建』创建新的 Notebook 文件,进入之后就是一个标准的 Jupyter Notebook 编辑界面。虽然功能可能没有本地运行的 Jupyter 功能多,但是该有的东西它都有了

先导入相应的库:

import numpy as np
import pandas as pd
from WindAlgo import *
from WindPy import *

上一篇中漏掉了 get_kk_ratio 这个函数,具体代码如下:

# 计算扣款率
def get_kk_ratio(data):
    if data[0]>100:
        return 60
    elif data[0]>50:
        return 70
    elif data[0]>15:
        return 80
    elif data[0]>0:
        return 90
    elif data[0]>-5:
        return 60 if data[1]>5 else 160
    elif data[0]>-10:
        return 70 if data[1]>5 else 170
    elif data[0]>-20:
        return 80 if data[1]>5 else 180
    elif data[0]>-30:
        return 90 if data[1]>5 else 190
    elif data[0]>-40:
        return 100 if data[1]>5 else 200
    else:
        return 110 if data[1]>5 else 210

然后将上一篇中的代码挨个复制到后面,直接运行后即可出结果

代码比较多,我这里直接贴截图,想复现的同学可以自己去上一篇复制代码:比普通定投高20%的支付宝智能定投策略,30行代码轻松复现

f293a4f930d64f95e609e99b1c88573f.png

为了避免出错,建议你直接复制我的代码粘贴上去

因为 Notebook 显示的结果中间会被省略掉,可以将以下两行代码放在代码的头部进行声明,会显示出所有的数据。

# 显示所有列
pd.set_option('display.max_columns', None)
# 显示所有行
pd.set_option('display.max_rows', None)

2. tushare平台

由于万矿平台上的代码只限在该平台上运行,并且保存的数据无法下载到本地,所以我一般在万矿上都只进行策略的复现和回测,确定了策略是可用的之后,才会使用 tushare 接口进行每日的定时监控。

tushare 对应的官网是:https://tushare.pro/

由于它的数据接口是可以直接在本地 py 文件中调用,所以获取到的粒度数据也就可以直接保存到本地,方便进行其他的分析操作。

需要说明的是,tushare 不同粒度的数据对应的积分不同,但是对于我们来说,刚注册的账户基本够用

注册之后记得更新个人资料(随便写),可获得20积分

登录之后通过点击『个人主页』后点击『接口TOKEN』复制你自己的 token码

b46735e460aa839846c42efb4ef885c4.png

通过这个 token 码你可以获取到你自己目前积分所对应的粒度数据

同样拿之前的一篇文章 基于北向资金的择时买入卖出策略复现 来举例:

在本地新建一个 Python 文件(不限编辑器,均可)

首先,在文件中导入相应的库:

# 导入相应的库
import tushare as ts
import datetime
import pandas as pd
import numpy as np

使用自己的接口获取数据:

# 将 token 替换成你自己的就行
token = '你自己的token'
pro = ts.pro_api(token)
"""获取所有交易日数据"""
trade_date = pro.trade_cal(start_date='20180101', end_date=datetime.datetime.today().strftime('%Y%m%d'))
date_list = list(trade_date[trade_date.is_open == 1]['cal_date'].values)

具体每一步的代码在 基于北向资金的择时买入卖出策略复现 中已经全部开源了,下面我直接贴每一步的截图和运行截图

具体代码如下:

31898bb292e9dff635ccfac7f986cd9b.png

运行结果截图如下:

8f4700e5fbcf099190283d4a5c129ff8.png

策略复现部分的代码如下:

3aaebe7a5b2eaa475a9b0e6cd3646e3a.png

运行结果部分截图如下:

819c81790cb85c0530a0c079f19054c6.png

以上就是我在进行策略回测之前获取日粒度数据所用的平台和接口

一般情况下我会先在万矿上将策略实现,并且使用不同的时间参数、不同的权重参数进行收益率的回测,一旦收益率达到要求并且比较普遍适用,我会切换到 tushare 接口并写出一个本地文件,将文件部署到服务器之后可实现每日策略操作的定时推送。

总体来看,如果你是想要分析长期数据并进行定时监控,建议你试试我的操作思路。当然了,如果你有更好的方法,也欢迎与我一起交流。

◆ ◆ ◆  ◆ ◆
麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
 
 
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:


猜你喜欢

● 卧槽!原来爬取B站弹幕这么简单
● 厉害了!麟哥新书登顶京东销量排行榜!
● 笑死人不偿命的知乎沙雕问题排行榜

● 用Python扒出B站那些“惊为天人”的阿婆主!
● 你相信逛B站也能学编程吗
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值