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

Q:TSL语言中通过TS-OPI方式调用天软服务器模型示例    

  • A:本页中主要展示开发者用户通过OPI接口调用天软函数的具体实现,即使用URI:/Service/Call/funcName。
    下面示例中,主要展示调用天软范例函数(公用函数):GetTimeSeriesSample(BegT,EndT,StockId,cycle)
    功能:获取指定个股在时间区间内每日价格,及30日均价

    在本地tsl脚本中,执行下面这段代码:
    如何执行tsl脚本,具体可参考:FAQ:Q:在本地电脑中执行一段tsl脚本
    //---------------http功能:平台用户call接口调用-------------------------------------
    tuser:="xxx";//天软账号
    tpw:="***";//密码
    url:='https://opi.tinysoft.com.cn/Service/Call/GetTimeSeriesSample'; //平台用户调用函数
    header:="Connection: keep-alive\r\nContent-Type: application/json\r\nTS-EVENTNAME: auto\r\nJSON-Encode: gbk";
    ps:=array("BegT":20260401T,"EndT":20260415T,"StockId":"SZ000002","cycle":cy_day()); //传入参数
    sid:=CreateHttpSession(); //创建会话
    PData:=exportjsonstring(ps);//转成json串
    r:=InternetRequest(sid,url,"",header,PData,tuser,tpw,0,res,resp,30000);
    echo "->r:",r,"->resp:",resp,"->res:",tostn(Importjsonstring(res)),"->",roundto(length(res)/1024/1024,-2),"\r\n";
    return ;

    运行结果:


    注:关于函数传参
    1、上述脚本中,若不想通过指定参数名方式传参,还可通过参数顺序传参,即只需将
    ps:=array("BegT":20260401T,"EndT":20260415T,"StockId":"SZ000002","cycle":cy_day());
    变更为:
    ps:=array(20260401T,20260415T,"SZ000002",cy_day());
    效果一致。

    2、若函数无参数,则ps:=array();即可
    3、调用函数方式不支持传入系统参数,因此,需要通过系统参数控制的模型不支持调用,需要先封装成与系统参数不相关后,再调用。