SELECTOPT(Options)
指定SELECT的选项,控制SELECT的行为, Options 为以下数值的组合(以下数值的_XOR或者相加)
下表中二进制位从0开始,可通过2^N(2的N次方)形式获取该位设置的值。
同时设置…
DRANGE(begn TO endn)
  指定只从查询结果集中输出从begn到endn之间的行。当begn到endn是0或者正整数的时候,位置偏移从第一条开始算,第一条位置为0,当为负数的时候,偏移从最后一条开始算,最后一条的偏移为-…
字段的表达与返回
  在SQL语句中,可以直接用字段名访问字段的值,在TSL中,必须用[字段名字符串表达式]来访问,例如一个字段名为close,访问其则为["close"]。
多字段聚集
表达式可以用 * ,也可以用 StartFieldIndex To EndFieldIndex如 0 to 2的模式。
*表示每个字段进行聚集,0 to 2表示第一个到第三个字段求聚集。Select…
INSERT语句
  将新行添加到数据库表或者内存表/矩阵中。
  语法
  INSERT [INTO]
  <Expression | {<SQLTABLE |…
UPDATE语句
  更新数据库表或者内存表/矩阵中的数据。
  语法
  UPDATE <Expression | {<SQLTABLE | HUGESQLTABLE…
基础统计函数的错误数据处理
  和abs这类函数不同,基础统计函数默认是允许有nil值的,例如
[code]
  A:=array(1,2,3,nil,4);
  B:=array(1,2,3,"ABCD",4…
继承
面向对象中,继承是基础。我们可以对已有的类复用和扩展。通过继承我们可以让新类拥有了已有类的数据和行为。也可以扩展新类,使它具有更多的数据和行为。
我们这里称已有类为新类的基类或父类,有的地方也叫超类…
覆盖(override)
由于继承,子类具有了父类全部非私有的成员(字段、方法、属性),但是子类也可以对基类的方法进行重写。这种方法就叫做覆盖(override),具体的做法如下,
首先基类的方法用virtual关键字虚函数…
重载(overload)
TSL可以为一个类声明相同的名称不同参数的多个方法,这叫做重载。
每个重载方法声明后面加关键字overload,并且它们必须有不同的参数列表
形式为:
[co…
索引器(index)
简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的对象。索引器通常用于对象容器中为其内的对象提供友好的存取界面.

显然,这一功能在创建集合类的场合特别有用,而在其他…
Duplicates
范例(t):


[code]

obj:=CreateObject('TStringList');

  obj.Delimiter:=",";

  ob…
Sorted
范例:
[code]
obj:=CreateObject('TStringList');
obj.CommaText:='C=456.,a=aBC,E=666,B=123';
echo obj…
Strings
范例(t):


[code]

obj:=CreateObject('TStringList');

  obj.Delimiter:=";";

  ob…
Delimiter
范例(t):


[code]

  obj:=CreateObject('TStringList');

  obj.Delimiter:=";";  //…
QuoteChar
范例(t):


[code]

obj:=CreateObject('TStringList');

  obj.QuoteChar:="&";

  ob…
CommaText
范例(t):


[code]

obj:=CreateObject('TStringList');

  obj.CommaText:='ABC,12,"3,a"…
TFileStream对象的创建
范例:
[code]
  FileName:="E:\\Test\\TFileCase01.txt";
  //-新建一个txt文件并打开
  obj:= CreateObject("T…
STATIC静态计算
  语法:STATIC Expression [name nameEx…
TYPE
  用来定义类:
  Type aBCd=class
  Public
   V:Integer;
   Function returnV();
   Begi…
CLASS
  类关键字,用来定义类,见TYPE
  也可以返回指定的类,如class(aBCd)
  也可以用来得到强制类型的对象,例如class(aBCd,aObje…
FINDCLASS
  查找类,与CLASS用法类似。
  返回指定名称的类:FindClass("aBCd")
  得到强制类型的对象:FindClass("aBCd",aObject),返回强制对象a…
Q:期货代码、名称(连续合约、主力合约、指数合约)编制规则
A: 天软期货代码编码规则:
期货的编码规则:
非月均价期货:品种+合约到期年份(2位数字)+合约到期月份(2位数字),如:IF…
Q:期货品种、合约代码与主力线等之间的获取方法
说明:
天软新增期货代码对照表708,可更方便期货各代码之间的相互转换,可支持:期货品种代码、期货指数代码、期货主力代码、期货连续代码之间的两两相互转换。
相关数…
[]运算符
  []是对特殊的运算符,和()类似,他们总是成对出现的,有[的时候,必定有匹配的]作为结尾。
  我们在前面的章节里看到过MOV EAX,[EBP+4]这样的指令,这里的[]是取地址EB…
DEBUGRETURN
  调试返回,后面跟返回值,可在任何地方直接将结果返回,而不是象RETURN一样返回到上一级别,这有助于用户调试使用。
如下面示例,返回为3而不是4:
[code]
A:=aBCd(3); …
Q:通过ODBC连接SAS的时候报错cannot connect socket
A:检查登录的用户名和密码是否正确;检查是否超过了登录人数上限。如果该账户只有一个登录数,那么必须退出客户端再登录,通过ODBC等方式连接TS,也需要占用一个登录。…
2026-04-08-应用专题-第三方交互08:天软JAVA工具集
更新说明:
2026-04-08更新
新增:JDBC驱动程序(类型4)中增加对API用户和租户的支持

[title3]20…
Q: Python用ODBC方式与天软交互报错“ Can't login server”
错误信息:
pyodBC.Error: ('08S01', "[08S01] Communication link failure---InternalConnect: Can't login se…
Q:天软能否跟Dbase(dbf)数据库交互?
A:可以,交互方式跟其他数据库的方式一样,取数方法也一样。操作方法如下:
1)在odBC数据源中加入Dbase数据库源,进入odBC数据源-系统dns-选择dbase数据库-完成即可添加Dbase数…
Q:如何实现R与天软的交互
目前天软平台与R交互有三种方式,分别为基于TSLR.DLL、ODBC和COM。其中,通过COM交互方式现已废弃,请使用其余两种交互方式。
[title1]第一种:T…
Q:golang与天软交互-ODBC方式
1、安装golang
https://golang.google.cn/dl/
2、配置天软tinyodBC数据源
[FAQ …
2014-11-17-应用专题-第三方交互06:天软平台与R交互(基于TSLR.DLL和ODBC两种方式)
摘要
R通过ODBC形式调用天软的主要步骤如下:
1、安装天软ODBC驱动,详见:[a href="http://www.tinysoft.com.cn/tsdn…
Q:Excel 通过ODBC从天软获取数据,为什么在天软客户端打开Excel才能对接成功
A:原因可能是没有找到其路径。
解决步骤如下:
Step1:新建Excel的时候,首先在Cmd窗口输入:where TinyODBC.dll 这个命令,看能不能找…
2021-03-08-应用专题-第三方交互04:天软平台与数据库的交互(更新版)
1、ExecSQL.INI配置范例:
 附件:ExecSQL.INI

2、数据库交互说明文档:
 [attachment id=12333][/at…
2014-09-26-应用专题-第三方交互05:天软平台与 R 的交互(已废弃)
目前COM方式已废弃,建议通过tslr.dll或odBC方式交互。详见:[a href="http://www.tinysoft.com.cn/tsdn/helpdo…
客户端系统设置说明
附件文档对天软客户端系统设置进行说明。内容包括:
1、运行目录变更说明(发现安装目录下缺失了某个文件?修改安装目录下的文件不成功?请读该说明)
2、第三方信任配置文件说明
3、注册COM、RTD…
Q:与python3交互中字符串转gbk的问题
通过各类语言对json串的支持,可更便捷地解决该类问题。
具体可参考:FAQ:Q:在天软将结果转换成Json串返回到python中解决转码引起的效率低下问题

也可通过下列方式进行处理:
说明:
由于在…
Q: java调用天软显示缺少依赖库:报错信息如下:xxx\eclipseWork\informationserver\src\main\resources\TSJNI.DLL: Can't find dependent libraries
A:可检查java系统路径配置是否正确,若有更改则需要重启电脑。
案例01:java系统路径配置不正确导致找不到依赖库,路径排查修正后,电脑重启解决该问题。

案例02:TSJNI还依赖于jav…
Q:英文系统下,用Matlab调用天软函数时可能碰到的问题:
ts.Cycle=’1分钟线’
ts.RemoteExecute('return select datetimetostr(["date"]),["price"],["buy1"],["BC1"…
Q:上交所个股在成交以前交易明细的时间更新说明
A:上海交易所个股的时间更新规则:在个股开盘前每5秒更新一次时间。
所以,当开盘初期无成交量,则盘口有变化(报价等)时,会形成同一个时间点,好多条明细记录的情况,不够活跃的期权明细数据尤为明显。
2020-09-27客户端升级说明
2020-09-27 升级说明
-------------------------------------------------------
修订:sysdbf…
2020-03-27客户端升级说明
2020-03-27升级
---------------------------------------------------------------
[str…
交易明细表tradetable、分时表markettable
数据说明
 Tradetable提供的是Level1的交易明细数据
 
 Markettable提供分时和日期等周期的数据
 
 数据品种:股票、…
Q:期货代码对照表708的使用说明
A:该表访问代码品种代码|期货主力|期货连续|期货指数,比如'铝',即为’al’或'…
查尔士.布兰帝价值型选股法则
背景:
 查尔士.布兰帝(Charles Brandes)是证券分析之父班杰明.葛拉汉(Benjamin Graham)的传人之一,在1970年初,担任过班杰明.…
Q:怎么截取字符串
截取字符串即获取字符串的子串,用户可使用leftstr,rightstr,midstr等函数。
leftstr(s,N)是取前N个字符,即左起取N个字符。
例如:return leftstr("a…
Q:TSbacktesting回测框架里面动作不同数字的含义是什么
回测框架中动作字段的不同数字含义如下:
[table rsplit="$" csplit="#"]
动作#含义#备注$
0#开仓#备注1$
1#平仓#备注1$
2#分红#表示该股票…
债券评级
更新日志
[table rsplit="$" csplit="#"]更新日期#更新记录
$2024-07-31#更名为:债券评级
开始提供该数据
[/tabl…
麦克.墨菲高科技选股策略
背景:
 麦克.墨菲(Michael Murphy)是『加州高科技股通讯报』的创办人兼编辑,哈佛大学毕业后,曾因吸毒而沦为银行抢匪,被判刑10年,1968年获得假…
Q:天软Tinyodbc在Linux下的使用说明
A:在Linux操作系统下通过tinyodBC调用天软的使用方法
目前支持的Linux版本有:centOS7、ubuntu18.04、ubuntu20.04。
具体请查看文档:[attachmen…
2022-06-23客户端升级说明
2022-06-23 升级:

------------------------------------------
修订:编辑器里语法解析在某些特殊场景下出错…
2022-03-19客户端升级:调试器支持对象调试
2022-03-19 升级说明
-------------------------------------
[attention][strong]升级:内核支持T…
Q:如何解决R语言4.2.0及以上版本原生支持UTF-8导致交互转码引起的异常
A:R语言在4.2.0+版本上实现了对UTF-8的原生支持,但天软默认的是gbk格式,在交互过程中,若存在中文字符,则可能导致交互失败或结果异常,如:
情景一:交互…
String
范例(t):

Return string(L'aBCd');
//返回值为字符串:aBCd。
WideString
范例(t):

Return widestring('aBCd');
//返回值为Unicode字符串:L’aBCd’。
SetProfiler
范例(t):
范例01:1+2+4的优化信息返回
[code]
  SetProfiler(7);
  a:=array();
  SetSysParam(PN_Stock(),'SH…
类类型声明的位置
  与其他类型不同,类类型必须在实例化之前声明并给定一个名称。有三种地方可以声明类类型:
  1、在程序(program)的最外层声明类,在执行语句块的前面,而不能在过程或函数中声明.
objectstate
范例(t):
[code]
oa := new ca("aBC");
echo "\r\n构造已经完成",objectstate(oa);
type ca = class
 static…
$处理字符串转换与拼装
  对于多个简单类型,如果要拼接为字符串,可以采用$算符。
  比如 "aBC"$"ABC"可以得到"aBCABC"
  例如
[code]
A:=1;
B:=2.34;
C:…
字符串取指定位置的字符StringValue[Index]
  字符串取单个字符的方法是 StringValue[Index]的模式,例如"ABCD"[1]的结果为"A"子串是,表明取第一个字符。
形参与实参的转换
  在TSL语言中,与绝大多数语言不同的是,对形参与实参的支持是通过调用者而不是函数申明来实现的。
  例如:
[code]
  RealA:=100;
  RealB:=20…
VarByRef编译选项
  编译选项。
  插入{$VarByRef-}可以关闭允许参数值修改的编译选项,系统默认是允许修改的,一旦关闭了编译选项,[attention…
单元的特殊定义
  单元可以省略Interface和Implementation关键字,一旦省略关键字,所有单元内的内容均对引用者可视。
例:
   Unit SpecialUnit;
   fun…
LeftStr
范例(t):
         
return LeftStr('aBCcccdddd',2);
//结果:’ab’
RightStr
范例(t):
         
return RightStr('aBCcccdddd',2);
//结果:’dd’
AnsiContainsText
范例(t):


[code]

text:='aBCdefg' ;

return AnsiContainsText(text,'ABCd');
//输出:1,包含

[/co…
AnsiStartsText
范例(t):



text:='aBCdefg';

return AnsiStartsText('ABC',text);
//输出:1

参考:[r…
AnsiEndsText
范例(t):



text:='aBCdefg';

return AnsiEndsText('Efg', text);
//输出:1

参考:[re…
AnsiMatchText
范例(t):


[code]

AText := 'ABZ';

AValues:= array();

AValues[0]:='aBCdefg';

AValues[1]:…
AnsiContainsStr
范例(t):



AText:='aBCdefg';

Return AnsiContainsStr(AText,'BCd');
//输出:1

参考…
AnsiStartsStr
范例(t):



Atext:='aBCdefg';

Return AnsiStartsStr('aBCd',Atext);
//输出:1

参考:…
AnsiEndsStr
范例(t):



text:='aBCdefg';

return AnsiEndsStr('efg', text);
//输出:1

参考:[ref…
AnsiMatchStr
范例(t):


[code]

AText := 'ABZ';

AValues:= array();

AValues[0]:='aBCdefg';

AValues[1]:…
ReverseString
范例(t):
return ReverseString('aBCde1234');
//返回字符串:4321edcba

ho tostn(r);//输出:&qu…
字节函数
字节函数,处理非MBCS的原始字符串,本身存在非B或者ANSI版本。
[table rsplit="$" csplit="#"]函数名#别名#备注
$[a id=2…
StartsText
范例(t):



text:='aBCdefg';

return StartsText('ABC',text);
//输出:1

EndsText
范例(t):



text:='aBCdefg';

return EndsText('Efg', text);
//输出:1

StartsStr
范例(t):



Atext:='aBCdefg';

Return StartsStr('aBCd',Atext);
//输出:1

EndsStr
范例(t):



text:='aBCdefg';

return EndsStr('efg', text);
//输出:1

正则表达式中的元字符
  要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。
注:由于TSL语言的字符串常量中\本身就是转义字符,因此,只要牵涉到\的,就要用\…
TextToURL
范例(t):
ASrc:= "#aBCd 10";
return TextToURL(ASrc);
//结果:%23aBCd%20%2010
URLToText
范例(t):
aSrc:= "%23aBCd%20%2010";
return URLToText(aSrc);
//结果:#aBCd 10
fundbcbondpercentgrow2
范例(t):
[code]
// "OF000001"在20191231与20181231期间指定债券类型市值占总值比变动(%)
SetSysParam(pn_stock()…
Fundbcbondpercent3
范例(t):
[code]
// "OF000001"在20191231指定债券类型市值占债券市值比(%)
SetSysParam(pn_stock(),"OF00…
Fundbcbondpercent4
范例(t):
[code]
// "OF000001"在20191231指定债券类型市值占固定收益投资市值比(%)
SetSysParam(pn_stock(),"…
Fundbcbondpercentgrow
范例(t):
[code]
// "OF000001"在20191231与20181231期间指定债券类型市值占净值比变动(%)
SetSysParam(pn_stock()…
Fundbcbondpercentgrow3
范例(t):
[code]
// "OF000001"在20191231与20181231期间指定债券类型市值占债券市值比变动(%)
SetSysParam(pn_stock…
Fundbcbondpercentgrow4
范例(t):
[code]
// "OF000001"在20191231与20181231期间指定债券类型市值占固定收益投资市值比变动
SetSysParam(pn_stoc…
Fundbcbondvaluegrow
范例(t):
[code]
// "OF000001"在20191231与20181231期间指定债券类型市值变动
SetSysParam(pn_stock(),"…
Fundbcbondvaluegrowratio
范例(t):
[code]
// "OF000001"在20191231与20181231期间指定债券类型市值变比(%)
SetSysParam(pn_stock(),&qu…
Fundbcnonname
范例(t):
[code]
// "OF000001"在20191231第2名债券类型名称
SetSysParam(pn_stock(),"OF000001&quo…
Fundbcnonpercent
范例(t):
[code]
// "OF000001"在20191231第2名债券类型市值占净值比(%)
SetSysParam(pn_stock(),"OF000…
Fundbcnonpercent2
范例(t):
[code]
// "OF000001"在20191231第2名债券类型市值占总值比(%)
SetSysParam(pn_stock(),"OF000…
Fundbcnonpercent3
范例(t):
[code]
// "OF000001"在20191231第2名债券类型市值占债券市值比(%)
SetSysParam(pn_stock(),"OF0…
Fundbcnonpercent4
范例(t):
[code]
// "OF000001"在20191231第2名债券类型市值占固定收益投资市值比(%)
SetSysParam(pn_stock(),&quot…
Fundbcnonpercentgrow
范例(t):
[code]
// "OF000001"在20191231与20181231期间第2名债券类型市值占净值比变动(%)
SetSysParam(pn_stock(…
Fundbcnonpercentgrow2
范例(t):
[code]
// "OF000001"在20191231与20181231期间第2名债券类型市值占总值比变动(%)
SetSysParam(pn_stock(…
Fundbcnonpercentgrow3
范例(t):
[code]
// "OF000001"在20191231与20181231期间第2名债券类型市值占债券市值比变动(%)
SetSysParam(pn_stoc…
Fundbcnonpercentgrow4
范例(t):
[code]
// "OF000001"在20191231与20181231期间第2名债券类型市值占固定收益投资市值比变动(%)
SetSysParam(pn_…
Fundbcnonvalue
范例(t):
[code]
// "OF000001"在20191231第2名债券类型持有市值
SetSysParam(pn_stock(),"OF000001&q…
Fundbcnonvaluegrow
范例(t):
[code]
// "OF000001"在20191231与20181231期间第2名债券类型持有市值变动
SetSysParam(pn_stock(),&qu…
Fundbcsumnpercent
范例(t):
[code]
// "OF000001"在20191231前2名债券类型市值占净值比(%)
SetSysParam(pn_stock(),"OF000…
Fundbcsumnpercent2
范例(t):
[code]
// "OF000001"在20191231前2名债券类型市值占总值比(%)
SetSysParam(pn_stock(),"OF000…
Fundbcsumnpercent3
范例(t):
[code]
// "OF000001"在20191231前2名债券类型市值占债券市值比(%)
SetSysParam(pn_stock(),"OF0…
Fundbcsumnpercent4
范例(t):
[code]
// "OF000001"在20191231前2名债券类型市值占固定收益投资市值比(%)
SetSysParam(pn_stock(),&quot…
Fundbcsumnpercentgrow
范例(t):
[code]
// "OF000001"在20191231与20181231期间前2名债券类型市值占净值比变动(%)
SetSysParam(pn_stock(…
Fundbcsumnpercentgrow2
范例(t):
[code]
// "OF000001"在20191231与20181231期间前2名债券类型市值占总值比变动(%)
SetSysParam(pn_stock(…
Fundbcsumnpercentgrow3
范例(t):
[code]
// "OF000001"在20191231与20181231期间前2名债券类型市值占债券市值比变动(%)
SetSysParam(pn_stoc…
Fundbcsumnpercentgrow4
范例(t):
[code]
// "OF000001"在20191231与20181231期间前2名债券类型市值占固定收益投资市值比变动(%)
SetSysParam(pn_…
Fundbcsumnvalue
范例(t):
[code]
// "OF000001"在20191231前2名债券类型持有市值
SetSysParam(pn_stock(),"OF000001&q…
Fundbcsumnvaluegrow
范例(t):
[code]
// "OF000001"在20191231与20181231期间前2名债券类型持有市值变动
SetSysParam(pn_stock(),&qu…
Fundbcsumnvaluegrowratio
范例(t):
[code]
// "OF000001"在20191231与20181231期间前2名债券类型市值变比(%)
SetSysParam(pn_stock(),&q…
FuturesAllPZCode
范例(t):
Return FuturesAllPZCode();

//结果:
[table rsplit="$" csplit="#"]品种代码#变动日#品种…
StocksBCount
范例(t):
[code]
//返回上证B股20180919日上市的B股个数
stockArr := getbk("上证B股");
return StocksBCount…
Bk_Bcount
范例(t):
[code]
//返回上证B股截止20180925日股票数量
stockArr := GetBK('上证B股');
EndT := 20180925T;
savebk('myb…
Q:python中通过pandas的read_sql方法以ODBC方式连接天软服务器时出现异常警告
问题描述
 使用pandas的read_sql方法连接天软时出现异常提示:UserWarning: pandas only support SQLAlchemy …
Q:如何提取股票集合竞价的数据
集合竞价的数据与交易明细都是由交易所盘口推出,数据与连续竞价的数据收录在一起,即Tradetable表中,根据实际交易时间进行区分。

集合竞价报价数据:
交易…
Q:高频、超高频数据说明
A:天软平台通过两张表marketable、tradetable即可访问高频、超高频数据,股票、ETF、期货等都可以以此种方式访问。
tradetable中存储的是交易明细(LV1)的数据,mark…
平台模型远程调用客户端函数,访问客户端的资源
我们在使用平台模型的时候,经常有需要要访问客户端本地资源。打个比方,我们需要导出计算的数据,而等待整个模型的返回特别长,所以可能我们需要边运行,边导出数据。又或者整个的数据结果集非常大,无法单次返回,…
Drange( BeginIndex to Endindex)
例如:
[code]
A:=array();
For i:=0 to 999 do
A[i][“ABCD”]:=i;
Return Select Drange(10 to 99) * fro…
TSL中的字段
例如a:=”aBCd”;
[a]表示字段aBCd,也可以采用[“aBCd”],是一样的含义。
Select [a] from Table end;//表示返回列aBCd而不是列a
同样[0]表示…
JOIN
[code]
A:=Array();
B:=array();
For i:=0 to 99 do
begin
A[i][“ABCD”]:=Random();
A[i][“INDEX”]:=…
WITH ON
一个On运算符在JOIN的时候的计算复杂度为两个运算的表的元素个数相差,是一个N*M的复杂度。事实上,绝大多数JOIN是可以优化的。我们TSL里支持WITH ON语法,使得计算复杂度降低到N+M的关系…
2016-07-28-应用专题-第三方交互:对ODBC接口的使用方法和范例
天软ODBC驱动程序结合了天软公司TSL语言的特点,为用户查询天软数据平台提供了一种方便、统一的方式。因为大多数的数据处理软件都支持ODBC接口,所以TinyODBC也提高了用户的整合能力。

本…
Q:天软支持与哪些数据库的交互
A:天软与数据库交互的方式有三种:ODBC、API、ADO
其中ODBC方式,若该数据库支持ODBC驱动,即可与天软交互。同理,如果数据库支持ADO访问也可以通过ADO方式与天软交互。
API方式…
Q:Matlab中实现结果中带出列名:用jdbc的方式
通过jdBC的方式将Matlab中实现结果中带出列名的实现步骤如下:
1、将天软安装目录下的TSJDBC.zip解压;
2、天软安装目录(一般为C:\Program Files\Tinysoft\…
Q:java JDBC TYPE2/3连接天软服务器报错:InternalConnect:Can’t login server
A:出现场景:TSJDBCServer里面偶尔会报这样一个错误

可能原因:
1、网络不稳定(网络拥堵)
2、服务器的分发量达到了服务器最大分发数。…
Q:使用PYODBC取数时,报错returned a result with an error set
A: 该账号登陆数超限,pyodBC连接服务器失败。需要腾出一个登陆出来。…
Drange( BeginIndex to Endindex)
例如 :
A:=array();
For i:=0 to 999 do
  A[i][“ABCD”]:=i;
//返回序号为 10 到 99 的数据。
Return Select Dr…
HTML表单处理
当一个表单体交给 TSL
脚本时,表单中的信息会自动在脚本中可用。TSL可以轻松的访问这些信息,例如下面的表单:
<form action="foo.tsl" method="POST"> …
2023-05-22客户端升级说明:解决当日登陆卡顿的问题
2023-05-22 升级:
-----------------------------------------------
[attention][strong…
SysSendMail
说明:利用SMTP服务器发送邮件,成功返回真,否则返回假。如果有MSG这个参数,则当失败的时候返回失败的具体信息到MSG参数。
定义一:SysSendMail(AHost,ASubject,ATo,…
TCipher
  TCipher类用于多重对称加密算法,其支持的算法有:
[htm]<table><tbody><tr><td>
mode</td><td>
算法名</td><td>
密钥长度(字节)<…
EncryptFile
范例:
[code]
cipher_obj:=CreateObject('TCipher',7); //使用DES_CBC算法
cipher_obj.Passw…
TCipher使用说明以及范例
  TCipher类所支持的加密算法是基于数据块的对称加密算法。在使用类进行处理前,首先应设置Mode属性,指定算法种类。
  对称加密算法加密和解密使用相同的密钥(key)和初始化向量(I…
where进行条件查询
  假如我们有一个二维数组EnglishScore,结构如下:
  学号姓名英语成绩
  01 张三 80
  02 李四 60
  03 王五 90
  …
2023-2-28客户端升级说明
2023-2-28 升级
------------------------------------------
修正:Firedac下的ORACLE数据库问题,以…
Q:python与天软的交互方式
A:天软支持与python进行交互。
其中,python调用天软的方式,提供了两个接口,用户择其一进行使用即可。
[title1]第一种:依赖天软客户端中的相关包的方式,即TSLPy相关的模块。[…
2021-07-01客户端升级说明
2021-07-01升级:
[em]“ 在这个举国庆祝的重大日子,发布两个微小的更新
近一段时间以来,我们一直在努力让天软的系统可以支持更多的国产化软硬件
天软…
ABC股东权益回报率
选股算法:
ABC股东权益回报率(简称:ROE策略):
1、最近12个月的股东权益回报率超过行业同期平均水平的1.5倍
2、过去 3 年的每一年股东权益回报率均…
Q:如何在linux操作系统下访问天软服务器
A:Linux操作系统可以通过以下几种方式实现与天软服务器的交互:
方式一:安装天软JDBC驱动(类型3),具体请参考:FAQ:2026-04-08-应用专题-第三方交互08:天软JAVA工具集

方式二:通过python调天软…
Q:天软指数数据情况说明
A:生成模型:(下载附件后,保存为用户函数即可运行生成)
附件:getTSIndexDataMark.fun
20250317日指数列表:[attachment id=40719…
大师策略
策略概览
说明:
 1.“结果展示函数”是指用户通过该模型可立即得到该策略一段时间内的组合收益等数据,其数据来源于天软对策略回测的缓存数据,非实时计算过程结果。…
FundExt_BCQk
范例(t):
[code]
FundID := "SH500001";
SetSysParam(pn_Stock(), FundID);
RDate := 20111231…
FundExt_BCCQk
范例(t):
[code]
FundID := "SH500001";
SetSysParam(pn_Stock(), FundID);
RDate := 20111231…
FundExt_BCDQk
范例(t):
[code]
FundID := "SH500001";
SetSysParam(pn_Stock(), FundID);
RDate := 20111231…
FundExt_BCDCExt
范例(t):
[code]
SetSysParam(pn_Stock(),"SH500001");
RDate := 20111231;

return FundExt_…
当前值
[table rsplit="$" csplit="#"]函数名#别名#备注
$WVAD_v#威廉变异离散量#
$[a id=27667…
DBCD_v
算法:

BIAS =(收盘价-收盘价的NI日简单平均)/ 收盘价的N1日简单平均*100;

DIF =BIAS - 前N2日BIAS;

DBCD=DIF的M日平滑移动平均,权重为1。…
DBCD_f
算法:

(1)BIAS =(收盘价-NI日收盘价的简单平均)/N1日收盘价的简单平均*100;

(2)DIF =BIAS - 前N2日BIAS;

(3)DBCD=DIF的M日平滑移动…
SetSysParam
范例(t):
范例1:设置及提取
[code]

setsysparam('ABC',123);//自定义参数名为'ABC',并赋值为123

return getsysparam('A…
sp_s
范例(t):
范例一:设置及提取
[code]
  sp_s ('ABC',123);//自定义参数名为'ABC',并赋值为123
  return sp_g('ABC');//提取参数…
支持的Office常量函数列表
  TSL语言已经以函数的方式支持Office的绝大多数常量,用户可以函数的方式来使用这些常量.
  以下是所有支持的常量函数,具体关于他们的用途以及使用方法请参考Office的相关帮助手册…
支持的Excel常量函数列表
  TSL语言已经以函数的方式支持Excel的绝大多数常量,用户可以函数的方式来使用这些常量.
  以下是所有支持的常量函数,具体关于他们的用途以及使用方法请参考Excel的相关帮助手册,在…
Word常量函数
  TSL语言已经以函数的方式支持Word的绝大多数常量,用户可以函数的方式来使用这些常量,例如wdBlue这个颜色常量可以以wdBlue()的方式来访问。
  Word的常量主要应用在Wo…
Q:如何通过第三方接口下载当天的行情及基本面数据(以python为例)
A:在使用第三方交互接口访问天软数据库时,不建议频繁进行登录退出的操作
 因为登录与退出,需要远程与服务器进行连接会话,会非常依赖网络的稳定性及服务器的响应性能…
2023-07-06客户端升级说明
2023-07-06 升级:
------------------------------------------
[attention]修正:filterin/…
2023-07-21客户端升级说明
2023-07-21 升级:
------------------------------------
修正:[strong]T…
Q:如何通过代理服务器登陆天软服务器
A:用户可通过代理服务器连接天软服务器。
目前天软已支持http代理(默认方式)以及SOCKS5代理。

这里对于常见的几种登陆方式进行具体的代理服务器登陆的实…
2023-08-24客户端升级说明
2023-08-24 升级说明
-----------------------------------
修订:TinyODBC使用中文DSN时的问题。
说明:O…
2023-09-22客户端升级说明:解决首页白屏问题
2023-09-22 升级说明
------------------------------------------
修正:代理…
Q:python的pyodbc接口无法识别汉字列名?
A:早期版本例如python2.7的pyodBC接口不能识别汉字列名,从python3.4开始pyodBC接口可以识别汉字列名。…
参数缺省值
功能:天软函数支持缺省参数的定义,即通过定义设置参数默认值,当缺省该参数时不再是Nil,方便调用时使用。

用法: function funcName(参数名=缺省值,...)
说明:函数的缺…
Q:Julia与天软交互-JDBC方式
A:天软与Julia语言支持以JDBC方式进行交互,调用时需遵守JDBC使用规范。

交互前需获取天软JDBC驱动:FAQ:2026-04-08-应用专题-第三方交互08:天软JAVA工具集
Add
范例(t):


[code]

  obj:=CreateObject('TStringList');

  obj.CommaText:='A=ABC,B=123,C=aBC
Find
范例(t):


[code]

obj:=CreateObject('TStringList');

  obj.Sorted:=1;

  obj.CommaText:=…
AddStrings
范例(t):


[code]

bj:=CreateObject('TStringList');

  obj.CommaText:='A=ABC,B=123,C=aBC';
Position
指针初始位置从0开始,当写入内容后指针会更新,自动指向尾部。
如:
[code]
  obj:=CreateObject("TMemoryStream"); 
  echo obj.P…
CopyFrom
范例:复制一个TStream流中的局部内容
[code]
  obj:=CreateObject("TMemoryStream");
  buffer:="ABC-123";
  obj…
Read
范例:读流中的内容,注意需要先通过position设置起始位置
[code]
  obj:=CreateObject("TMemoryStream");
  echo "起始位置:",obj…
Seek
范例01:从尾部进行移动
[code]
  obj:=CreateObject("TMemoryStream");
  buffer:="ABC 123";
  obj.write(bu…
LoadFromStream
范例:
[code]
obj:=CreateObject("TMemoryStream");
  buffer:="ABC-123";
  obj.write(buffer,8);
SaveToFile
范例:将流中的内容存贮到指定的txt文件中
[code]
  LJ:="E:\\test\\TestBBB.txt";
  obj:=CreateObject("TMemoryStream"…
SaveToStream
范例:将实例obj2的内容保存到实例obj中去
[code]
 obj:=CreateObject("TMemoryStream");
  buffer1:="xxxxxxxx";
  …
BuildOptionComboValue
范例(t):
[code]

//返回结果值为1的Value值

s:='aBCd=0\r BCde=1\r';

return rdo2 BuildOptionComboValue(…
ShowValue
范例(t):
[code]

//显示一个数组数据
a:=rand(10,10);
  b:=rdo2 ShowValue('测试显示',a,False);
return b;
2023-12-12新一代客户端升级:LIBCURL-TSL认证兼容性
2023-12-11 升级说明
------------------------------------
修正:LIBCURL-TSL认证兼容性。
说明:支持老…
Inherited
Inherited是一种调用父类的巧妙的实现,这个实现和Object pascal遵循相同的规则。由于tsl支持多重继承,因而Inherited会优先调用第一个继承的父类,如果没找到则会遍历之后继承的…
Values
范例(t):


[code]

obj:=CreateObject('TStringList');

  obj.Delimiter:=";";

  ob…
ValueFromIndex
范例(t):


[code]

  obj:=CreateObject('TStringList');

  obj.Delimiter:=";";

 …
ExChange
范例(t):
将位置0与位置2的内容进行互换
[code]
obj:=CreateObject('TStringList');
  obj.CommaText:='A=ABC,B=123,…
TryUppercase
范例(t):
return TryUppercase("aBC");
  //结果:"ABC"
TryLowercase
范例(t):
return TryUppercase("ABC");
  //结果:"aBC"
多线程调用案例
  创建多线程程序例子:利用windows API 的CreateThread函数创建多线程调用,通过控制台结束指定线程。
代码如下:
[code]
a:=array();
//将aBCd…
pmstand_array
范例(t):
范例1
  V:=2;
  return pmstand_array(v);//array(2);

范例2
[code]
  V:="…
RD_SM_VolB_BC
范例(t):

[code]
sp_s(pn_stock(),"SZ000001");
  sp_s(pn_date(),20231030.110000t);
  …
RD_SM_VolB_BCLv
范例(t):

[code]
sp_s(pn_stock(),"SZ000001");
  sp_s(pn_date(),20231030.110000t);
  …
2024-03-04客户端升级说明
2024-03-04 升级说明
---------------------------------------------
[strong]修正:[/strong…
2024-03-04新一代客户端升级说明
2024-03-04 升级说明
---------------------------------------------
[strong]升级:[/strong…
2024-03-25新一代客户端升级说明
2024-03-25 升级说明
-----------------------------------
修订:多线程客户机(WEB支持模块等)通讯存在的问题。
2024-03-27新一代客户端升级说明:对象重载二进制函数
2024-03-27 升级说明
-----------------------------------
修订:多fmarray参数函数当fmarray维度不匹配扩…
2024-04-09新一代客户端升级说明
2024-04-09 升级说明
----------------------------------------------
修正:复数的svd分解的问题。
说…
2024-04-10新一代客户端升级说明
2024-04-10 升级说明
----------------------------------------------
修正:4-9日问题。
修正:4-9…
2024-04-15新一代客户端升级说明:JDBC升级
2024-04-15 升级说明
---------------------------
修正:JDBC升级
1.execsql select中1990年1月从…
Stock_ZBCompare
范例(t):
[code]
//返回平安银行最近2个报告期的主要财务数据对比(纵比)数据
setsysparam(pn_stock(),'SZ000001');
infoArr:=array(…
Stocks_ZBCompare
范例(t):
[code]
//返回上证A股在2020年-2021年区间年报的主要财务数据纵比
Infoarr:= array(46002,46008,46011,46012);
Return…
Stocks_HBCompare
范例(t):
[code]
//返回上证A股在20201231-20211231期间的主要财务数据环比
Infoarr:= array(46002,46008,46011,46012);
Re…
Funds_ZBCompare
范例(t):
[code]
//返回板块”开放”在2019-2021年间主要财务数据纵比数据
Return Funds_ZBCompare('开放',array(),2019,2021,4,ar…
2024-04-18新一代客户端升级说明
2024-04-18 升级说明
主要修订涉及到与数据库交互的JDBC与Linux中popc方式中存在的问题。
--------------------------…
FuturesMinimumTradingMarginRateEndT
范例(t):
[code]
// "BC2401"在2023-12-15的最低交易保证金(%)
  SetSysParam(pn_stock(),"BC2401…
2024-04-23新一代客户端升级说明
2024-04-23 升级说明
---------------------------------------
修订:TS-SQL的JDBC链接模式下在SQLTA…
2024-04-25客户端升级说明
2024-04-25升级说明
----------------------------------------
修订:特殊错误表达式导致的问题(正常使用不受影响)。
说明:修正在老版客户端中执行…
2024-04-26新一代客户端升级说明
2024-04-26升级说明
----------------------------------------------
修订:JDBC连接模式的功能
  …
SysExec定义二
范例:
范例01:阻塞方式调用子进程执行命令
[code]
path:="D:\\Program Files\\Python\\Python38\\python…
2024-04-30新一代客户端升级说明
2024-04-30升级说明
-------------------------------------------
修订:04-26日版本修复,JDBC连接模式…
Q:Dotweb(.web)作图使用文档
A:通过天软.web功能作图不仅能使数据呈现方式更个性和完美,还能够保存配置模板,相同格式的结果数据可重复使用。
使用文档:[a href=http://dev.t…
2024-06-02新一代客户端升级说明:对超大数据流的支持
更新日志--------2024-06-02
------------------------------------------------
修正:office…
FundNAWZFQk
范例(t):

[code]
sp_s(pn_stock(),"OF000001");
  begt := 20230101t;
  endt := 20231…
ExtractFileDir
对于路径的处理,在不同系统中存在差异。如Linux中就没有驱动的概念,因此,在处理带驱动的路径时:
如对于根目录的处理extractfiledir("C:\\aBC.txt"),Windows中返回…
Sorted
排序与系统有关,Linux中,默认是以C为标准,按ASCII大小排序或比较大小的(即区分大小写),而windows中,按字母顺序进行(即不区分大小写)。

例如运行下列代码:
[code]
o…
Sort
[code]
obj:=CreateObject('TStringList');
obj.CommaText:='C=456.,a=aBC,E=666,B=123';
echo obj.Comm…
2024-06-28新一代客户端升级说明:UNIT新增变量与常量
2024-06-28
------------------------------------
升级:TSL语言UNIT支持在i…
2024-07-10新一代客户端升级说明
2024-07-10
------------------------------------
升级:支持缺省加载tslpkg目…
2024-07-10客户端升级说明
2024-07-10
------------------------------------
升级:支持缺省加载tslpkg目…
2024-07-19新一代客户端升级
2024-07-19升级说明
-----------------------------------------
升级:支持优化设置8返回系统类调用的优化信息。如…
StockAuctionEndTime
范例(t):
[code]

//"BC2401"在2023-12-15上午连续竞价的开始时间
  SetSysParam(pn_stock(),"BC240…
StockTradeDate
范例(t):
[code]

//"BC2401"在2023-12-16 00:30:00时所属的交易日,不考虑集合竞价时段

  SetSysParam(pn_st…
StockTradingTimesHistory
范例(t):
[code]

//"BC2401"的交易时间

  SetSysParam(pn_stock(),"BC2401");


FundBCBondSumN
范例(t):
[code]
SetSysParam(PN_Stock(),'OF000001');
return FundBCBondSumN(20221231,3,'市值');
//结果:6…
FundBCBondNoN
范例(t):
[code]
SetSysParam(PN_Stock(),'OF000001');
return FundBCBondNoN(20221231,3,'市值');
//结果:11…
OptionUBCSumNVol
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCSumNV…
OptionUBCInstitutOIRank
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCInstitutOIPercent
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCNoNOIPercent
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNOI…
OptionUBCInstitutPercent
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCNoNNetVol
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNNe…
OptionUBCNoNOIName
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNOI…
OptionUBCInstitutOI
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCSumNNetVol
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCSumNN…
OptionUBCSumNOIPercent
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCSumNO…
OptionUBCInstitutNetVol
算法:指定日指定机构净认购成交量变动=今日净认购-上日净认购范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");…
OptionUBCInstitutVol
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCInstitutNetOI
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCNoNVolName
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNVo…
OptionUBCNoNPercent
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNPe…
OptionUBCNoNNetOI
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNNe…
OptionUBCNoNOI
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNOI…
OptionUBCInstitutVolRank
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCInsti…
OptionUBCNoNVol
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCNoNVo…
OptionUBCSumNOI
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCSumNO…
OptionUBCSumNPercent
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCSumNP…
OptionUBCSumNNetOI
范例(t):
[code]

    SetSysParam(pn_stock(),"SH510050");
    return OptionUBCSumNN…
OptionUBCQK
范例(t):

    return OptionUBCQK("SH510050",20200807T,0,0,3);

结果:
[i…
BondSBCRCoverRatioEndT
范例(t):
[code]

  SetSysParam(pn_stock(),"SH120303");
return BondSBCRCoverRatioEndT(2…
BondSBCRIsFinacingCover
范例(t):
[code]

  SetSysParam(pn_stock(),"SH120303");
return BondSBCRIsFinacingCover(…
ReplaceStrByReg
范例(t):
[code]
return ReplaceStrByReg("aBCdeak","A","kkkk");
//结果:ab…
ReplaceTextByReg
范例(t):
[code]
return ReplaceTextByReg("aBCdeak","a","kkkk");
//结果:k…
ParseRegExpr3
范例(t):
[code]
return ParseRegExpr3("aBCdeak","ab","kkkk","ir&qu…
Q:.web中如何对指定列或对多列批量进行图形的配置
A:在.web中作图时,当源数据中存在多列时,我们可以通过不同方式对列进行指定或批量指定进行设置图形类型及细节,操作如下:
原说明文档中《Doweb使用文档》:通过中【基础图形配置】->【系列设置】…
2024-08-16新一代客户端升级说明
2024-08-16 升级说明
---------------------------------
修正:FIREDAC模式ArrayDML ODBC类型连接模式…
2024-08-16客户端升级说明
2024-08-16 升级说明
---------------------------------
修正:FIREDAC模式ArrayDML ODBC类型连接模式…
ZBCompare_Call
范例(t):
[code]
return ZBCompare_Call(array("SH600718","SZ000920"),2016,2020,0,a…
2024-08-21新一代客户端升级说明
2024-08-21升级说明
--------------------------------------------------------
修正:office…
Q:将多个表格进行合并计算(哈希表加速)
A:在对数据的处理中,通常需要对多个数据表,进行表连接后,对每行进行运算,一般方式如join处理,可参考:FAQ:Q:如何实现多表连接

本文中,不展示join处理的方式,对于大数据结…
HTML表单处理
当一个表单体交给 TSL 脚本时,表单中的信息会自动在脚本中可用。TSL可以轻松的访问这些信息,例如下面的表单:
<form action="foo.tsl" method=&q…
Q:安装新一代客户端版本启动报错:Error loading libcef.dll
A:用户在安装天软新一代客户端(NG)后,启动时报下面错误:


目前收集到引发该报错现象的操作系统版本为:windows 2012 r2

原因定位…
2024-11-16新一代客户端升级说明
2024-11-16 升级说明
------------------------------------
[attention]升级:提供更快速的数据压缩传输模式…
Q:Python调pyTSL接口取数范例01:行情数据的提取
A:根据pyTSL提供的三个取数接口(exec,call,query)从以下四个维度提供实现范例,用户可根据需求参考相关范例:

[table rsp…
Q:2025-1-23新一代客户端升级说明:禁用无数据异常
2025-1-23 升级说明
-------------------------------------------------------
[strong]升级…
pn_NoRaiseNoData
范例(t):
范例1:获取当前禁用无数据异常模式
[code]
setsysparam(pn_noraisenodata(),1);
return getsysparam(pn_norais…
Q:禁用无市场数据抛出异常(pn_noraisenodata())的功能说明
功能说明:
不禁用的情况下(系统默认状态):
在默认情况下(即不禁用,系统参数pn_noraisenodata()设置为0时),…
Q:交易规则-申报价最小变动单位价
A:目前通过基本面数据可以获取期货期权各品种申报价的最小变动单位,其它品种根据交易所规则进行的整理,具体如下:
股票、基金、债券:
根据规则整理
[table …
2025-3-21新一代客户端升级说明:新增TSLPy3.13
2025-3-21 升级说明
---------------------------------------
新增:python 3.13支持。
说明:新增TS…
2025-03-26新一代客户端升级说明:新增TSLPy3.14
2025-03-26升级说明
---------------------------------------
修订:JDBC驱动…
2025-03-26客户端升级说明:新增TSLPy3.14
2025-03-26升级说明
---------------------------------------
修订:JDBC驱动…
在平台模型运行时打印信息到客户端/Web端
  在运行平台模型的时候,为了调试方便,也为了监控模型的正常运行,往往需要知道模型运行的状态,这样我们需要在模型运行过程中输出一些信息到终端,而不是等待模型执行完毕得到最终结果。
  这就需…
平台模型远程调用客户端函数,访问客户端的资源
  我们在使用平台模型的时候,经常有需要要访问客户端本地资源。打个比方,我们需要导出计算的数据,而等待整个模型的返回特别长,所以可能我们需要边运行,边导出数据。又或者整个的数据结果集非常大,无法单…
ExportJSONStringMBCS
范例(t):
范例01:将天软含中文的字符串转化为json串
[code]
s:=stockname('SZ000002');//万 科A
return ExportJSONStringMB…
2025-05-07:新一代客户端升级说明
2025-05-07升级说明
---------------------------------------
升级:新增Expo…
2025-05-07:客户端升级说明
2025-05-07升级说明
---------------------------------------
升级:新增Expo…
Q:Matlab调天软的交互方有哪些?
A:Matlab调用天软,目前有两种方式。

方式一:通过actxserver('TSExpert.CoExec')创建天软com对象方式
使用说明可参考:[F…
Q:20250822-天软期货衍生代码调整前后对照表及对程序的影响与处理建议
A:2025-08-22:天软对期货主力代码、次主力代码、指数线代码、连续代码的编码规则进行了调整
具体调整内容请参考:FAQ:Q:20250822-期货主力代码、次主力代码、指数线代码、连续代码的编码规则调整及影响
关于期货各代码的编码规则参考:[F…
2025-08-27:新一代客户端升级说明
2025-8-27 升级说明
------------------------------------------------
[strong]升级:[/stro…
2025-08-27:客户端升级说明
2025-8-27 升级说明
------------------------------------------------
[strong]升级:[/stro…
Q:如何将网页图片导出到本地?
A:可通过InternetRequest获取网页内容,然后通过writefile将内容写入到本地文件中。
实现示例如下:
[code]
path:="E:\\test\\aDog.jpg";//…
ANSI字符串、Unicode字符串与UTF8字符串
TSL语言默认的字符串均是ANSI类型的。
但在语言内核已经支持了UNICODE,在字符串引号前加L就代表是一个UNICODE字符串。如L”CCC”表明为Unicode的字符串”CCC”。
 字…
2025-9-19客户端(新一代)升级说明:部分TSL错误信息升级为英文
2025-9-19 升级说明
-----------------------------------
升级:防止DBF文件被当成xls导入,强制以DBF文件方式读…
2025-9-20客户端(新一代)升级说明
2025-9-20 升级说明
-----------------------------------
[strong]修正:本地解释器未支持网格计算的timeou…
2025-9-19客户端(旧版)升级说明:部分TSL错误信息升级为英文
2025-9-19 升级说明
-----------------------------------
[strong]升级:实现网格计算#的timeout,允许网…
2025-9-20:客户端(旧版)升级说明
2025-9-20 升级说明
-----------------------------------
[strong]修正:本地解释器未支持网格计算的timeou…
2025-9-23客户端(旧版)升级说明
2025-9-23 升级说明

************服务器平台均全面升级至新一代,为了更好地发挥TSL新语言特性及获得更优性能,请用户从官网下载新一代版本客户…
2025-9-23客户端(新版)升级说明
2025-9-23 升级说明
---------------------------------
修正:JDBC对取消数据库操作支持在一些数据库上的兼容性问题。 …
Q:2025-10-24客户端(新一代)升级说明
2025-10-24升级说明
-----------------------------------------------
修正:PDF补丁。
说明:修订pd…
Q:月均价期货数据说明
A:2025-10-28大商所部分品种月均价期货开始上市交易:[a href=http://www.dce.com.cn/dce/content/2025/ywggytz/18623631.html]…
函数的调用
与Pascal语法不同的是,无论函数是否有参数,调用均需要使用()。
例如:
[code]
t1:=funcA(100,200,"aBC");//多参数函数的调用
t2:=today();//…
ifFMArray
范例(t):
范例一:默认对整个值判断
[code]
return ifFMarray(FMArray[1,2,3]);//返回:1
return ifFMarray(Array(1,2,3)…
字符串的非转义表达%%
如果有程序代码或者其他多行的字符串,转移表达描述起来相当复杂, TSL使用%%符来支持不需要转义的原始串, %%支持UNICODE和UTF-8的L和U前导串。

[strong]说明:[/stro…
2025-11-10客户端(新一代)升级说明
2025-11-10 升级说明
---------------------------------------------------
修正:11-06日版本TS…
2025-11-10客户端(旧版)升级说明
2025-11-10 升级说明
-----------------------------------------------
修正:11-06日版本TSJNI导…
Q:天软Java工具集在Linux中的配置操作说明
天软Java工具集在Linux中的配置操作说明

更新说明:
2025-11-18更新
1…
Q:天软是否支持对未上市可转债进行估值?
A:支持,目前天软提供多种可转债估值方法,底层都支持对未上市的可转债进行估值

未上市转债处理方法
  在部分实际研究中,存在着部分可转债虽然未上市,但有估…
Q:天软Java工具集在Windows中的配置操作说明
天软Java工具集在Windows中的配置操作说明

更新说明:
2025-11-28更新
bond_CBConversionPriceChange
范例(t):
[code]
   //烽火转债 的 可转债转股价变动数据
  setsysparam(pn_stock(),"SH110062");
  re…
指标汇总
[htm]<table><tbody><tr><td>
指标分类</td><td>
指标说明</td><td>
接口名称</td></tr><tr><td>
股性指标</td><td>
正股…
2026-01-06客户端(新一代)升级说明
2026-01-06 升级说明
---------------------------------------------------
[strong]升级:[/…
Q:ETF日内实时申购赎回数据
A:目前,深交所ETF行情中有提供实时申赎数据,上交所没有。
数据情况:
  ETF代码加了后缀ETF来做实时申赎的行情接收,提供了以下数据字段:
   …
模型汇总
[htm]<table><tbody><tr><td>
分类</td><td>
函数名</td><td>
说明</td></tr><tr><td>
BAW定价</td><td>
<a hre…
模型汇总
[htm]<table><tbody><tr><td>
接口分类</td><td>
接口名称</td><td>
接口定义</td></tr><tr><td>
成交持仓</td><td>
成交…
模型汇总
[htm]<table><tbody><tr><td>
接口分类</td><td>
接口名称</td><td>
接口定义</td></tr><tr><td>
成交持仓</td><td>
成交…
2026-02-28客户端(旧版)升级说明::新增“断开连接”提示窗口
2026-02-28 升级说明
---------------------------------------------------
[strong]修正:[/…
Q:字符串重组之证券代码的格式转换
A:天软中,证券代码一般由市场代码+数字证券代码组合而成,如"SZ000001",其中SZ表示深交所。
而在其它平台中,可能有不同的代码编制规则,比如"000001.SZ"这种方式。

用户在多…