2-深度学习挖短线股-1-股票范围选择
一、选短线个股的流程
(1)数据预处理,根据短线个股筛选标准,给个股日线数据打标。
(2)模型训练,针对每只股票,训练得到分类模型。
(3)结果预测,根据训练得到的模型,计算股票每日的分类预测值。
(4)策略回测,基于股票每日的分类预测值,回测策略收益情况。
(5)个股筛选,如果策略验证可行,即可根据模型筛选出当前符合买入条件的股票。
二、数据预处理
将短线个股的筛选问题处理为使用深度学习解决的分类问题,目标是筛选出10个交易日内,上涨幅度大于10%的股票。这里选择2017年12月31日及之前的数据作为训练数据,2018年1月1日之后的数据用于做预测。
2.1 股票范围选择
为了应用深度学习算法,需要有足够的训练数据。程序用于筛选出在 2016 年至 2017 年期间交易天数超过 300 天的股票,为后续的量化分析提供高质量的股票样本。程序从本地读取股票列表和日线数据,通过日期筛选和交易天数统计,最终将符合条件的股票代码保存为新的 CSV 文件。
2.2 功能总结
- 数据读取:从
stk_list.csv
读取全部股票代码列表。 - 筛选逻辑:遍历每支股票的日线数据,统计 2016 年 1 月 1 日至 2017 年 12 月 31 日期间的交易天数。
- 条件过滤:保留交易天数超过 300 天的股票,确保数据连续性和分析可靠性。
- 结果输出:将符合条件的股票代码保存到
dp_stock_list.csv
,作为后续分析的基础。
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 4 10:42:49 2025@author: Administrator
"""
import pandas as pd # 导入pandas库用于数据处理# 定义股票代码文件路径和结果保存路径
stk_code_file = './stk_data/stk_list.csv' # 全部股票代码列表文件
output_file = './stk_data/dp_stock_list.csv' # 符合条件的股票保存路径# 读取全部股票代码列表
stk_list = pd.read_csv(stk_code_file)['code'].tolist() # 从CSV读取股票代码并转换为列表# 初始化符合条件的股票列表
pd_stocks_list = []# 遍历每支股票,筛选符合条件的股票
for stk_code in stk_list:# 读取单支股票的日线数据df = pd.read_csv('./stk_data/d/{}.csv'.format(stk_code)) # 读取日线数据文件# 筛选2016年至2017年的数据并统计交易天数filtered_df = df[(df['date'] >= '2016-01-01') & (df['date'] <= '2017-12-31')] # 时间范围筛选valid_days = filtered_df.shape[0] # 获取筛选后的行数(交易天数)# 判断交易天数是否超过300天if valid_days > 300: # 交易天数阈值判断pd_stocks_list.append(stk_code) # 将符合条件的股票代码加入结果列表# 将符合条件的股票代码保存为CSV文件
out_df = pd.DataFrame(pd_stocks_list, columns=['code']) # 创建结果DataFrame
out_df.to_csv(output_file, index=False) # 保存为CSV,不包含索引列print(f"筛选完成,共{len(pd_stocks_list)}支股票符合条件,已保存至{output_file}")