Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

zhaoxusun/stock-quant

Repository files navigation

English | 简体中文


股票量化 - 本地回测

演示动图 如果演示视频没加载出来,可以查看这里

环境依赖安装

MacOS/Windows/Linux:官网下载python3安装包,直接安装即可,也可以配置多个版本的python3环境,支持自由切换,
切换方式查看环境初始化部分

环境初始化

  • Python3.13(推荐)
python3.13 -m venv venv13 
source venv13/bin/activate
pip install -r requirements-13.txt
  • Python3.7(暂未测试)
python3.7 -m venv venv7 
source venv7/bin/activate
pip install -r requirements-7.txt
  • Python环境切换
- deactivate

快速开始

1. 历史k线数据准备

1.1 准备数据(csv格式,该步骤可选,自行准备数据,或者通过前端页面获取数据)

csv数据格式
A股数据格式
date,open,high,low,close,volume,amount,stock_code,stock_name,market
2021年11月01日,0.81,0.82,0.81,0.82,54463399,54086664.0,SH.510210,上证指数ETF,CN
2021年11月02日,0.82,0.82,0.8,0.81,71456299,70368907.0,SH.510210,上证指数ETF,CN
2021年11月03日,0.81,0.81,0.8,0.8,36854399,36085912.0,SH.510210,上证指数ETF,CN
2021年11月04日,0.81,0.81,0.8,0.81,47489699,46692877.0,SH.510210,上证指数ETF,CN
港股数据格式
date,open,high,low,close,volume,amount,stock_code,stock_name,market
2021年11月01日,432.36,432.75,421.29,425.76,22649546,10654645504.0,00700,港股00700,HK
2021年11月02日,434.49,437.79,416.64,420.32,33005998,15457739520.0,00700,港股00700,HK
2021年11月03日,418.38,426.15,414.3,425.18,19362664,8976079360.0,00700,港股00700,HK
2021年11月04日,431.19,437.6,429.84,436.63,16440685,7856704512.0,00700,港股00700,HK
2021年11月05日,428.09,430.22,421.49,423.62,20019234,9394663936.0,00700,港股00700,HK
2021年11月08日,416.44,420.32,410.04,420.13,22340751,10272692480.0,00700,港股00700,HK
美股数据格式
date,open,high,low,close,volume,amount,stock_code,stock_name,market
2021年11月01日,434.07,434.46,431.96,433.88,2914779.0,,US.IVV,IVV,US
2021年11月02日,434.02,435.99,433.86,435.7,3282790.0,,US.IVV,IVV,US
2021年11月03日,435.08,438.91,434.62,438.55,2916130.0,,US.IVV,IVV,US
2021年11月04日,439.15,440.8,438.78,440.69,3039933.0,,US.IVV,IVV,US

2 运行回测(两种方式)

2.1 带前端页面

  • 启动前端页面
    • python frontend/frontend_app.py
  • 前端页面上执行回测
    • 获取目标股票的历史k线数据(支持A股、港股、美股)
    • 选择要回测的股票(支持A股、港股、美股)
    • 选择要回测的策略(当前代码中策略你可以在core/strategy/trading/volume/trading_strategy_volume.py中查看)
      • 或者通过代码添加你的策略(参考core/strategy/trading/volume/trading_strategy_volume.py中的EnhancedVolumeStrategy类)
    • 点击"回测"按钮,即可执行回测
    • index_page
    • 回测结果会在前端页面上展示
    • result_page
    • result_page

2.2 直接运行代码(不带前端页面)

  • 代码启动回测
    • 参考如下代码
from common.logger import create_log
from core.quant.quant_manage import run_backtest_enhanced_volume_strategy, run_backtest_enhanced_volume_strategy_multi
from core.strategy.trading.volume.trading_strategy_volume import EnhancedVolumeStrategy
from settings import stock_data_root
logger = create_log('test_strategy')
if __name__ == "__main__":
 # 启动回测-单个股票
 kline_csv_path = stock_data_root / "futu/HK.00175_吉利汽车_20211028_20251027.csv"
 run_backtest_enhanced_volume_strategy(kline_csv_path, EnhancedVolumeStrategy)
 # 启动回测-批量股票
 kline_csv_path_folder = stock_data_root / "akshare"
 run_backtest_enhanced_volume_strategy_multi(kline_csv_path_folder, EnhancedVolumeStrategy)

3. 回测结果分析

3.1 分析回测结果

回测日志会输出到logs目录下
回测图表会输出到html目录下(历史k线、策略触发信号、策略交易记录、持仓记录、资金记录)

demo_result

3.2 分析交易信号结果(回测产生的交易信号,不是交易记录)

回测后会产生交易信号,交易信号按照信号纬度聚合,聚合后支持按照策略、股票名称、时间、信号类型筛选,支持下载html

demo_signal

4. 策略参数调整

调整策略信号参数(只标记交易信号,不交易):settings文件中修改交易策略相关参数
调整策略买卖参数(根据交易信号执行交易):settings文件中修改交易佣金相关参数
调整初始本金:settings文件中修改交易本金参数

5. 定时任务配置

1.配置任务名称、任务类型、描述、定时表达式
2.配置目标股票列表(支持A股、港股、美股)
3.配置回测策略、启动资金、回测天数(结束时间默认为当前时间前一天)
4.启动任务即可实现离线执行
5.配置企业微信webhook URL(环境变量增加WECHAT_WEBHOOK_QUANT),如果配置了,会在任务执行完成后发送通知到企业微信(企业微信群配置消息助手)
注意:别配置大量任务、或者太频繁任务,否则会对系统资源造成压力,也有可能被数据源服务封禁IP

schedule_task report_message_summary report_message_detail

6. 策略管理

1.查看指标策略
2.查看交易策略

strategy_manage

版本发布记录

版本发布记录

Star History Chart

声明:策略仅用于学习和研究,不建议在真实交易中使用,不承担任何交易风险,后果自负

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /