调用Robinhood Stocks模块下单函数报错,寻求解决方法
解决Robinhood API下单报错的问题
针对方法1的版本错误
错误信息提示Your app version is missing important stock trading updates,这是因为Robinhood的API会验证请求头中的客户端版本号,robin_stocks库默认的版本号已经过时,被API拦截。
解决步骤:
- 先去App Store或Google Play查看Robinhood官方APP的最新版本号(比如iOS端的
10.85.0),然后在调用下单接口前手动设置请求头:
import robin_stocks.robinhood as rs # 设置匹配官方最新版的请求头 rs.set_custom_headers({ 'X-Robinhood-API-Version': '1.0.0', 'User-Agent': 'Robinhood/10.85.0 (iOS; iOS 17.4; Scale/2.00)' }) # 执行 fractional 买入 rs.orders.order_buy_fractional_by_quantity('AAPL', 10)
注意:版本号需要和官方最新版保持一致,后续官方更新版本时要同步修改这个值。
针对方法2的GTC订单无效错误
错误Invalid Good Til Canceled order是因为order_buy_market方法默认的time_in_force参数为'gtc'(永久有效),但Robinhood目前对部分订单类型限制了GTC的使用,市场订单通常只允许当日有效。
解决步骤:
- 调用方法时显式指定
time_in_force='gfd'(当日有效):
import robin_stocks.robinhood as rs # 显式设置订单当日有效 rs.order_buy_market('NOK', 2, time_in_force='gfd')
如果仍报错,可以检查账户是否开启了对应交易权限,但大部分情况下修改time_in_force即可解决问题。
内容的提问来源于stack exchange,提问作者Jayzee
相关产品推荐
相关产品推荐

