开发自己的量化交易系统,5年一个亿(一)------获取所有股票列表

862 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情

前言

使用量化交易系统能实现自己的小目标么?

只能说这种成功的概率很低,但是只要有10%的成功的几率,那么我们也要试试呀,万一成功了呢。

咱们也不要觉得一两年就能实现这个目标,我们就定一个计划,5年实现,咱们也来一个五年计划

过去的2022年大家都知道80%的股民都是亏损的,但是如果你能有一个自己的交易系统,进行选股的话,2022年身价上亿也不是不可能的

image.png

所以去实现我们的梦吧

获取股票数据的平台

1. tushare

本来最初我想用这个库的,但是一看到需要设置token的时候,我就知道肯定要收费,虽然平台明面上不说

一调用说权限不够,需要积分啥的,算了,换平台,找一个真正适合平民的库,其实使用哪个库无所谓,没有太大区别

2. efinance

efinance 是由个人打造的用于获取股票、基金、期货数据的免费开源 Python 库,你可以使用它很方便地获取数据以便更好地服务于个人的交易系统需求。

我们要求不多,够用就行, efinance中文的意思是财务,使用它会让你发大财的

efinance官网地址

获取股票列表

首先我们创建一个项目Trade(交易)

在项目根目录创建data(数据)文件夹

data文件夹中创建stock.py

# 引入efinance库
import efinance as ef;

在文档中找一下获取股票列表方法

image.png 看一下也能获取获取不少市场的股票呢

def get_stock_list():
    """
    # 获取所有A股股票代码
    :return
    """
    # 将所有股票列表转换成数组
    stock_list = ef.stock.get_realtime_quotes(['沪深A股']);
    return stock_list['code'];

image.png

完美的获取了股票列表

我们设置一下列展开

pd.set_option('display.max_columns', 1000)

image.png

发现展现的列很多,有些是我们不需要的,而且还是中文,调用的时候不太好调用,所以我们写一个转化函数

def handle_data(data):
    # 数据转化
    data.rename(
        columns={
            "股票名称": 'name',
            "股票代码": 'code',
            "日期": 'date',
            "开盘": 'open',
            "收盘": 'close',
            "最高": 'high',
            "最低": "low",
            "涨跌幅": 'close_pct',
            "成交量": 'volume',
            "成交额": 'money'
        },
        inplace=True
    );
    return data;

然后在列表中使用次方法转化, 并只返回自己需要的信息

def get_stock_list():
    """
    # 获取所有A股股票代码
    :return
    """
    # 将所有股票列表转换成数组
    stock_list = ef.stock.get_realtime_quotes();
    stock_list = handle_data(stock_list);
    # 只需要股票代码和股票名称信息
    return stock_list[['code', 'name']];

image.png

good, 符合预期

总结

今天我们主要讲了如何获取股票列表,讲了使用哪个平台获取数据

接下来五年时间里我会一直探索量化交易,不定期更新,希望大家支持,一起发财