FAQ > 金融建模 > 第三方交互 > TS-OPI

Q:R语言&OPI方式调用示例:执行语句串    

  • A:一个简单的通过opi方式取数demo:实现获取最近10日价格序列

    R中依赖httr,jsonlite包,可在在进入R环境后输入install.packages('httr')、install.packages("jsonlite")安装相关包。
    范例代码:
    library(httr)
    library(jsonlite)
    # Run-天软代码串
    url = "https://opi.tinysoft.com.cn/Service/Run/" # 调用天软代码串
    headers = c(
    "Connection" = "keep-alive",
    "Content-Type" = "application/json",
    "TS-EVENTNAME" = "auto",
    "JSON-Encode" = "gbk"
    )
    # 天软代码串
    tsstr = paste0("
    SetSysParam(pn_stock(),'SZ000001');
    SetSysParam(pn_date(),20260524t);
    Return Nday(10,'time',DateTimeToStr(sp_time()),'close',close());
    ")
    postdata = list(body=tsstr)
    # 使用HTTPBasicAuth进行基本认证
    response = POST(
    url = url,
    body = postdata,
    encode = "json",
    add_headers(.headers = headers),
    #输入账号名与密码
    authenticate("tuser", "tpassw", type = "basic"),
    config = config(ssl_verifypeer = FALSE)
    )
    cat(status_code(response), "\n")
    response_text = content(response, "text", encoding = "gbk")
    data_list = fromJSON(response_text)
    data_list
    执行结果: