🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant聚宽平台如何保存回测数据和导出文件?

joinquant | 发布时间: 2026/6/1
以下内容由 EasyQuant 生成。

问题描述

请问怎么保存output呢?

试了上面的保存渠道,都是保存代码的,没有数据导出。

解决方案

在 JoinQuant(聚宽)平台上,如果您想在回测、模拟交易或研究环境中保存数据(例如行情数据、计算结果、DataFrame 等)并导出到本地,需要使用平台提供的专用 API:write_file 函数。

write_file 可以将数据写入到您的投资研究模块的根目录中。写入成功后,您就可以在“投资研究”的文件列表中看到该文件,并可以将其下载到本地电脑。

write_file 函数说明

write_file(path, content, append=False)
  • path: 相对路径,相对于您的私有空间的根目录的路径(例如 'my_data.csv')。
  • content: 文件内容,str 或者 unicode。如果是保存 DataFrame,通常需要先转换为字符串格式(如 .to_csv())。
  • append: 是否是追加模式,默认为 False(覆盖原有文件)。

常用导出数据示例

1. 将 DataFrame 数据导出为 CSV 文件(最常用)

如果您获取了历史行情数据或计算了某些指标,通常它们是 pandas.DataFrame 格式。您可以使用 .to_csv() 方法将其转换为字符串,然后用 write_file 保存。

import pandas as pd
from jqdata import *

def initialize(context):
    # 获取平安银行过去5天的日线数据,返回 DataFrame
    df = attribute_history('000001.XSHE', 5, '1d') 
    
    # 将 DataFrame 转换为 CSV 格式的字符串
    csv_content = df.to_csv()
    
    # 将内容写入到投资研究目录下的 'pingan_data.csv' 文件中
    write_file('pingan_data.csv', csv_content, append=False)
    
    log.info("数据已成功保存到 pingan_data.csv")

2. 将列表或字典导出为 JSON 文件

如果您想保存股票列表或配置信息,可以将其保存为 JSON 格式。

import json
from jqdata import *

def initialize(context):
    # 获取沪深300的成分股列表
    hs300_stocks = get_index_stocks('000300.XSHG')
    
    # 将列表转换为 JSON 字符串
    json_content = json.dumps(hs300_stocks)
    
    # 保存到文件
    write_file('HS300_stocks.json', json_content, append=False)
    
    log.info("沪深300成分股已保存")

3. 保存普通文本日志

def initialize(context):
    write_file("my_log.txt", "策略开始运行...\n", append=True)

如何下载到本地电脑?

  1. 在回测或研究环境中运行上述包含 write_file 的代码。
  2. 运行结束后,点击聚宽网站顶部的导航栏,进入 “投资研究”(或“研究环境”)。
  3. 在左侧的文件目录树中,您就能看到刚刚生成的 pingan_data.csvHS300_stocks.json 文件。
  4. 勾选该文件,或者右键点击该文件,选择 “下载”,即可将数据导出到您的本地电脑进行进一步分析。