FAQ > 金融建模 > 第三方交互 > Python

Q:Python调天软取数范例02:基本面数据的提取    

简述
1、在进行交互取数前,需做相关的配置,其操作请查看文档:FAQ:2019-05-08-应用专题-第三方交互07:天软平台和PYTHON的交互
2、天软返回的数据为gkb编码,在python3及以上版本中,对汉字或字符串的返回需要进行转码操作。
参考:FAQ:Q:与python3交互中字符串转gbk的问题
  • 本页范例的文档版本可下载:附件:Python调天软取数应用范例.pdf
    范例中相关天软函数附件:附件:第三方交互取数建模.tslfunc

    范例01:取个股的所属市场-执行天软语句串base
    import sys
    sys.path.append("C:/program files/Tinysoft/Analyse.NET")
    import TSLPy3 as ts
    tsstr="""
    SetSysParam(pn_stock(),'SZ000001');
    SetSysParam(pn_date(),20190507T);
    return base(10028);
    """
    data= ts.RemoteExecute(tsstr,{})
    if not data[0]:
      print(data[1].decode('gbk')) #单个字符串转码
    else:
      print(data[0],data[2].decode("gbk"))

    范例02:取期权的基本信息-调用天软函数infoarray
    #取期权指定日的基本信息
    import sys
    sys.path.append("C:/program files/Tinysoft/Analyse.NET")
    import TSLPy3 as ts
    import json
    tsstr="""
    setsysparam(pn_stock(),'OP10001798');
    data:= select * from infoarray(720) where ['截止日']=20190507 end;
    return ExportJsonString(data);
    """
    data= ts.RemoteExecute(tsstr,{})
    if not data[0]:
      print(json.loads(data[1]))
    else:
      print(data[0],data[2].decode("gbk"))

    范例03:取期货的主力信息-调用天软函数infotable
    #取主力合约的主力信息
    import sys
    sys.path.append("C:/program files/Tinysoft/Analyse.NET")
    import TSLPy3 as ts
    import json
    tsstr="""
    ZLID:="ZL000001";
    EndT_:=20190101;
    data:= select * from infotable 700 of ZLID where ['调整日期']>=EndT_ order by ['调整日期'] desc end;
    return ExportJsonString(data);
    """
    data= ts.RemoteExecute(tsstr,{})
    if not data[0]:
      print(json.loads(data[1]))
    else:
      print(data[0],data[2].decode("gbk"))

    范例04:取指指定日期货的实际合约-调用天软函数FuturesZL
    #取指定日期货合约的主力合约代码
    import sys
    sys.path.append("C:/program files/Tinysoft/Analyse.NET")
    import TSLPy3 as ts
    tsstr="""
    setsysparam(pn_stock(),'CU2001');
    setsysparam(pn_date(),20190507T);
    RETURN FuturesZL(20190507T);"""
    data= ts.RemoteExecute(tsstr,{})
    if not data[0]:
      print(data[1])
    else:
      print(data[0],data[2].decode("gbk"))