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