3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)的模拟交易或回测环境中,由于运行环境的隔离,你不能直接使用原生的 df.to_csv('filename.csv') 将文件保存到本地。但是,聚宽提供了一个专用的 API write_file,可以将数据直接写入到你的投资研究模块的目录中。
你可以将 DataFrame 的 to_csv() 方法生成的字符串内容,通过 write_file 函数保存下来。
使用 write_file(path, content, append=False) 函数:
import pandas as pd
def handle_data(context, data):
# 假设你获取了一些数据并生成了 DataFrame
df = attribute_history('000001.XSHE', 5, '1d')
# 将 DataFrame 转换为 csv 格式的字符串
# 注意:这里不要填入文件名,直接让 to_csv 返回字符串
csv_content = df.to_csv()
# 使用 write_file 将字符串内容保存到研究环境中
# 文件会保存在你研究环境的根目录下
write_file('my_sim_data.csv', csv_content, append=False)
log.info("DataFrame 已成功保存到研究环境的 my_sim_data.csv 文件中")
path: 相对路径,相对于您的私有空间(研究模块)的根目录的路径,例如 'my_data.csv' 或 'data/my_data.csv'(前提是 data 文件夹已存在)。content: 文件内容,必须是 str 或者 unicode(或者二进制内容)。df.to_csv() 默认返回的就是字符串格式的 CSV 内容。append: 是否是追加模式。默认为 False(覆盖原有文件)。如果设为 True,则会在原有文件末尾追加内容。handle_data (每分钟或每天运行) 中频繁调用 write_file 可能会影响模拟盘的运行效率。建议在 after_trading_end (收盘后) 等低频调用的函数中集中保存数据。my_sim_data.csv 文件。read_file('my_sim_data.csv') API。