Files
playbook/docs/tsl/syntax_book/function/index.md
T

83 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TSL 函数参考(Function Reference
本章从天软金融分析 .NET 函数大全整理而来,保留原始函数说明结构。
> ⚠️
> **重要提示**:由于函数数量庞大(22万+行),已按功能模块拆分为多个文件。建议使用编辑器的全局搜索功能查找特定函数。
## 快速导航
### 核心函数库
- **[01 TSL函数](./01_tsl_functions.md)** - 数学、系统、基础、图形等通用函数
- 详细内容:[tsl/index.md](./tsl/index.md) (10个子文件,34,113行)
- **[02 金融函数](./02_financial_functions.md)** - 股票、行情、技术分析、财务等金融专用函数
- 详细内容:[financial/index.md](./financial/index.md) (23个子文件,169,893行)
- **[03 数据仓库函数](./03_datawarehouse.md)**
(7,270行) - 数据查询、时间序列、市场板块函数
### 专业领域
- **[算法交易支撑函数](./04_algo_trading.md)**
(2,913行) - 算法交易服务器支撑、交易开发类
- **[服务器交互函数](./05_server_interaction.md)**
(312行) - 连接、登录、执行、订阅等服务器交互
- **[文档处理函数](./06_document_processing.md)** (10,790行) -
Office访问、Excel/Word/PDF处理、图片导出
- **[金融报表分析](./10_financial_reports.md)**
(10,382行) - 个股、板块、基金、债券报表分析
### 开发工具
- **[CGI控制台相关函数](./07_cgi_console.md)** (185行) - CGI输入输出、环境变量
- **[GUI函数](./08_gui.md)** (1,244行) - 消息对话框、图形界面交互
- **[TSL编译工具](./09_compiler.md)** (936行) - 编译范围、TSL指令、依赖关系
- **[Web开发支撑](./11_web_development.md)** (747行) - TSL的Web支持、Web Tools
## 使用建议
1. **新手入门**:从 [TSL函数 → 基础函数](./tsl/base.md) 开始
2. **金融分析**:查阅 [金融函数](./financial/index.md)
3. **搜索函数**:使用编辑器全局搜索 `function/` 目录(推荐使用 `Ctrl+Shift+F`
`Cmd+Shift+F`
4. **API查询**:按功能模块浏览对应文件
## 拆分说明
`function.md` 文件有 221,389 行,已拆分为:
- **9个独立章节文件**(数据仓库、算法交易、服务器交互等)
- **TSL函数** → 10个子文件(数学、基础、系统等)
- **金融函数** → 23个子文件(股票、行情、技术分析等)
共计 **42个独立文件**,便于浏览和维护。
---
<details>
<summary>📖 函数使用说明(点击展开)</summary>
## 类型声明说明
注意:
1. **类型声明**:TSL的函数定义无需参数类型声明,也无需返回类型声明,在以下函数说明里,我们采用了PASCAL的函数声明模式,只是为了让用户更容易地理解各个函数的具体含义和对参数的要求。
2. **VAR**:在函数参数声明中,有的使用了VAR作为前缀,这表示该函数会修改该VAR管辖的定义域内的参数,如果没有VAR前缀,则表示其变量不会被该函数修改。在TSL中,所有的函数变量都是允许被修改的,也不支持VAR前缀。
## 表达式类型说明
3. **表达式类型**:许多系统函数的参数类型是表达式类型,系统为了方便用户使用,这些参数并不需要使用表达式类型,而只需要使用表达式语句,TSL语言会直接为用户将表达式语句转换为表达式类型,典型函数如:Spec,SpecDate,Ma,hhv,llv等,例如我们要求SZ000001的收盘价,我们使用
`Spec('SZ000001',Close())` 而不是
`Spec('SZ000001',@Close())`,如果我们由于应用需要而必需使用表达式类型变量,我们可以配合使用Eval函数,例如exp为表达式类型,其值为@Close(),我们可以
`Spec('SZ000001',eval(exp))`
来求值;一般地,在系统函数里,除了isExp,eval等明显必需使用表达式类型作为参数的函数以外,大部分符合以上规则。
4. **重名函数**:TSL并不支持用户函数重名,如果存在用户函数与其他类型函数重名,则用户函数优先。在以下文档中,有函数重名现象,这表示该系统函数有多种参数模式。
</details>
---
**原始文档**:本文档由 221,389 行的 `function.md` 拆分而来,原始大文件不在当前仓库保留;如需查看,请从历史版本获取。