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

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))`
来求值;一般地在系统函数里除了isExpeval等明显必需使用表达式类型作为参数的函数以外大部分符合以上规则。
4. **重名函数**TSL并不支持用户函数重名如果存在用户函数与其他类型函数重名则用户函数优先。在以下文档中有函数重名现象这表示该系统函数有多种参数模式。
</details>
---
**原始文档**:本文档由 221,389 行的 `function.md` 拆分而来,原始大文件不在当前仓库保留;如需查看,请从历史版本获取。