FAQ > 金融建模 > 与第三方软件的交互 > Python

Q:在python中如何在调用天软语句串中实现变量传参?    

  • A:python调用天软语句串的方式进行交互,这里的天软语句串即为天软平台的脚本代码,是通过字符串的形式传送到交互接口中的。
    在这种交互方式中,用户需要在python中拼出天软脚本字符串,并且拼出来的串是符合天软语法的脚本。

    比如提取万科A在2020-10-26日的收盘价,我们需要拼的串为:

    S=’ return specdate(spec(close(),'SZ000002'),20201026T);’

    此时,若我需要换个票,或换个时间的话,又得重新拼改此串,那么,如何做到将股票代码,时间设置成变量来实现变量传参,代码做到重复调用呢?
    此时,我们可以封装python方法来实现,比如:

    def getstockclose(stockid,endt):
     s= "return specdate(spec(close(),'"+stockid+"'),strtodate('"+endt+"'));"
     result = ts.RemoteExecute(s,{})
     return result[1]

    调用:获取万科A与沪深300在2020-10-26日的收盘价

    import sys
    sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
    from tsdata import *
    s=getstockclose('SZ000002','2020-10-26')
    print(s)
    s=getstockclose('SH000300','2020-10-26')
    print(s)

    //返回结果:


    另外,天软的某些函数用于提取某只证券、某个时点的数据,如果用户需要提取一系列、一个时间区间里的数据,可能需要反复修改参数、上传字符串至接口,造成编写、运行效率低下。通过在python里直接封装提取一系列证券、一段时间数据的字符串并设置参数,将取数代码一次性上传接口,可以提高用户编写、程序运行的效率。
    这里,提供两个常用的取行情的封装方法供用户参考:附件:tsdata.py