本页范例的文档版本可下载:附件:Python调天软取数应用范例.pdf
范例中相关天软函数附件:附件:第三方交互取数建模.tslfunc
python转码范例函数:附件:tsbytestostr.py
范例01:取个股指定时间点收盘价
方法一:执行天软语句串
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import TSLPy3 as ts
t=ts.EncodeDate(2019,4,12)
#取个股t日收盘价-执行语句串
data=ts.RemoteExecute("return close();",{"StockID":"SZ000002","CurrentDate":t,"Cycle":"日线"})
print(data)
方法二:调用天软函数
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import TSLPy3 as ts
t=ts.EncodeDate(2019,4,12)
#取个股指定T日收盘价-调用天软函数
data=ts.RemoteCallFunc("close",[],{"StockID":"SZ000002","CurrentDate":t,"Cycle":"日线"})
print(data)
范例02:取个股截面数据:执行天软语句串
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import TSLPy3 as ts
import tsbytestostr #字符串批量转码
#取个股截面数据-执行语句串
s="return ``array('stockid':DefaultStockID(),'date':datetostr(sp_time()),'close':close(),'vol':vol,'amount':amount());"
t=ts.EncodeDate(2019,4,12)
data=ts.RemoteExecute(s,{"StockID":"SZ000002","CurrentDate":t,"Cycle":"日线"})
print(tsbytestostr.tsbytestostr(data[1]))
范例03:取个股时间序列数据
方法一:取个股时间序列数据-执行语句串s1:nday用法
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import tsbytestostr #字符串批量转码
import TSLPy3 as ts
from batch_encoding import Batch_Encoding
s1="""
setsysparam(pn_stock(),'SZ000002');//股票
setsysparam(pn_cycle(),cy_day());//周期
setsysparam(pn_date(),20190418T);//截止时间点
n:=tradedays(20190410T,20190418T);//时间段内交易日数
return nday(n,'date',datetostr(sp_time()),'close',close(),'vol',vol(),'amount',amount());
"""
data=ts.RemoteExecute(s1,{})
print(tsbytestostr.tsbytestostr(data[1]))
方法二:取个股时间序列数据-执行语句串s2:markettable
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import tsbytestostr #字符串批量转码
import TSLPy3 as ts
s2="return select ['date'],['close'],['vol'],['amount'] from markettable datekey 20190410T to 20190418T of 'SZ000002' end;"
data=ts.RemoteExecute(s2,{"Cycle":"日线"})
print(tsbytestostr.tsbytestostr(data[1]))
方法三:取个股时间序列数据-调用天软函数->在天软中封装取数模型GetData_01(StockStr,begT,endT,cy)
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import tsbytestostr #字符串批量转码
import TSLPy3 as ts
StockStr='SH000001'
begT=ts.EncodeDate(2019,4,10)
endT=ts.EncodeDate(2019,4,18)
cy='日线'
data=ts.RemoteCallFunc("GetData_01",[StockStr,begT,endT,cy],{})
print(tsbytestostr.tsbytestostr(data[1]))
范例04:取组合截面数据
方法一:取组合截面数据-执行天软语句串
import sys
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
setsysparam(pn_cycle(),cy_day());
a:=array('SZ000001','SH600000','SH603967','SZ000333');
t:=select ['StockID'],datetostr(['date']) as 'date',['open'],['high'],['low'],['close'] from markettable datekey 20190507T to 20190507T+0.999 of a end;
return t;
"""
data= ts.RemoteExecute(tsstr,{})
print(data[1])
方法二:取组合截面数据-调用天软函数->在天软中封装取数模型GetData_02(StockStr,EndTime,cy,rate,rateday)
import sys
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_02',['SZ000001,SH600000,SH603967,SZ000333',ts.EncodeDate(2019,5,7),"日线",0,-1],{})
print(data[1])
范例05:取组合时间序列数据
方法一:取组合时间序列数据-执行天软语句串s1:Nday
import sys
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
SetSysParam(pn_date(),20190507T); //设置当前时间
SetSysParam(pn_cycle(),cy_day()); //设置系统周期
t:=array();
a:=array('SZ000001','SH600000','SH603967','SZ000333');
for i:=0 to length(a)-1 do
begin
setsysparam(pn_stock(),a[i]);
t&=Nday(5,'date',datetostr(sp_time()), //&的作用相当于union--将数组纵向合并
'open',open(),
'high',high(),
'low',low(),
'close',close());
end
return t;
"""
data= ts.RemoteExecute(tsstr,{})
print(data[1])
方法二:取组合时间序列数据-执行天软语句串s2:Markettable
import sys
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
tsstr="""
SetSysParam(pn_cycle(),cy_day()); //设置系统周期
a:=array('SZ000001','SH600000','SH603967','SZ000333');
t:=select ['StockID'],datetostr(['date']) as 'date',['open'],['high'],['low'],['close'] from markettable datekey 20190429T to 20190507T+0.999 of a end;
return t;
"""
data= ts.RemoteExecute(tsstr,{})
print(data[1])
方法三:取组合时间序列数据-调用天软函数->在天软中封装取数模型GetData_03(StockStr,begt,endt,cy,rate,rateday)
import sys
sys.path.append("C:/program files/Tinysoft/Analyse.NET")
import TSLPy3 as ts
data= ts.RemoteCallFunc('GetData_03',['SZ000001,SH600000,SH603967,SZ000333',ts.EncodeDate(2019,4,29),ts.EncodeDate(2019,5,7),"日线",0,-1],{})
print(data[1])