🚀 AI 一键生成 ptrade 策略代码

ptrade量化平台读取研究目录下文件路径的方法(附Python源码)

ptrade | 发布时间: 2026/5/22
以下内容由 EasyQuant 生成。

问题描述

上传到研究的目录下的文件路径如何读取?

上传到量化研究的目录下的文件在回测或交易中如何读取路径?

解决方案

在 ptrade 量化平台中,如果您在“研究”模块上传了自定义的数据文件(如 CSV、Pickle、JSON 等),可以通过内置的 get_research_path() 接口来获取研究模块的根目录路径,进而在回测或交易代码中读取这些文件。

接口详解:get_research_path()

  • 使用场景:该函数可在回测交易模块中使用。
  • 接口说明:用于获取研究根目录的绝对路径。
  • 返回值:返回一个字符串类型对象 (str)。

代码示例

获取到路径后,您可以将其与文件名拼接,然后使用 Python 标准库(如 open)或第三方库(如 pandas)来读取文件内容。

import pandas as pd
import os
import pickle

def initialize(context):
    g.security = "600570.SS"
    set_universe(g.security)
    
    # 1. 获取研究根目录路径
    research_path = get_research_path()
    log.info("研究目录路径为: %s" % research_path)
    
    # 2. 拼接文件路径 (假设您上传了一个名为 'my_data.csv' 的文件)
    # 注意:可以直接使用字符串拼接 research_path + 'my_data.csv'
    csv_file_path = research_path + 'my_data.csv'
    
    # 3. 读取 CSV 文件
    try:
        g.my_data = pd.read_csv(csv_file_path)
        log.info("CSV文件读取成功!")
    except Exception as e:
        log.error("读取CSV文件失败,错误信息:%s" % e)
        
    # 4. 读取 Pickle 文件示例 (常用于策略持久化)
    pkl_file_path = research_path + 'hold_days.pkl'
    try:
        with open(pkl_file_path, 'rb') as f:
            g.hold_days = pickle.load(f)
            log.info("Pickle文件读取成功!")
    except:
        g.hold_days = {}
        log.info("未找到Pickle文件,初始化为空字典。")

def handle_data(context, data):
    pass

补充说明

如果您上传的 CSV 文件是专门用于设置回测初始底仓的,ptrade 提供了一个更便捷的专用接口 convert_position_from_csv(path)。使用该接口时,只需直接传入文件名(前提是文件已上传至研究目录),无需手动拼接路径:

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 直接传入研究目录下的文件名即可
    poslist = convert_position_from_csv("Poslist.csv")
    set_yesterday_position(poslist)