# Builtin - 外部交互 / COM ## `cverrget(v)` 获取NAN数据的错误号,出来的结果仅应使用低32位,也就是需要用 .& 0xFFFFFFFF,因为高字的数据是无法确定的。 | 参数 | 类型 | 说明 | | ---- | ------ | ---- | | `v` | double | | 返回:int64 ## `cverr(v)` 将错误号转为包含错误号的特殊的NAN数据。 | 参数 | 类型 | 说明 | | ---- | ----- | ---- | | `v` | int64 | | 返回:real ### 示例 ```tsl return cverr(0x800A07E7); // 返回结果NAN ``` ## `coInitialize()` Ole初始化。 返回:any ## `coUnInitialize()` Ole结束。 返回:any ## `pyPutVar(var_name, var_value)` 送入python变量 | 参数 | 类型 | 说明 | | ----------- | ------ | ---- | | `var_name` | string | | | `var_value` | any | | 返回:integer ## `pyGetVar(var_name)` 从python 获得变量 | 参数 | 类型 | 说明 | | ---------- | ------ | ---- | | `var_name` | string | | 返回:any ## `pyRun(python_code, flag)` 简单运行Python的代码 | 参数 | 类型 | 说明 | | ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- | | `python_code` | string | 字符串类型,Python代码串,可执行多行代码。注意,使用空格对齐来确定逻辑层级,相同空格数代表同一层级,一般推荐使用4个空格。 | | `flag` | integer | 整型,可选参数,默认不被指定,该含义由PyCompileFlags指定组合的状态,处理UTF-8源代码等问题。具体请参考Python手册。 | 返回:integer ### 示例 ```tsl s := "a=1 b=1 if a==1: b=2 "; pyRun(s); return array("a": pyGetVar("a"), "b": pyGetVar("b")); // 本地执行返回结果: ``` ## `pyCall(call_flag)` 调用python 模块中的函数 | 参数 | 类型 | 说明 | | ----------- | ------- | --------------------------------------------------------------------------------------------------------------------- | | `call_flag` | integer | 结果输出方式与参数输入方式的设置,是一个按位(2位二进制)的状态组合值,即取值为二进制的00,01,10,11组合,具体含义如下: | 返回:any ### 示例 ```tsl rdo2 pyRun("import numpy"); // 不给状态值,默认方式下调用python的randint函数 return rdo2 pyCall('numpy.random', 'randint', 6, 9); // 参数通过数组方式传入 return pyCall(2, 'numpy.random', 'randint', array('high': 9, 'low': 6)); // 一个个指定参数方式传入 return pyCall('numpy.random', 'randint', high: 9, low: 6); ``` ## `pyRelease()` 释放python资源,多线程的时候可以提高效率 返回:bool ## `pyEnsure()` 锁定python资源;由于pyrun和pyPutVar,pyGetVar会智能锁定,所以用户一般来说不需要调用该函数。 返回:bool ## `pyError()` 获取当前运行 Python 语句时的报错信息 返回:string ### 示例 ```tsl // 本地执行以下脚本 pyRun("a=math.pi"); // 此处会报错因为没有 import math return pyError(); // 返回: name 'math' is not defined ``` ## `rEval(eval_string, code)` 执行R的字符串。 | 参数 | 类型 | 说明 | | ------------- | ------- | ----------------------------------------- | | `eval_string` | string | 执行的串,例如”a=b+1”。 | | `code` | integer | 返回是否成功,为0表示成功过,否则为错误码 | 返回:any ## `rGetVar(var_name)` 获得一个R的变量的值。 | 参数 | 类型 | 说明 | | ---------- | ------ | ----------------------- | | `var_name` | string | 设置的变量名,例如”a”。 | 返回:any ## `rPutVar(var_name, value)` 设置一个R的变量的值。 | 参数 | 类型 | 说明 | | ---------- | ------ | ----------------------- | | `var_name` | string | 设置的变量名,例如”a”。 | | `value` | any | 设置的变量的值 | 返回:any ## `rEnsure()` 锁定R资源;由于REval和RPutVar,RGetVar会智能锁定,所以用户一般来说不需要调用该函数。 返回:bool ## `rRelease()` 释放R资源,多线程的时候可以提高效率 返回:bool ## `mEval(eval_string)` 执行MatLab的字符串。 | 参数 | 类型 | 说明 | | ------------- | ------ | ----------------------- | | `eval_string` | string | 执行的串,例如”a=b+1”。 | 返回:integer ## `mPutVar(var_name, value)` 设置一个MATLAB的变量的值。 | 参数 | 类型 | 说明 | | ---------- | ------ | ----------------------- | | `var_name` | string | 设置的变量名,例如”a”。 | | `value` | any | 设置的变量的值 | 返回:integer ## `mGetVar(var_name)` 获得一个MATLAB的变量的值。 | 参数 | 类型 | 说明 | | ---------- | ------ | ----------------------- | | `var_name` | string | 要获得变量名,例如”a”。 | 返回:any ## `mGetBuf()` 返回MATLAB引擎的警告或者错误信息。 返回:string ## `mClose()` 关闭MATLAB引擎。 返回:any ## `mSetVisible(visible)` 设置MATLAB引擎是否可视。 | 参数 | 类型 | 说明 | | --------- | ---- | ------------------------------ | | `visible` | bool | 如果为真,则显示,为假则隐藏。 | 返回:integer ## `stock()` 字符串类型,当前证券代码系统参数,读写。 返回:any ## `cycle()` 字符串类型,当前周期系统参数,读写。 返回:any ## `rate()` 整数类型,当前复权类型系统参数,读写。 返回:any ## `rateDay()` 日期类型,复权基准日系统参数,读写。 返回:any ## `precision()` 整数类型,保留小数位数系统参数,读写。 返回:any ## `bk()` 字符串类型,默认板块系统参数,读写。 返回:any ## `stocks()` 股票组参数,如果调用REMOTECALLFUNC需要一次性调用多个股票进行返回,则设置该参数为数组,取消则设置Stock属性。主要用于EXCEL的表格提取数据。 返回:any ## `times()` 时间组参数,如果调用REMOTECALLFUNC需要一次性调用多个时间进行返回,则设置该参数为数组,取消则设置Time属性。主要用于EXCEL的表格提取数据。 返回:any ## `bks()` 板块组参数,如果调用REMOTECALLFUNC需要一次性调用多个板块进行返回,则设置该参数为数组,取消则设置BK属性。主要用于EXCEL的表格提取数据。 返回:any ## `nilTrans()` 设置TSL语言的NIL和COM转换的规则。 返回:any ## `i64Trans()` 设置TSL语言的Int64和COM转换的规则。 返回:any ## `keepRawData()` 由于在EXCEL单元格中以及MATLAB中送入数据的时候,均为二维数据,但TSL很多函数的参数需要一维的参数,因此需要有一个转换的原则。数据转换规则如下: 返回:any ## `standardArray()` TSL返回的数组是一种array of olevariant结构,允许混合数据类型,可以将字符串,整数浮点混合在一个数组中,这样在某些其他系统中,会存在处理上的难度,为了兼容这些系统,允许指定返回的结果集为一个标准的数组。当使用这个设置的时候,必需保障返回的数据结果集是规范的类型一致的结果集,否则可能会出现错误。可设置的值定义为: 返回:any ## `textResult()` 某些系统无法处理复杂的结果集,在这种情况下,可以使用文本来返回的结果集,文本格式是TSL可解析的数据结构文本串。设置为1则任意类型均以文本串的模式返回。 返回:any ## `resultFileName()` 某些系统无法处理COM返回的复杂的结果集,在这种情况下,可以指定一个文件来返回结果集,调用完成后再由该系统从文件中读取数据。设置该文件名为非空的串则打开该模式,如果文件名以.csv或.xml结尾,会以CSV或XML(XML为TSL语言的标准XML格式)格式写入文件,否则,会写入EXCEL格式结构的文件。 返回:any ## `computebitsoption()` 计算的位数选项。0:自动选择,1:32位服务器计算,2:64位服务器计算。 返回:any ## `computeservice()` 计算的服务群组选择。空字符串为默认,’auto’为自动选择,否则为指定的服务群组名。 返回:any ## `remoteCallFunc(func_name, params)` 利用平台执行一个函数。 | 参数 | 类型 | 说明 | | ----------- | ---------- | ---------------------------------------------------- | | `func_name` | widestring | 字符串类型,需要调用的函数名。 | | `params` | olevariant | Array of Variant的数组类型。用于存贮调用函数的参数。 | 返回:any ## `localCallFunc(func_name, params)` 利用本地解释器执行一个函数。 | 参数 | 类型 | 说明 | | ----------- | ---------- | ---------------------------------------------------- | | `func_name` | widestring | 字符串类型,需要调用的函数名。 | | `params` | olevariant | Array of Variant的数组类型。用于存贮调用函数的参数。 | 返回:any ## `remoteExecute(execute_str)` 利用平台执行一段TSL脚本。 | 参数 | 类型 | 说明 | | ------------- | ---------- | ------------------------------ | | `execute_str` | widestring | 字符串类型,需要执行的脚本串。 | 返回:any ## `localExecute(execute_str)` 利用本地解释器执行一段TSL脚本。 | 参数 | 类型 | 说明 | | ------------- | ---------- | ------------------------------ | | `execute_str` | widestring | 字符串类型,需要执行的脚本串。 | 返回:any ## `resetSysParam()` 重置系统参数。时间设置为当前时间,证券为上证指数,周期为日线,设置为不复权,复权基准日为0,返回保留小数点位数为4,股票列表为空,时间列表为空。 返回:any ## `adminCommand(command, time_out, recv_string, broad_string, err_msg)` 提交管理员命令。 | 参数 | 类型 | 说明 | | -------------- | ---------- | -------------------------------- | | `command` | widestring | 字符串类型,提交的管理员命令串。 | | `time_out` | integer | 整数类型,命令超时的毫秒数。 | | `recv_string` | | 返回的命令结果串。 | | `broad_string` | | 返回的广播消息串。 | | `err_msg` | | 如果发生错误,返回的错误信息。 | 返回:olevariant ## `simplyAdminCommand(command, time_out, no_data_time_out)` 提交管理员命令。 | 参数 | 类型 | 说明 | | ------------------ | ---------- | ------------------------------------------------ | | `command` | widestring | 字符串类型,提交的管理员命令串。 | | `time_out` | integer | 整数类型,命令超时的毫秒数。 | | `no_data_time_out` | integer | 整数类型,收到第一个数据开始多久没有数据则返回。 | 返回:olevariant