# quantitative_analysis **Repository Path**: wenglean/quantitative_analysis ## Basic Information - **Project Name**: quantitative_analysis - **Description**: 用于记录量化交易学习资料和研究成果 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-29 - **Last Updated**: 2023-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # quantitative_analysis ## 介绍 用于记录量化交易学习资料和研究成果 ## 智能选股及预测系统 通过相关的模型精准的制定出合适当前投资者的操作策略,并进一步的让投资者能够清晰明了的发现合适的买入卖出点。系统包含两个功能:智能选股和股价预测。 ```python ├── algorithms │   ├── pattern_recognition.py ├── config │   ├── load_config.py │   └── strategy_config.yaml ├── data │   ├── data_fetcher.py │   ├── data_processor.py │   ├── data_visualizer.py ├── database │   ├── database_manager.py ├── docs │   ├── code_design.md ├── execution ├── imgs ├── main.py ├── README.md ├── visualize.xlsx ``` ## 开始 配置文件`./config/strategy_config.yaml` ```python threshold: 0.02 # 换手率阈值,大于多少才考虑,暂时没用到 period: 3 # 波段法,连续上涨天数阈值 strategy_type: short_term # 策略模式 gap_period_limit_up: 10 # 短线策略中两个涨停之间的天数 vis_save_path: './visualize.xlsx' # 可视化当天涨停的票的文件位置 download_from_tushare: '' # 选择从tushare中下载的数据类型 start_date: '2023-01-01' # 筛选股票的开始时间 end_date: '2023-07-20' # 筛选股票的截止时间 ``` 1. 配置config文件,选择是否从数据库中下载数据,不然直接预测 2. 运行main.py 3. 查看vis_save_path: './visualize.xlsx' 文件 ## 数据库 在Linux终端启动MySQL后,以下是一些常用的MySQL命令,可以帮助你了解当前数据库的信息: 1. `SHOW DATABASES;`:显示当前MySQL服务器上的所有数据库列表。 2. `USE database_name;`:切换到指定的数据库,将后续的操作应用于该数据库。 3. `SHOW TABLES;`:显示当前数据库中的所有表列表。 4. `DESCRIBE table_name;` 或 `DESC table_name;`:显示指定表的结构,包括字段名、类型、约束等。 5. `SELECT * FROM table_name;`:从指定表中检索所有行的数据。 6. `SHOW INDEXES FROM table_name;`:显示指定表的索引信息。 7. `SHOW CREATE TABLE table_name;`:显示创建指定表的SQL语句。 8. `SHOW TABLE STATUS;`:显示所有表的状态信息,包括表名、引擎、行数、大小等。 9. `SELECT VERSION();`:显示当前MySQL服务器的版本信息。 10. `SELECT USER();`:显示当前登录用户。 11. `SHOW VARIABLES LIKE 'variable_name';`:显示指定的MySQL系统变量的值,如`SHOW VARIABLES LIKE 'max_connections';`。 这些命令可以帮助你获取有关当前数据库的信息,包括数据库列表、表结构、数据内容、索引和系统变量等。根据你的需求,选择适当的命令来了解和探索数据库的内容和配置。 - 了解Table的信息 1. ```sql SELECT * FROM your_table_name LIMIT 10; ``` ```sql SELECT COUNT(*) FROM turnover_daily; # 查看数量 ``` - 启动mysql: `mysql -u root -p` ## TODO - [x] 判断连续上涨只要判断涨跌幅即可 - [x] 短线策略因子: - [x] 1.时间 - [x] 2.区间振幅(映射到高斯函数,得到权值) - [x] 3.换手率 - [x] 表格除了股票代码,再加上中文。 - [x] 将换手率添加到processed_data,避免在计算分数时多次调用tushare 接口 - [ ] 创业板300,301,688开头股票归一化20% 涨幅才算涨停 - [ ] 不考虑BJ - [ ] 检测算法(择时) - [ ] 每天执行伪码:1.通过策略选择的股票存入股票池,存入到本地json,stock_pool {stock_code: {估计成本价}} ​ 2.detection(stock_pool, threshold) -> 需要通知的stock_code - [ ] 短线择时策略: 依据A股特性,根据当前选股策略制定择时策略。 1、以日线为基准,在stock池选择拐点日,拐点日必须满足(T收盘价)>(T-1收盘价),且必须T日放量;--当天候选人 2、择时买入策略:以实时数据为基准,以下评判依据为准则进行实时点位通知: a、急跌5%以上可通知买点; b、回调到最近涨停开盘价附近通知买点; 止盈止损依据:(卖点暂时不通知) a、急跌买入若第二天走势未符合预期(预期就是急涨),止损; b、急跌买入第二天仍旧横盘未涨停,逢高卖出,止盈; c、急跌买入第二天直接拉升涨停,继续拿,T+2天不封板直接出掉止盈; d、急跌买入日线形成上影线向上走势,转换为波段策略,加仓处理; ## 参考资料 书籍: 《量化投资:以Python为工具》 《量化投资技术分析实战》 K线基础知识《日本蜡烛图技术》 平台: Tushare 入门 https://tushare.pro/ 聚宽(JoinQuant )量化交易平台 文华财经,博易云,交易开拓者 证券宝 http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5 其他: https://space.bilibili.com/1053873846 用python 写A股量化交易系统 [量化交易2年半,我做了什么](https://zhuanlan.zhihu.com/p/116120264) 打开数据库 ![](imgs/open_mysql.png) 注意:用管理员模式打开cmd