# 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
```

## `gfBias_Eval(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
```
