3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,进行盘后对账和账单分析是策略复盘与资金管理的重要环节。ptrade 提供了 get_deliver 和 get_fundjour 两个核心接口,用于获取账户的历史交割单和资金流水数据。
在使用这两个接口前,请注意以下规则:
before_trading_start(盘前)和 after_trading_end(盘后)阶段调用。start_date 和 end_date 格式必须为 'YYYYmmdd'(如 '20230101')。get_deliverget_deliver(start_date, end_date) 用于获取指定日期范围内的历史交割单数据。
stock_code(股票代码)、stock_name(股票名称)、entrust_bs(买卖方向,1买2卖)、business_amount(成交数量)、business_price(成交价格)、occur_balance(发生金额)、clear_balance(结算金额)等字典信息列表。def before_trading_start(context, data):
# 获取 2023年1月1日 至 2023年1月10日 的历史交割单
deliver_list = get_deliver('20230101', '20230110')
log.info("历史交割单数据:%s" % deliver_list)
get_fundjourget_fundjour(start_date, end_date) 用于获取指定日期范围内的历史资金流水记录。
init_date(发生日期)、business_name(业务名称,如证券买入/卖出)、occur_balance(发生变动资金)、post_balance(变动后剩余资金)、remark(备注)等字典信息列表。def after_trading_end(context, data):
# 获取 2023年1月1日 至 2023年1月10日 的资金流水
fund_list = get_fundjour('20230101', '20230110')
log.info("历史资金流水数据:%s" % fund_list)
以下示例展示了如何在每天盘后自动提取上一交易日至今的交割单和资金流水并打印日志:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
pass
def after_trading_end(context, data):
# 获取前一交易日与当前日期(YYYYMMDD 格式)
pre_date = str(get_trading_day(-1)).replace("-", "")
current_date = context.blotter.current_dt.strftime("%Y%m%d")
# 获取历史交割单
delivers = get_deliver(pre_date, current_date)
log.info("--- 历史交割单 --- %s" % delivers)
# 获取历史资金流水
fund_jours = get_fundjour(pre_date, current_date)
log.info("--- 历史资金流水 --- %s" % fund_jours)