feat(skills): add tsl api reference skill

Bundle the TSL API index and markdown references under the skill, route TSL docs to use it, and update the codegen index generator to maintain the bundled data.
This commit is contained in:
csh
2026-07-07 16:36:15 +08:00
parent 4cd6b9410f
commit e1f7ce052c
267 changed files with 185908 additions and 11996 deletions
@@ -0,0 +1,365 @@
# Builtin - 图形 / 颜色
## `paletteIndex(i)`
调色板中的颜色。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `i` | word | PC_RESERVED = 1;   { palette index used for animation } |
返回:tcolor
## `clBlack()`
黑色
返回:integer
## `clMaroon()`
栗色
返回:integer
## `clGreen()`
绿色
返回:integer
## `clOlive()`
橄榄色
返回:integer
## `clNavy()`
海蓝色
返回:integer
## `clPurple()`
紫色
返回:integer
## `clTeal()`
水鸭色
返回:integer
## `clGray()`
灰色
返回:integer
## `clSilver()`
银白色
返回:integer
## `clRed()`
红色
返回:integer
## `clLime()`
橙色
返回:integer
## `clYellow()`
黄色
返回:integer
## `clBlue()`
蓝色
返回:integer
## `clFuchsia()`
紫红色
返回:integer
## `clAqua()`
特殊色
返回:integer
## `clLtGray()`
淡灰色
返回:integer
## `clDkGray()`
亮灰色
返回:integer
## `clWhite()`
白色
返回:integer
## `clMoneyGreen()`
钱绿色
返回:integer
## `clSkyBlue()`
天蓝色
返回:integer
## `clCream()`
奶油色
返回:integer
## `clMedGray()`
中灰色
返回:integer
## `getCValue(cmyk)`
得到颜色的cmyk模式的C值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `cmyk` | tcolor | |
返回:byte
## `getMValue(cmyk)`
得到颜色的cmyk模式的M值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `cmyk` | tcolor | |
返回:byte
## `getYValue(cmyk)`
得到颜色的cmyk模式的Y值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `cmyk` | tcolor | |
返回:byte
## `getKValue(cmyk)`
得到颜色的cmyk模式的K值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `cmyk` | tcolor | |
返回:byte
## `cmyk(c, m, y, k)`
将C、M、Y、K值合成颜色。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `c` | byte | |
| `m` | byte | |
| `y` | byte | |
| `k` | byte | |
返回:tcolor
## `rgb(r, g, b)`
将R、G、B值合成颜色。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `r` | byte | |
| `g` | byte | |
| `b` | byte | |
返回:tcolor
## `rgbbgr()`
颜色转换,对RGB和BGR两种颜色规范进行转换。
返回:any
## `paletteRgb(r, g, b)`
将R、G、B值合成调色板的颜色。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `r` | byte | |
| `g` | byte | |
| `b` | byte | |
返回:tcolor
## `getRValue(rgb)`
得到颜色的R值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `rgb` | dword | |
返回:byte
## `getGValue(rgb)`
得到颜色的G值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `rgb` | dword | |
返回:byte
## `getBValue(rgb)`
得到颜色的B值。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `rgb` | dword | |
返回:byte
## `clshSexField()`
管理层-性别字段。根据不同的数据库提供商返回对应的值
返回:string
## `clshShareAmountField()`
管理层持股-持股数字段。根据不同的数据库提供商返回对应的值
返回:string
## `clshChangeDateField()`
管理层-变动日字段。根据不同的数据库提供商返回对应的值
返回:string
## `clshAgeField()`
管理层-年龄字段。根据不同的数据库提供商返回对应的值
返回:string
## `clshPositionField()`
管理层-任职类别字段。根据不同的数据库提供商返回对应的值
返回:string
## `clshDegreeField()`
管理层-学历字段。根据不同的数据库提供商返回对应的值
返回:string
## `clshNameField()`
管理层-姓名字段。根据不同的数据库提供商返回对应的值
返回:string
## `close8AfterDay(number_of_days, days_type)`
上市后\_T0+N天收盘(已复权),T0日为股票上市的第一个交易日,与系统证券pn_stock()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()有关。调用时注意系统参数的设置
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `number_of_days` | any | 整数类型,推移天数,N天 |
| `days_type` | any | 天数类型 |
返回:float
## `close8AfterMonth(number_of_days, days_type)`
上市后\_T0+N月收盘(已复权),T0日为股票上市的第一个交易日,与系统证券pn_stock()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()有关。调用时注意系统参数的设置
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `number_of_days` | any | 整数类型,推移天数,N月 |
| `days_type` | any | 天数类型 |
返回:float
## `class(ts_optimizer)`
TSPortfolioOptimizer组合优化框架类,主要封装了常见的组合优化目标和组合约束条件。 优化目标:跟踪误差最小、超额收益最大、信息比率最大、组合风险最小、组合你和指数残差平方和最小、组合收益最大等; 约束条件:包括线性约束和非线性约束。线性约束包括个股权重、行业权重等约束;非线性约束包括超额收益、跟踪误差、信息比率等约束; 用户也可以自己重写自己的优化目标和约束条件。 详细说明及范例见组合优化专题,如下链接。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `ts_optimizer` | any | |
返回:any
## `clusterKmeans(sample, n, options)`
sample是一个样本数据观测矩阵,每一行是一个样本数据,本函数依据各种不同的距离对样本进行快速聚类
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `sample` | array | 样本数据观测矩阵,每一行是一个样本数据 |
| `n` | any | 分类数,整数类型 |
| `options` | array | 功能选项;options\['maxiter'\]:最大迭代次数,默认次数20options\['tol'\]:迭代精度,样本中心变化,默认迭代精度1.0e-15options\['distance'\]:距离方式,参数的输入格式参考\[Distance\]name的输入,默认为欧氏距离;options\['out'\]:输出格式,0为输出为各个样本对应的类,1为输出每行为一个类默认为1 |
返回:array
## `clusterSystem(a, dmethods, methods, options)`
sample是一个样本数据观测矩阵,每一行是一个样本数据,本函数依据各种不同的距离对样本进行谱系聚类
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `a` | array | 样本数据观测矩阵,每一行是一个样本数据 |
| `dmethods` | any | 整数或字符串类型,距离方式,参数的输入格式参考\[Distance\]name的输入,缺省欧式距离 |
| `methods` | any | 1:组间以中心距离,默认组间中心距离;2:以组间最短距离;3:以组间最大距离 |
| `options` | array | 默认为输出谱系树;Options\['best':1\]:输出最优分类;Options\['tree':1\]:输出谱系树,默认输出谱系关系;Options\['out':0\]:最佳分类排列方式。1每一行为一个类(默认)0各个样本对应的类 |
返回:array
## `clusterWard(sample)`
对类之间距离采用ward法(离差平方和)进行谱系聚类
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `sample` | array | 二维数字数组,每行为一个样本 |
返回:any
@@ -0,0 +1,487 @@
# Builtin - 图形 / 图形对象
## `graphGroup(graph1, graph_n, prop_m, value_m)`
用于生成图形组合,可以指定任意多个单个图形作为参数生成一个图形组合,在其后面还可以指定图形组合的共有属性。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `graph1` | tgraph | TGraph 图形1 |
| `graph_n` | tgraph | TGraph 图形N |
| `prop_m` | string | string 可选参数,TGraphGroup属性名称 |
| `value_m` | | any 可选参数,TGraphGroup属性值 |
返回:tgraphgroup
### 示例
```tsl
vol_data := nDay2(gfVol() , vol() , gfColor() , ifThen ( close()> open() , clRed() , clGreen() ) );
mavol := nDay2('MA5', ma ( vol() , 5 ) );
vol_graph := graph(gtBar(), 'VOLGraph', vol_data);
mavol_graph := graph(gtLine(), 'MA5Graph', mavol, gfColor(), clBlue());
return graphGroup(vol_graph, mavol_graph, gfMinValue(), 0);
// 输出:
// Execute script error at Line:3
// function:__main__:line 3:instruction:usercall: 执行函数 graph 出错。
// function:__main__:line 3:instruction:usercall: function execute error
// 输出:说明:GraphGroup包含了两个TGraph图形,一个是VOLGraph成交量图形,另一个是MAVOLGraph成交量的5日均线的折线图形。这两个图形具有的共有属性是gfMinValue(),就是最小值为0。gfColor在VolData中作为了数据字段,用来指示每一个数据点的颜色。因此柱子会根据开盘和收盘的差异来决定色彩的显示。而在MAVOLGraph又作为了图形的属性,因此MAVOLGraph在显示的时候会呈现出蓝色。gfMinValue在返回的图形组合里作为了图形组合的属性,因此决定了图形会用0来作为最小的值来显示,而不会用区间内的最小成交量作为最小值显示。
// 另外,我们可以注意到,作为gtLine类型的MAVOLGraph并不含有特殊的值来指定折线的点的位置,在没有特定的数据字段的时候,系统会使用第一个存在的数据字段当成默认的gfValue来显示。
gfMinValue():设定最小值。一般的,图形会用查找视图内最小最小值用于显示,同时,为了特殊显示,也可以指定其显示的最大最小值,通常成交量的图是用0作为最小值的。
```
## `encodeGraph(_type, name, data, prop)`
返回根据指定的类型、名称、数据以及属性数组生成的图形。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `_type` | integer | |
| `name` | string | |
| `data` | array | |
| `prop` | array | |
返回:tgraph
### 示例
```tsl
setSysParam(pn_stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20140117));
setSysParam(pn_nday(), 250);
t1 := nDay2(gfOpen(), open() ,
gfClose(), close(),
gfHigh(), high(),
gfLow(), low(),
gfTime(), dateTimeToStr(sp_time()),
// KLine颜色
gfColor(), ifThen3(close(), open(),
clRed() , // 涨颜色
clYellow() , // 平颜色
clBlue() // 跌颜色
),
gfFill(), ifThen3(close(), open(), flClear(), flSolid(), flSolid())
);
return encodeGraph(gtKLine(), 'KLine', t1, array());
// 输出:
// Execute script error at Line:17
// function:__main__:line 17:instruction:array: 执行函数 encodeGraph 出错。
// function:__main__:line 17:instruction:array: function execute error
```
## `gfColor()`
颜色(数据字段或TGraph的属性),可以修饰单个数据点或者整个图形的颜色。
返回:string
## `gfFill()`
填充状况(数据字段),用于设定柱线、K线、圆圈图等填充情况。
返回:string
## `gfFlag()`
标示(数据字段),标示内容见图形标示函数
返回:string
## `gfZero()`
零轴(TGraphgroup的属性字段)TGraphGroup的属性,用于标示中间值,特别用于MACD类的图形
返回:string
## `gfMaxValue()`
设定显示的最大值(TGraphGroup的属性字段)TGraphGroup的属性。一般的,图形会用查找视图内最小最小值用于显示,同时,为了特殊显示,也可以指定其显示的最大最小值,例如成交量的图是用0作为最小值的。
返回:string
## `gfMinValue()`
设定显示的最小值(TGraphGroup的属性字段)TGraphGroup的属性。一般的,图形会用查找视图内最小最小值用于显示,同时,为了特殊显示,也可以指定其显示的最大最小值,例如成交量的图是用0作为最小值的。
返回:string
## `gfLtp()`
流通盘(TGraphGroup的属性字段)TGraphGroup的属性,用于换手率的计算,暂时未使用,将来扩展用。
返回:string
## `gfTitleCaption()`
图形的标题文字,TGraphGroup的属性。
返回:string
## `gfLeftTitleCaption()`
图形辅助标题文字。
返回:string
## `gfCoordinate()`
图形的坐标系模式。设置为0为普通坐标,1为对数坐标,2为百分比坐标。
返回:string
## `gfValue()`
值(数据字段),可指定折线,柱线,细柱线,圆圈图的值
返回:string
## `gfClose()`
收盘(数据字段),一般用于K线,美国线,宝塔线
返回:string
## `gfOpen()`
开盘(数据字段),用于K线,宝塔线,美国线
返回:string
## `gfHigh()`
最高(数据字段),用于K线,宝塔线,美国线
返回:string
## `gfLow()`
最低(数据字段),用于K线,宝塔线,美国线
返回:string
## `gfTowerLow()`
宝塔线中的低值(数据字段),宝塔线也可以不需要使用此三个字段,该三个字段的内容可以被自动根据gfClose,gfOpen,gfHigh,gfLow计算出来
返回:string
## `gfTowerHigh()`
宝塔线中的高值(数据字段),宝塔线也可以不需要使用此三个字段,该三个字段的内容可以被自动根据gfClose,gfOpen,gfHigh,gfLow计算出来
返回:string
## `gfTowerMid()`
宝塔线中的中值(数据字段),宝塔线也可以不需要使用此三个字段,该三个字段的内容可以被自动根据gfClose,gfOpen,gfHigh,gfLow计算出来
返回:string
## `gfVol()`
成交量(数据字段),也可用于指定柱线,细柱线的值
返回:string
## `gfAmount()`
成交金额(数据字段),也可用于指定柱线,细柱线的值
返回:string
## `gfTime()`
时间坐标(数据字段),用于X坐标轴的显示
返回:string
## `gfRateFlag()`
除权标示(数据字段),指示是否为除权日
返回:string
## `flSolid()`
实心填充。
返回:integer
## `flClear()`
空心体。
返回:integer
## `flHorizontal()`
横线填充
返回:integer
## `flVertical()`
竖线填充
返回:integer
## `flFDiagonal()`
正斜线填充
返回:integer
## `flBDiagonal()`
反斜线填充
返回:integer
## `flCross()`
交叉线填充
返回:integer
## `flDiagCross()`
交叉斜线填充
返回:integer
## `gtLine()`
折线类型
返回:integer
## `gtKLine()`
K线类型
返回:integer
## `gtTower()`
宝塔线类型
返回:integer
## `gtAmerican()`
美国线类型
返回:integer
## `gtBar()`
柱线类型
返回:integer
## `gtSingleBar()`
细柱线类型
返回:integer
## `gtCircle()`
圆圈图类型
返回:integer
## `fgNone()`
无标识
返回:integer
## `fgUp()`
返回:integer
## `fgDown()`
返回:integer
## `fgLeft()`
返回:integer
## `fgRight()`
返回:integer
## `fgLeftUp()`
左上
返回:integer
## `fgLeftDown()`
左下
返回:integer
## `fgRightUp()`
右上
返回:integer
## `fgRightDown()`
右下
返回:integer
## `graph(_type, graph_name, data, prop1, prop1_value, prop2, prop2_value, ..., prop_n, prop_n_value)`
用于生成单个图形。单个图形的含义是一条折线、K线或成交量柱壮图。函数的具体的功能是:用指定的数据Data生成一个类型为Type的图形,并且用后面指定的属性参数PropN和PropNValue为图形指定修饰属性。注意,如果横坐标要显示出数据,需要把横坐标设置列名为'time'
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `_type` | integer | |
| `graph_name` | string | |
| `data` | tablearray | |
| `prop1` | string | |
| `prop1_value` | any | |
| `prop2` | string | |
| `prop2_value` | any | |
| `...` | | |
| `prop_n` | string | |
| `prop_n_value` | any | |
返回:tgraph
### 示例
范例一:
```tsl
// K线图
setSysParam(pn_stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20140117));
setSysParam(pn_nday(), 250);
t1 := nDay2(gfOpen(), open() ,
gfClose(), close(),
gfHigh(), high(),
gfLow(), low(),
gfTime(), dateTimeToStr(sp_time()),
// KLine颜色
gfColor(), ifThen3(close(), open(),
clRed() , // 涨颜色
clYellow() , // 平颜色
clLime() // 跌颜色
),
gfFill(), ifThen3(close(), open(), flClear(), flSolid(), flSolid())
);
t2 := nDay2('MA10', ma(close(), 10));
g1 := graph(gtKLine(), 'KLine', t1);
g2 := graph(gtLine(), 'MA10', t2);
return graphGroup(g1, g2);
// 输出:
// Execute script error at Line:19
// function:__main__:line 19:instruction:usercall: 执行函数 graph 出错。
// function:__main__:line 19:instruction:usercall: function execute error
```
范例二:
```tsl
// 折线图
setSysParam(pn_stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20140117));
setSysParam(pn_nday(), 250);
g_data1 := nDay2(gfClose(), close());
g_data2 := nDay2('MA5', ma(close(), 5));
g_data3 := nDay2('MA20', ma(close(), 20));
g1 := graph( gtLine(), gfClose(), gdata1, gfColor() , clBlue());
g2 := graph( gtLine(), "MA5", gdata2, gfColor() , clGreen());
g3 := graph( gtLine(), "MA20", gdata3, gfColor() , clRed());
return graphGroup(g1, g2, g3);
// 输出:
// Execute script error at Line:8
// function:__main__:line 8:instruction:usercall: 执行函数 graph 出错。
// function:__main__:line 8:instruction:usercall: function execute error
```
## `gfBiasEval(l1)`
乘离率绘图教学函数。返回指定股票在截止日N(默认180)个序列的L1乘离率图形,与系统参数(股票,周期,时间,复权相关)
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `l1` | any | 整数 |
返回:any
## `mergeGraph(g1, g2, g3, gn)`
将运行结果为图像的多个参数图像叠加,返回叠加后的图形组合。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `g1` | graph | 图形1,一般是由graph函数返回的图形 |
| `g2` | graph | 图形2,一般是由graph函数返回的图形 |
| `g3` | graph | 图形3,一般是由graph函数返回的图形 |
| `gn` | graph | 图形n,一般是由graph函数返回的图形 |
返回:graph
### 示例
```tsl
setSysParam(pn_stock(), 'SZ000063');
setSysParam(pn_date(), 20190301T);
setSysParam(pn_nday(), 100);
t1 := nDay2(gfOpen(), open() ,
gfClose(), close(),
gfHigh(), high(),
gfLow(), low(),
gfTime(), dateTimeToStr(sp_time()),
// KLine颜色
gfColor(), ifThen3(close(), open(),
clRed() , // 涨颜色
clYellow() , // 平颜色
clLime() // 跌颜色
),
gfFill(), ifThen3(close(), open(), flClear(), flSolid(), flSolid())
);
t2 := nDay2('MA5', ma(close(), 5)); // 5日均线
t3 := nDay2('MA10', ma(close(), 10)); // 10日均线
t4 := nDay2('MA20', ma(close(), 20)); // 20日均线
g1 := graph(gtKLine(), 'KLine', t1);
g2 := graph(gtLine(), 'MA5', t2);
g3 := graph(gtLine(), 'MA10', t3);
g4 := graph(gtLine(), 'MA20', t4);
return mergeGraph(g1, g2, g3, g4);
// 返回:
```
## `getColorByIndex(index)`
依据Index值,获得颜色数组内的指定颜色整数代号。
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| `index` | integer | 整数,颜色索引号 |
返回:integer
### 示例
```tsl
return getColorByIndex(1);
// 返回:16711680
```
@@ -0,0 +1,8 @@
# 图形
函数数:99
| 叶子 | 文件 | 函数数 |
| --- | --- | ---: |
| 图形 / 颜色 | [图形 / 颜色](color.md) | 47 |
| 图形 / 图形对象 | [图形 / 图形对象](core.md) | 52 |