3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在量化交易中,每日交易结束后的对账与数据备份是至关重要的环节。ptrade 平台提供了强大的盘后事件函数 after_trading_end 以及对账单导出接口 get_trades_file,支持在回测结束后或每日收盘后自动生成并导出交易对账单 CSV 文件。本文将为您详细介绍其实现方法并提供完整的 Python 源码。
after_trading_end(context, data)get_trades_file(save_path='')save_path:导出对账数据的存储路径,默认保存在研究(notebook)的根目录下。None。:?,@#$&();"'<>~!%^*` 等特殊字符。以下是一个完整且简单的 ptrade 策略示例。该策略在盘中进行简单的买入操作,并在盘后自动触发 after_trading_end 函数,将当日的交易对账单导出至指定文件夹中。
# -*- coding: utf-8 -*-
def initialize(context):
# 设置操作的股票池
g.security = '600570.SS' # 恒生电子
set_universe(g.security)
g.has_ordered = False
def handle_data(context, data):
# 盘中简单买入 100 股作为测试数据
if not g.has_ordered:
order_id = order(g.security, 100)
if order_id:
log.info("盘中委托成功,订单编号为:%s" % order_id)
g.has_ordered = True
def after_trading_end(context, data):
"""
盘后处理函数:每日收盘后自动运行
"""
log.info("开始执行盘后对账单导出...")
# 1. 导出对账数据到默认根目录
default_path = get_trades_file()
if default_path:
log.info("对账单已成功导出至默认目录:%s" % default_path)
else:
log.error("对账单导出失败!")
# 2. 导出对账数据到自定义目录(例如:notebook 下的 user_data/daily_report 文件夹)
# 注意:请确保在研究环境中已提前创建好对应的文件夹路径
custom_path = get_trades_file('user_data/daily_report')
if custom_path:
log.info("对账单已成功导出至自定义目录:%s" % custom_path)
导出的对账单 CSV 文件包含以下核心字段,方便您直接对接 Excel 或数据库进行分析:
| 字段名称 | 对应表头字段 | 说明 |
|---|---|---|
| 订单编号 | order_id |
平台委托的唯一标识(如 a6fbc1459588...) |
| 成交编号 | trading_id |
柜台返回的成交唯一标识 |
| 委托编号 | entrust_id |
柜台返回的委托唯一标识 |
| 标的代码 | security_code |
交易的证券代码(如 600570.XSHG) |
| 交易类型 | order_type |
买入或卖出 |
| 成交数量 | volume |
实际成交的股数/张数 |
| 成交价 | price |
实际成交价格 |
| 成交金额 | total_money |
成交总金额 |
| 交易费用 | trading_fee |
包含佣金、印花税、经手费等总费用 |
| 交易时间 | trade_time |
具体的成交时间戳 |
save_path 时,请确保 ptrade 的研究环境(Notebook)中存在该目录,否则可能导致写入失败。get_trades_file 接口目前仅支持回测环境。若在实盘/模拟盘中需要获取资金流水与交割单,请在 before_trading_start 或 after_trading_end 阶段调用 get_deliver(历史交割单)和 get_fundjour(历史资金流水)接口。