🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

如何在 JoinQuant R语言环境中使用 get_price 函数设置 start_date?

joinquant | 发布时间: 2026/6/24
以下内容由 EasyQuant 生成。

问题描述

R语言下get_price函数的使用

这是帮助文档里,python下获取合约的行情数据的例子



# 获取10001313.XSHG期权合约的分钟行情

p=get_price('10001313.XSHG','2018-12-21 09:00:00','2018-12-21 12:00:00','1m')

print(p)



这是帮助文档里,R下获取行情数据的例子

df < - request('get_price',code='000001.XSHE',count=10,unit='1d',end_date='2019-02-01')



我的问题是, R里面似乎不能设定get_price的参数 start_date?运行没有报错,但是返回的数据如下。



df < - request('get_price',code='000001.XSHE','2019-01-01','2019-02-01','1d')
> df
[[1]]
[1] "error: unit错误"

解决方案

在 JoinQuant 的 R 语言环境中,通过 request 函数调用底层的 Python API 时,强烈建议使用显式的命名参数(Named Arguments),而不是依赖参数的位置顺序。

报错原因分析

您运行的代码是:

df <- request('get_price',code='000001.XSHE','2019-01-01','2019-02-01','1d') 

出现 [1] "error: unit错误" 的原因在于,R 语言在解析未命名的参数时,按照底层接口默认的参数顺序进行了错误匹配。它很可能把 '2019-01-01' 或者 '2019-02-01' 错误地传给了 unit(或 frequency)参数,导致底层引擎识别到无效的时间单位,从而抛出 unit错误

解决方法

在 R 中调用时,只需将 start_dateend_date 等参数显式命名即可。正确的写法如下:

# 显式指定 start_date, end_date 和 unit 参数
df <- request('get_price', 
              code='000001.XSHE', 
              start_date='2019-01-01', 
              end_date='2019-02-01', 
              unit='1d')
print(df)

参数说明补充

对应 Python API 的 get_price,在 R 的 request 封装中常用的参数映射如下:

  • code (对应 Python 的 security): 标的代码,如 '000001.XSHE'
  • start_date: 开始时间,字符串格式如 '2019-01-01'
  • end_date: 结束时间,字符串格式如 '2019-02-01'
  • unit (对应 Python 的 frequency): 数据频率,如 '1d'(天)或 '1m'(分钟)。
  • count: 获取的数据条数(注意:countstart_date 通常只能二选一,不能同时使用)。

只要把参数名写清楚,就可以完美解决参数错位导致的报错问题了。