🚀 AI 一键生成 ptrade 策略代码

PTrade 量化策略是在本地还是云端运行?如何读取外部数据?

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

问题描述

云端与本地运行混淆

PTrade客户端本地运行,但量化模块实际部署在券商云端服务器,策略文件加密存储且无法直接读取本地数据。

解决方案

PTrade 云端与本地运行机制解析

许多初学者在使用 PTrade 量化平台时,经常会遇到一个典型的报错:在策略中使用 Python 的 open() 函数尝试读取本地电脑(如 C:\\data.csv)的文件时,系统提示找不到文件或路径错误。这主要是因为混淆了 PTrade 客户端的本地运行量化引擎的云端部署 机制。

1. 架构揭秘:本地 UI vs 云端大脑

  • 本地客户端:你安装在个人电脑上的 PTrade 软件,本质上只是一个图形用户界面(UI)。它负责展示行情、接收你的代码输入、显示日志和交易结果。
  • 云端量化引擎:当你点击“运行回测”或“启动交易”时,你的策略代码会被加密传输到券商的云端 Linux 服务器上。Python 解释器、数据获取接口(如 get_history)、交易撮合引擎等,全部都在云端服务器上执行。

结论:策略代码的实际执行环境在云端,因此它无法直接访问你个人电脑硬盘上的任何文件。

2. 为什么策略文件是加密存储的?

为了保护用户的知识产权和策略安全,PTrade 将策略文件加密存储在券商的云端数据库中。这意味着你无法在本地安装目录下找到明文的策略源码文件,也无法通过外部 IDE(如 PyCharm)直接挂载运行。

3. 如何在 PTrade 中正确读取外部数据?

既然策略在云端运行,如果我们需要加载自定义的股票池、机器学习模型权重或外部因子数据,应该怎么做呢?PTrade 提供了专门的**研究环境(Research)**作为数据中转站。

步骤一:将文件上传至研究环境

  1. 打开 PTrade 客户端,进入**“研究”**模块(Jupyter Notebook 环境)。
  2. 在研究环境的目录中,点击 Upload 按钮,将你的本地文件(如 my_data.csvmodel.pkl)上传到云端服务器。

步骤二:在策略中使用 get_research_path() 获取路径

上传后,文件就已经存在于云端服务器上了。在策略代码中,你需要使用 PTrade 提供的 API get_research_path() 来获取研究环境的根目录路径,然后拼接文件名进行读取。

代码示例:读取上传的 CSV 文件

import pandas as pd

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 1. 获取研究环境的根目录路径
    research_path = get_research_path()
    
    # 2. 拼接你上传的文件名
    file_path = research_path + 'my_data.csv'
    
    # 3. 使用 pandas 读取云端文件
    try:
        g.my_custom_data = pd.read_csv(file_path)
        log.info('成功读取外部数据!数据行数:%d' % len(g.my_custom_data))
    except Exception as e:
        log.error('读取文件失败,请检查文件是否已上传至研究环境。错误信息:%s' % e)

def handle_data(context, data):
    pass

4. 总结与建议

  • 思维转换:写策略时,请始终把自己当成在远程 Linux 服务器上写代码,不要使用任何 Windows 本地的绝对路径(如 D:\\...)。
  • 持久化存储:如果策略运行过程中需要保存状态(如仓龄、自定义变量),请将数据序列化(如使用 pickle)并保存到 get_research_path() 目录下,这样即使服务器重启,数据也不会丢失。
  • 底仓导入:如果是为了回测导入初始底仓,可以直接使用 PTrade 提供的 convert_position_from_csv('Poslist.csv') 接口,前提同样是先将 CSV 文件上传至研究环境。