3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)平台上运行模拟策略时,如果希望将每天的交易日志或自定义信息保存到文件中,可以使用聚宽提供的专用 API:write_file。
使用 write_file(path, content, append=False) 保存的文件,默认路径位于您聚宽账号的「投资研究」模块的根目录下。也就是说,当策略执行写入操作后,您可以直接切换到聚宽的「投资研究」页面,在文件列表中找到并查看该文件。
write_file(path, content, append=False)
'my_log.txt'。str)格式。True,否则每次写入都会清空之前的内容。通常,我们会在每天收盘后的 after_trading_end 函数中,获取当天的成交记录,并将其格式化为字符串追加保存到日志文件中。以下是完整的代码示例:
# 导入聚宽函数库
import jqdata
def initialize(context):
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
# 每天买入一点平安银行作为测试交易
run_daily(market_open, time='09:30')
def market_open(context):
# 每天市价买入100股平安银行,用于产生交易记录
order('000001.XSHE', 100)
# 收盘后运行函数,用于处理和保存日志
def after_trading_end(context):
# 获取当天的所有成交记录
trades = get_trades()
# 获取当前日期字符串
current_date = context.current_dt.strftime('%Y-%m-%d')
# 初始化当天的日志内容
log_content = f"\n========== {current_date} 交易日志 ==========\n"
if not trades:
log_content += "今日无成交记录。\n"
else:
# 遍历当天的成交记录并格式化
for trade_id, trade in trades.items():
log_line = f"时间: {trade.time}, 标的: {trade.security}, 价格: {trade.price}, 数量: {trade.amount}, 订单号: {trade.order_id}\n"
log_content += log_line
# 将日志内容追加写入到投资研究根目录下的 'sim_trade_log.txt' 文件中
# 注意:append=True 表示追加写入,不会覆盖历史记录
write_file('sim_trade_log.txt', log_content, append=True)
# 在系统日志中也打印一条提示
log.info(f"{current_date} 的交易日志已成功保存至投资研究目录下的 sim_trade_log.txt")
append=True 参数,否则第二天写入时会把第一天的日志覆盖掉。sim_trade_log.txt 文件,双击即可查看或下载。write_file 的 content 参数只接受字符串。如果是字典或列表等复杂数据结构,请先使用 json.dumps() 或字符串拼接将其转换为字符串后再保存。