问题描述
PTrade云端无法直接访问本地存储的历史数据或自定义指标文件,需通过手动上传至研究界面(单文件≤50M)。
解决方案
PTrade云端如何读取本地数据?
在PTrade量化交易平台中,由于策略运行在云端服务器上,无法直接访问用户本地电脑的存储路径(如 C:\data.csv)。如果需要使用本地的历史数据、自定义指标或外部信号文件,必须通过研究界面进行手动上传。
核心限制与规则
- 单文件大小限制:上传的文件大小不能超过 50MB。如果数据量过大,建议拆分成多个小文件,或仅上传核心特征数据。
- 文件命名规范:文件名长度不能超过256个字符,且不能包含特殊字符(如
:?,@#$&();"'<>~!%^*`)。
解决方案:通过研究界面上传并读取
第一步:上传文件
登录PTrade平台,进入**研究(Research)**模块,将你的本地文件(例如 custom_data.csv)上传到根目录或指定文件夹中。
第二步:在策略中获取路径并读取
在策略代码中,使用PTrade提供的 get_research_path() API 获取研究环境的根目录路径,然后拼接文件名进行读取。
Python 代码示例
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 + 'custom_data.csv'
# 3. 使用 pandas 读取 CSV 文件
try:
g.custom_data = pd.read_csv(file_path)
log.info("成功读取本地上传的数据!数据行数:%s" % len(g.custom_data))
except Exception as e:
log.error("读取数据失败,请检查文件是否存在或格式是否正确。错误信息:%s" % e)
def handle_data(context, data):
# 在盘中逻辑中使用 g.custom_data
pass
进阶技巧:设置初始底仓
如果你上传的CSV文件是为了设置回测的初始底仓,PTrade提供了一个专用API convert_position_from_csv(path)。
CSV格式要求:包含 sid, enable_amount, amount, cost_basis 四列。
def initialize(context):
# 直接传入上传到研究界面的CSV文件名
poslist = convert_position_from_csv("Poslist.csv")
set_yesterday_position(poslist)
通过以上方法,即可完美解决PTrade云端环境无法直接读取本地数据的限制。