本页范例的文档版本可下载:
附件:Python调天软取数应用范例.pdf
范例中相关天软函数附件:
附件:第三方交互取数建模.tslfunc
python转码范例函数:
附件:tsbytestostr.py
范例01:取个股指定日的每股收益
方法一:取个股的指定日的每股收益-执行天软语句串
import sys
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
setsysparam(pn_stock(),'SZ000001');
setsysparam(pn_date(),20190507T);
newreport:=NewReportDateOfEndT2(20190507T); //获取指定日最新可以取得到的报告期
return reportofall(9900000,newreport);
"""
data= ts.RemoteExecute(tsstr,{})
print(data[1])
方法二:取个股的指定日的每股收益-调用天软函数->在天软中封装取数模型GetData_04(StockArr,begt,endt)
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_04',['SZ000001',ts.EncodeDate(2019,5,7),ts.EncodeDate(2019,5,7)],{})
print(tsbytestostr.tsbytestostr(data[1]))
范例02:取组合指定日的每股收益-执行天软语句串
方法一:取组合的指定日的每股收益-执行天软语句串
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
//每股收益 = 净利润/总股本
stockarr:=array('SZ000001','SZ000002','SH600000','SH600004');
day:=20190507T;
setsysparam(pn_date(),day);
r:=array();
for i:=0 to length(stockarr)-1 do
begin
stk:=stockarr[i];
setsysparam(pn_stock(),stk);
newreport:=NewReportDateOfEndT2(day); //获取指定日最新可以取得到的报告期
v1:=report(46078,newreport); //获取指定报告期的归属于母公司所有者净利润
v2:=StockTotalShares(day); //获取指定日的总股本
r[i]['代码']:=stk;
r[i]['日期']:=datetostr(day);
r[i]['每股收益(计算)']:=RatioValue(v1,v2);
r[i]['每股收益']:=reportofall(9900000,newreport);
end
return r;
"""
data= ts.RemoteExecute(tsstr,{})
print(tsbytestostr.tsbytestostr(data[1]))
方法二:取组合的指定日的每股收益-调用天软函数->在天软中封装取数模型GetData_04(StockArr,begt,endt)
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_04',['SZ000001;SZ000002;SH600000;SH600004',ts.EncodeDate(2019,5,7),ts.EncodeDate(2019,5,7)],{})
print(tsbytestostr.tsbytestostr(data[1]))
范例03:取个股一段时间的每股收益
方法一:取个股一段时间的每股收益-执行天软语句串
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
//每股收益 = 净利润/总股本
setsysparam(pn_stock(),'SZ000001');
datearr:=stockTradeDayQk(20190425T,20190507T);
r:=array();
for i:=0 to length(datearr)-1 do
begin
day:=datearr[i];
setsysparam(pn_date(),day);
newreport:=NewReportDateOfEndT2(day); //获取指定日最新可以取得到的报告期
v1:=report(46078,newreport); //获取指定报告期的归属于母公司所有者净利润
v2:=StockTotalShares(day); //获取指定日的总股本
r[i]['日期']:=datetostr(day);
r[i]['每股收益(计算)']:=RatioValue(v1,v2);
r[i]['每股收益']:=reportofall(9900000,newreport);
end
return r;
"""
data= ts.RemoteExecute(tsstr,{})
print(tsbytestostr.tsbytestostr(data[1]))
方法二:取个股一段时间的每股收益-调用天软函数->在天软中封装取数模型GetData_04(StockArr,begt,endt)
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_04',['SZ000001',ts.EncodeDate(2019,4,25),ts.EncodeDate(2019,5,7)],{})
print(tsbytestostr.tsbytestostr(data[1]))
范例04:取组合一段时间的每股收益
方法一:取组合一段时间的每股收益-执行天软语句串
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
//每股收益 = 净利润/总股本
stockarr:=array('SZ000001','SZ000002','SH600000','SH600004'); //将证券代码串转换为数组
datearr:=spec(MarketTradeDayQk(20190425t,20190507t),'SH000001');//生成时间序列
n:=0;
r:=array();
for i:=0 to length(stockarr)-1 do
begin
stk:=stockarr[i];
setsysparam(pn_stock(),stk);
for j:=0 to length(datearr)-1 do
begin
day:=datearr[j];
setsysparam(pn_date(),day);
newreport:=NewReportDateOfEndT2(day); //获取指定日最新可以取得到的报告期
v1:=report(46078,newreport); //获取指定报告期的归属于母公司所有者净利润
v2:=StockTotalShares(day); //获取指定日的总股本
r[n]['代码']:=stk;
r[n]['日期']:=datetostr(day);
r[n]['每股收益(计算)']:=RatioValue(v1,v2);
r[n]['每股收益']:=reportofall(9900000,newreport);
n++;
end
end
return r;
"""
data= ts.RemoteExecute(tsstr,{})
print(tsbytestostr.tsbytestostr(data[1]))
方法二:取组合一段时间的每股收益-调用天软函数->在天软中封装取数模型GetData_04(StockArr,begt,endt)
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_04',['SZ000001;SZ000002;SH600000;SH600004',ts.EncodeDate(2019,4,25),ts.EncodeDate(2019,5,7)],{})
print(tsbytestostr.tsbytestostr(data[1]))
范例05:取个股的合并资产负债表数据
方法一:取个股的合并资产负债表数据-执行天软语句串
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
stk:='SZ000001';
end_:=20190331;
setsysparam(pn_stock(),stk);
return select * from infoarray(44) of stk where ['截止日']=end_ end;
"""
data= ts.RemoteExecute(tsstr,{})
print(tsbytestostr.tsbytestostr(data[1]))
方法二:取个股的合并资产负债表数据-调用天软函数->在天软中封装取数模型GetData_05(Stock,ifAll):第二个参数为选择为:调整前/调整后/全部的选择
import sys
import tsbytestostr #字符串批量转码
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_05',['SZ000001',1],{})
print(tsbytestostr.tsbytestostr(data[1]))