PySystemTrade项目中的回测系统使用指南

PySystemTrade项目中的回测系统使用指南

概述

PySystemTrade是一个专业的量化交易系统框架,提供了完整的回测功能。本文将详细介绍如何使用该框架进行策略回测,包括基本操作、系统配置、数据处理等核心内容。

快速入门

单规则单品种实验

对于初学者,可以先从简单的单规则单品种实验开始:

from systems.provided.futures_chapter15.basesystem import futures_system
system = futures_system()
system.rules.get_raw_forecast("DAX", "ewmac64_256")

这段代码获取了DAX品种上64-256日EWMAC策略的原始预测值。

标准期货回测

要运行书中第15章的标准期货回测系统:

from systems.provided.futures_chapter15.basesystem import futures_system
system = futures_system()
positions = system.portfolio.get_notional_position("DAX")

参数估计回测

如果需要系统自动估计参数(如预测标量、权重等):

from systems.provided.futures_chapter15.estimatedsystem import futures_system
system = futures_system()
positions = system.portfolio.get_notional_position("SOFR")

系统配置详解

修改回测参数

PySystemTrade提供了多种参数修改方式:

  1. 修改配置文件(推荐)

    • 直接编辑配置文件中的参数
  2. 修改配置对象

    from sysdata.configdata import Config
    config = Config("systems.provided.futures_chapter15.futuresconfig.yaml")
    config.trading_rules = dict(ewmac=ewmac)  # 修改交易规则
    system = futures_system(config=config)
    
  3. 创建私有配置文件

    • 创建继承自默认配置的私有配置

调整品种设置

修改回测品种的方法:

config.instrument_weights = dict(DAX=0.1, SP500=0.9)  # 调整品种权重
config.instruments = ["DAX", "SP500"]  # 修改品种列表

核心组件解析

数据处理

PySystemTrade支持多种数据源:

  1. CSV数据源

    from systems.provided.futures_chapter15.simpledata import csvFuturesSimData
    data = csvFuturesSimData()
    
  2. 数据库数据源

    from sysdata.mongodb.mongo_futures_data import mongoFuturesData
    data = mongoFuturesData()
    

交易规则开发

创建自定义交易规则的步骤:

  1. 编写规则函数

    def my_rule(data, param1=10, param2=20):
        # 规则实现
        return forecast
    
  2. 添加到系统配置

    config.trading_rules = dict(myrule=my_rule)
    

组合构建

系统支持多种组合构建方式:

  1. 固定权重

    config.forecast_weights = dict(ewmac=0.5, myrule=0.5)
    
  2. 估计权重

    config.use_forecast_weight_estimates = True
    

高级功能

系统缓存

PySystemTrade提供了智能缓存机制:

system = futures_system(use_caching=True)  # 启用缓存
system.pickle_cache("mycache.pck")  # 保存缓存

日志记录

配置日志记录级别:

import logging
logging.getLogger().setLevel(logging.DEBUG)  # 设置日志级别

优化过程

系统内置了多种优化方法:

  1. 等权重法
  2. 自举法(推荐但较慢)
  3. 收缩法
  4. 手工调整法(推荐)

性能分析

获取回测结果的方法:

# 获取账户曲线
account = system.accounts.portfolio()
print(account.curve())

# 计算夏普比率
print(account.sharpe())

最佳实践

  1. 对于生产环境,建议使用数据库而非CSV存储数据
  2. 参数修改优先通过配置文件进行
  3. 复杂系统建议分阶段构建和测试
  4. 充分利用缓存机制提高回测效率

PySystemTrade提供了完整的量化交易系统框架,通过灵活的配置和模块化设计,可以满足从简单策略测试到复杂系统开发的各种需求。掌握本文介绍的核心功能后,开发者可以基于此框架构建自己的量化交易系统。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

束斯畅Sharon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值