问题描述
试了上面的保存渠道,都是保存代码的,没有数据导出。
解决方案
在 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)
如何下载到本地电脑?
- 在回测或研究环境中运行上述包含
write_file的代码。 - 运行结束后,点击聚宽网站顶部的导航栏,进入 “投资研究”(或“研究环境”)。
- 在左侧的文件目录树中,您就能看到刚刚生成的
pingan_data.csv或HS300_stocks.json文件。 - 勾选该文件,或者右键点击该文件,选择 “下载”,即可将数据导出到您的本地电脑进行进一步分析。