问题描述
/
解决方案
在 Ptrade 量化交易平台中运行策略时,如果遇到 Exception: 抱歉,您输入的TOKEN无效! 的报错,通常是因为第三方数据源(如 Tushare)的认证 Token 填写错误、已过期或未正确配置。Ptrade 平台本身自带的原生 API(如 get_history、get_price)不需要额外输入 Token,但很多开发者会在策略中引入 tushare 库来获取额外数据。
以下是详细的排查和解决步骤:
1. 检查是否使用了第三方数据源(如 Tushare)
Ptrade 支持引入 tushare 库(见官方支持的三方库列表)。如果你在代码中调用了 tushare.set_token('你的token'),请检查:
- Token 是否复制完整:登录对应数据源官网,检查个人主页的 Token 是否与代码中完全一致,注意首尾不要有多余的空格或换行符。
- Token 权限与积分:部分平台的 Token 有调用权限或积分要求,请确保账号状态正常。
2. 正确配置 Token 的示例代码
如果你必须使用 Tushare 获取 Ptrade 缺失的数据,建议在 initialize 中进行初始化,并加入异常处理(try...except)以防止策略直接崩溃:
import tushare as ts
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 正确设置 Tushare Token
my_token = '在此处替换为你真实的Token'
try:
ts.set_token(my_token)
g.pro = ts.pro_api()
log.info("第三方数据源 Token 初始化成功!")
except Exception as e:
log.error("Token 初始化失败,错误信息:%s" % e)
def handle_data(context, data):
pass
3. 检查 Ptrade 自身的登录状态
如果报错并非来自第三方库,而是 Ptrade 客户端本身(极少情况):
- 客户端掉线:请检查 Ptrade 交易终端是否长时间未操作导致 Session 失效,尝试重新登录 Ptrade 客户端。
- 网络环境:确保所在的网络环境能够正常连接券商的 Ptrade 服务器。
4. 强烈建议:善用 Ptrade 原生 API 替代
为了策略的稳定性和执行速度,建议尽量使用 Ptrade 官方提供的原生 API 获取数据,原生 API 直接连接券商柜台,无需 Token 认证且速度更快。例如:
- 获取历史行情:使用
get_history()或get_price() - 获取财务数据:使用
get_fundamentals() - 获取股票基础信息:使用
get_stock_info()
总结:遇到“TOKEN无效”报错,绝大多数是因为代码中混用了需要 Token 认证的第三方库。排查第三方库的 Token 配置,或改用 Ptrade 原生 API 即可彻底解决此问题。