This project provides a streamlined solution for preprocessing data in a Tonghuashun SuperMind quant strategy. Due to SuperMind’s limited data (e.g., no consumption data) and weak computing resources, running the full strategy directly is impractical.
本仓库包含同花顺supermind策略的量化代码以及对应需要的数据文件。由于同花顺supermind并不能获取到很多数据(例如消费等)、并且supermind的服务器资源有限,又因为本策略需要处理消费数据和回报率等,直接在supermind上完全体运行可能有些不太现实。因此本策略采取了如下方案:先从CSMAR上手动下载消费数据和股票数据,然后再将预先处理完成的文件上传到supermind研究环境中以供策略运行。本项目为预先处理数据文件这个步骤提供一个方便的实现。以下将这称为【策略前置操作】。
如果你只是完成基础的实现【策略前置操作】,那么按照这四个步骤来就足够了。
一开始想整个一条龙的,但可惜没空累了,就这样吧,抱歉,路径什么的可以自行探索下
需要注意的是,CSMAR经常改数据表标题和内容格式,实在折腾。不能保证时效性。
为了方便起见,在仓库中
data_sample下有示例数据。如果你不想手动获取数据,那么请跳过这个第一个步骤,程序会自动从示例数据加载。
数据来自国泰君安CSMAR,顶部tab选择【数据中心】,依次点击【单表查询】【经济研究系列】【宏观经济】【经济行业快讯】【社会消费品零售总额表(月)】全选所有字段,下载csv,解压得到CME_Mretailsales.csv。
数据来自国泰君安CSMAR,顶部tab选择【数据中心】,依次点击【单表查询】【经济研究系列】【宏观经济】【景气指数】【消费者景气指数月度文件】全选所有字段,下载csv,解压得到CME_Mbcid2.csv。
数据来自国泰君安CSMAR,顶部tab选择【数据中心】,依次点击【单表查询】【经济研究系列】【宏观经济】【价格指数】【居民消费价格分类指数月度文件】全选所有字段,下载csv,解压得到CME_Mconsumerpriceratio.csv。
(当然这部分你可以用任意其他接口,需自行修改下数据标题或者dataprocess.py的读取)
注意
⚠️ :CSMAR这部分的数据存在单次5年的时间跨度的限制,如果获取的数据超过5年,那么获得的数据是多个zip,其内部的各自的文件名需要被重命名成TRD_Dalyr1.csv,TRD_Dalyr2.csv,TRD_Dalyr3.csv, 等。并放置在同一个文件夹中。如果从CSMAR获取的数据跨度在5年之内,则不必理会上述这段的处理
数据来自国泰君安CSMAR,顶部tab选择【数据中心】,依次点击【单表查询】【股票市场系列】【股票市场交易】【个股交易数据】【日个股回报率文件】,全选所有字段,下载csv,解压
将获取到的csv数据文件放进dataprocess目录中。
-
使用conda
conda create -n env_name python==3.9 conda activate env_name pip install requirements.txt python main.py
-
或者使用uv等pip venv工具
uv run main.py
主程序整合了零散的代码步骤,程序运行可能需要十多分钟(数据处理、消费环境处理、消费敏感性处理、股票输赢家处理),结束后程序会在upload目录中放置consumer_betas.csv,safe_stock.csv,classification_results.csv,environment_predictions_new.csv这几个文件。
选择python3.8,启动服务器。稍等片刻之后进入jupyter-lab界面。点击【上传文件】按钮,上传upload文件夹内所有文件。完成后即可关闭这个页面。
来到同花顺supermind【我的策略】,点击【新建策略】
将策略代码supermind.py内全部复制,粘贴进去。(CTRL+A全选)右侧可以调整自己想要的金额、时间等。
- 回测区间不能超过5年,否则报错无法运行。这是因为同花顺的【问财】接口的限制。
- 如果用户准备数据时候,准备的时间区间太大导致预处理阶段生成的数据文件较大,策略可能无法正确读取文件。这是同花顺supermind平台的限制。
- 策略日志会很多,因为作者没优化,麻烦还请暂时忽略。