欢迎访问369期货网 369会员登录 注册

当前位置: 主页 > 期货量化

量化交易实战04 - 机器学习在交易中的基本应用(三)基于机器学习的简单的交易策略(获取股票数据)

时间:2025-10-15 16:15|来源:369期货网|作者:369期货网|点击:
通过前面三章的演示,相信朋友们对KNN分类和回归的有了基本的了解,当然还有很多算法可以选择,例如决策树、支持向量机、线性回归、逻辑回归等。

接下来呢,西西给大家演示一下用KNN算法,基于真实的股票数据集来制定交易策略,并计算收益。



、获取股票数据
这边西西使用baostock来获取股票数据,数据库可以用 Tushare 的 Token ,也可以用Akshare,我的token一直有误,所以换成了baotock。
图片
这里需要导入一些必要的库,代码如下:
    #导入数据库Baostockimport baostock as bs#导入数据库pandasimport pandas as pdimport pickle

    运行代码,如果程序没有报错,就说明导入成功。接下来,我们可以定义一个获取股票数据的函数,以便未来还可以复用。代码如下:

      def load_stock(start_date, end_date, output_file):    """    加载股票数据并保存为Pickle文件    :param start_date: 开始日期 (字符串格式,YYYY-MM-DD)    :param end_date: 结束日期 (字符串格式,YYYY-MM-DD)    :param output_file: 输出文件名    """    try:        # 尝试读取已存在的 Pickle 文件        df = pd.read_pickle(output_file)        print("载入股票数据文件完毕")    except FileNotFoundError:        print("文件未找到,重新下载中")        # 登录 Baostock        lg = bs.login()        rs = bs.query_history_k_data_plus("sh.601318",            "date,code,open,high,low,close,preclose,volume",            start_date=start_date, end_date=end_date,            frequency="d", adjustflag="3")        data_list = []        while (rs.error_code == '0') & rs.next():            data_list.append(rs.get_row_data())        bs.logout()        df = pd.DataFrame(data_list, columns=rs.fields)        df.to_pickle(output_file)        print("数据下载完成并保存为 Pickle 文件")    return df

      运行代码之后,就完成了函数的定义。下面就可以使用这个函数来获取数据。输入代码如下:

        # 调用函数zgpa = load_stock(start_date='2017-03-09',  # Baostock 的日期格式为 YYYY-MM-DD                  end_date='2020-03-05',                  output_file='601318.pkl')

        运行代码,会提示未找到,重新下载,下载完毕。

        因为我们是首次使用,就会出现这种提示,下载好了,可以使用下面这个代码查看数据:

          import pandas as pd# 加载数据df = pd.read_pickle('601318.pkl')# 查看数据的前五行print("数据的前五行:")print(df.head())

          运行代码:

          图片


          从运行结果中可以看到,股票数据已经成功加载,包括的字段有Date(日期)、High(最高价)、Low(最低价)、Open(开盘价)、Close(收盘价)、Wolume(成交量),和preclose(上一日收盘价)。

          大家也可以尝试用其他的形式查看,西西这边随便举例演示一下:

          图片


          编辑推荐

          Copyright © 2024-2025 成都宁时科技有限公司 版权所有

          蜀ICP备2022023994号