3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)量化交易平台中,read_file 和 write_file 是用于在回测、模拟交易与研究环境(私有空间)之间进行数据读写和持久化的核心 API。
将策略运行过程中的数据写出保存到研究环境的根目录(或指定相对路径)。
write_file(path, content, append=False)path:相对路径(相对于私有空间根目录)。content:文件内容(str 或 bytes)。append:是否为追加模式,默认为 False(覆盖模式)。在回测或模拟盘中读取保存在研究环境中的私有文件。
read_file(path)path 为相对路径。# 写入文本文件
write_file('my_log.txt', 'Hello JoinQuant! 第一次记录\n', append=False)
# 追加写入文本
write_file('my_log.txt', '追加一条策略记录\n', append=True)
# 读取文本文件
content = read_file('my_log.txt')
log.info(content)
在 Python 3 环境下解析 CSV 文件,需要结合 io.BytesIO 与 pandas.read_csv:
import pandas as pd
from io import BytesIO
# 示例1:将策略生成的 DataFrame 保存为 CSV
def after_trading_end(context):
# 获取近5日行情数据
df = attribute_history('000001.XSHE', 5, '1d')
# 将 DataFrame 转换为 CSV 格式文本并保存
write_file('history_data.csv', df.to_csv(), append=False)
# 示例2:读取研究环境中的 CSV 文件
def initialize(context):
body = read_file('history_data.csv')
data = pd.read_csv(BytesIO(body), index_col=0)
log.info(data.head())
用于保存股票池或策略配置等结构化数据:
import json
# 保存股票池列表为 JSON 文件
stock_list = ['000001.XSHE', '600000.XSHG']
write_file('mystocks.json', json.dumps(stock_list))
# 读取 JSON 文件
json_data = read_file('mystocks.json')
securities = json.loads(json_data)
log.info(securities)
read_file 与 write_file 操作的都是聚宽平台云端“研究环境”中的私有空间,不能直接读取本地电脑本地硬盘的文件。若需使用本地文件,请先手动上传至聚宽研究环境。一般放在根目录下即可。from io import BytesIO;from six import StringIO。append=True,常用于每日盘后记录交易日志或持仓变动。