第十章 画趋势线
EL语言提供了画趋势的函数,在EL当中,我们可以根据提供的数值进行趋势线的表示,而且还可以通过趋势线进行相关策略的交易。当选择趋势交易时,能在图表上自动绘制趋势线,寻找进出场的时机。在MC的公式编辑器中,有两个示例代码分别是Trendline SE和Trendline LE,代码所示为根据两条趋势线进行开仓买卖的操作。
趋势线展示:
第一节:基础趋势线画图
同画箭头一样,趋势线的画法也分基础、Set设定和Get获取相关数据几个方面。
1.1 TL_New
同Arw_new函数非常类似。这是基础趋势线的画图函数。
# 语法:
语法
TL_New(sDate,sTime,sPricevalue,eDate,eTime,ePircevalue)
参数
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime——数值表达式,代表趋势线起点时间的数值,格式为HHmm
sPricevalue——数值表达式,代表趋势线起点价格的数值
eDate——数值表达式,代表趋势线终点日期的数值,格式为YYYMMdd
eTime——数值表达式,代表趋势线终点日期的数值,格式为HHmm
ePircevalue——数值表达式,代表趋势线终点价格的数值
# 示例:
绘制:20200803,23:00 5085至20200911,10:00 5137的一条趋势线 Value1=TL_New(1200903,2300,5085,1200911,1000,5137); print("Date: ",Date," Time: ",Time," count: ",value1); //返回值: Date: 1200831.00 Time: 1100.00 count: 1.00 Date: 1200831.00 Time: 1130.00 count: 2.00 Date: 1200831.00 Time: 1400.00 count: 3.00 Date: 1200831.00 Time: 1500.00 count: 4.00 Date: 1200831.00 Time: 2200.00 count: 5.00 Date: 1200831.00 Time: 2300.00 count: 6.00 Date: 1200901.00 Time: 1000.00 count: 7.00 Date: 1200901.00 Time: 1100.00 count: 8.00 Date: 1200901.00 Time: 1130.00 count: 9.00 ....略
# 说明:
画线是没什么问题,我们观察返回值value1发现是所有bar的编号等同于currentbar?是这样嘛?我们在最后做一个实验。
1.2 TL_New_s
# 语法:
语法
TL_New_s(sDate,sTime_s,sPricevalue,eDate,eTime_s,ePircevalue)
参数
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime_s——数值表达式,代表趋势线起点时间的数值,格式为 HHmmss
sPricevalue——数值表达式,代表趋势线起点价格的数值
eDate——数值表达式,代表趋势线终点日期的数值,格式为YYYMMdd
eTime_s——数值表达式,代表趋势线终点日期的数值,格式为 HHmmss
ePircevalue——数值表达式,代表趋势线终点价格的数值
# 示例:
在 公 式 所 在 的 图 表 上 显 示 趋 势 线 , 起 始 日 期 时 间 为2008/01/17,9:00:15,起始价格为 1381,终止日期时间为2008/01/17,15:00:15,终止价格为 1381。 返回趋势线编号,赋值给变量 Value1: Value1=TL_New_s(1080117,90015,1381,1080117,150015,1337)
# 说明:
同画箭头一样,这是带分钟更精确的画趋势线的方式,其实在后面我们看到画趋势线的函数与画箭头的函数大同小异
1.3 TL_New_self
# 语法:
语法
TL_New_self(sDate,sTime,sPricevalue,eDate,eTime,ePircevalue)
参数
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime——数值表达式,代表趋势线起点时间的数值,格式为HHmm
sPricevalue——数值表达式,代表趋势线起点价格的数值
eDate——数值表达式,代表趋势线终点日期的数值,格式为YYYMMdd
eTime——数值表达式,代表趋势线终点日期的数值,格式为HHmm
ePircevalue——数值表达式,代表趋势线终点价格的数值
# 示例:
在指标所在的子图上显示趋势线,起始日期时间为2008/01/17,9:00,起始价格为 1381,终止时间日期为2008/01/17,15:00,终止价格为 1381. 返回趋势线编号,赋值给变量 Value1: Value1=TL_New_self(1080117,900,1381,1080117,1500,1337);
# 说明:
在指标所在的子图上绘制一条指定起点和终点的趋势线。测试写在信号中,趋势线会画在主图上。写在指标中,需要设定子图数据计算,才可以画在子图上。
1.4 TL_New_self
# 语法:
语法
TL_New_self_s(sDate,sTime_s,sPricevalue,eDate,eTime_s,ePircevalue)
参数
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime_s——数值表达式,代表趋势线起点时间的数值,格式为HHmmss
sPricevalue——数值表达式,代表趋势线起点价格的数值
eDate——数值表达式,代表趋势线终点日期的数值,格式为YYYMMdd
eTime_s——数值表达式,代表趋势线终点日期的数值,格式为HHmmss
ePircevalue——数值表达式,代表趋势线终点价格的数值
# 示例:
在指标所在的子图上显示趋势线,起始日期时间为2008/01/17,9:00:15,起始价格为 1381,终止时间日期为2008/01/17,15:00:15,终止价格为 1381. 返回趋势线编号,赋值给变量 Value1: Value1=TL_New_self_s(1080117,90015,1381,1080117,150015,1337);
# 说明:
在指标所在的子图上绘制一条指定起点和终点的趋势线,并返回 代表趋势线编号的数值。测试写在信号中,趋势线会画在主图上。写在指标中,需要设定 以子图数据计算,才可以画在子图上
第二节:趋势线设定函数
2.1 TL_SetAlert
# 语法:
语法 TL_SetAlert(TL_ID,AlertStatus) 参数 TL_ID——数值表达式,表示指定的趋势线 ID。 AlertStatus——数值表达式,表示警示状态,有三种: 0——停用警示 1—— Bar 内突破:当最高价向上突破趋势线或最低价向 下跌破趋势线,触发警示。Bar 被突破即触发警示 2——Bar 结束突破:当前一根收盘价小于趋势线,而当根收盘价大于趋势线时,出发警示;或是当前一根收盘价大于趋势线,而当根收盘价小于趋势线时,触发警示。警示仅会在 Bar 结束后计算触发。
# 示例:
将编号为 3 的趋势线的警示状态的值赋值给变量 Value1: Value1= TL_ GetAlert(3);
# 说明:
设定指定编号的趋势线的警示状态;返回 0 代表设定成功, 返回-2 表示无效的趋势线编号。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.2 TL_SetBegin
# 语法:
语法
TL_SetBegin(TL_ID, sDate, sTime, sPriceValue)
参数
TL_ID——数值表达式,表示指定的趋势线 ID。
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime——数值表达式,代表趋势线起点时间的数值,格式为HHmm
sPricevalue——数值表达式,代表趋势线起点价格的数值
# 示例:
将编号为 3 的趋势线起点日期时间设为 2009/01/17,10:00,起点价格设为 1365: Value1=TL_SetBegin(3, 1080117,1000,1365);
# 说明:
设定指定编号的趋势线的起点;返回 0 代表设定成功,返回 -2 代表无效的趋势线编号。 若趋势线的两个端点,较早日期和时间的点是起点,如果趋 势线是垂直的,那么较低价格的点是起点。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.3 TL_SetBegin_s
# 语法:
语法
TL_SetBegin_s(TL_ID, sDate, sTime_s, sPriceValue)
参数
TL_ID——数值表达式,表示指定的趋势线 ID
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime_s——数值表达式,代表趋势线起点时间的数值,格式为 HHmmss
sPricevalue——数值表达式,代表趋势线起点价格的数值
# 示例:
将编号为3的趋势线起点日期时间设为2009/01/17,10:00:00,点价格设为 1365: Value1=TL_SetBegin_s(3,1090117,100000,1365);
# 说明:
设定指定编号的趋势线的起点,起点时间包含秒;返回 0 代 表设定成功,返回-2 代表无效的趋势线编号。 若趋势线的两个端点,较早日期和时间的点是起点,如果趋 势线是垂直的,那么较低价格的点是起点。 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.4 TL_SetColor
# 语法:
语法
TL_SetColor(TL_ID,TL_Color)
参数
TL_ID——数值表达式,表示指定的趋势线 ID。
TL_Color——表达式,用来指定趋势线的颜色。
# 示例:
将编号为 3 的趋势线设置为蓝色: Value1=TL_SetColor(3,Blue); 将编号为 3 的趋势线设置为绿色(RGB 色码为 2138336): Value1=TL_SetColor(3,2138336); 将编号为 3 的趋势线设置为绿色(传统色码为 4): [LegacyColorValue=True]; Value1=TL_SetColor(3,4);
# 说明:
实验过程,这个函数并不会覆盖该原先的颜色,如果将趋势线延伸,会看到趋势线的改变。将特定编号的趋势线设为指定的颜色。如果设定成功,则返 回 0,如果指定的趋势线编号无效,则返回值为-2。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.5 TL_SetEnd
# 语法:
语法
TL_SetEnd(TL_ID, sDate, sTime, sPriceValue)
参数
TL_ID——数值表达式,表示指定的趋势线 ID
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime——数值表达式,代表趋势线起点时间的数值,格式为HHmm
sPricevalue——数值表达式,代表趋势线起点价格的数值
# 示例:
将编号为 3 的趋势线终点日期时间设为 2009/01/17,14:15,终点价格设为 1350: Value1=TL_SetEnd(3, 1090117,1415,1350);
# 说明:
设定指定编号的趋势线的终点;返回 0 代表设定成功,返回 -2 代表无效的趋势线编号。 若趋势线的两个端点,较晚日期和时间的点是终点,如果趋 势线是垂直的,那么较高价格的点是终点。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.6 TL_SetEnd_s
# 语法:
语法
TL_SetEnd_s(TL_ID, sDate, sTime_s, sPriceValue)
参数
TL_ID——数值表达式,表示指定的趋势线 ID
sDate——数值表达式,代表趋势线起点日期的数值,格式为YYYMMdd
sTime_s——数值表达式,代表趋势线起点时间的数值,格式为 HHmmss
sPricevalue——数值表达式,代表趋势线起点价格的数值
# 示例:
将编号为3的趋势线终点日期时间设为2009/01/17,14:15:00,终点价格设为 1350: Value1=TL_ SetEnd_s(3, 1090117,141500,1350);
# 说明:
设定指定编号的趋势线的终点,终点时间包含秒;返回 0 代表设定成功,返回-2 代表无效的趋势线编号。若趋势线的两个端点,较晚日期和时间的点是终点,如果趋势线是垂直的,那么较高价格的点是终点。sPricevalue——数值表达式,代表趋势线起点价格的数值。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.7 TL_SetExtLeft
# 语法:
语法
TL_SetExtLeft(TL_ID,LogicalExpression)
参数
TL_ID——数值表达式,表示指定的趋势线 IDLogicalExpression——布尔型,True 表示添加向左延伸,False表示删除向左延伸
# 示例:
将编号为 3 的趋势线添加向左延伸: Value1= TL_SetExtLeft(3,True); 将编号为 3 的趋势线删除向左延伸: Value1= TL_SetExtLeft(3,False);
# 说明:
为指定编号的趋势线添加或删除向左延伸。返回 0 代表设定 成功,返回-2 代表无效的趋势线编号。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.8 TL_SetExtRight
# 语法:
语法
TL_SetExtRight(TL_ID,LogicalExpression)
参数
TL_ID——数值表达式,表示指定的趋势线 ID
LogicalExpression——布尔型,True 表示添加向右延伸,False
表示删除向右延伸
# 示例:
将编号为3的趋势线添加向右延伸: Value1= TL_SetExtRight (3,True); 将编号为 3 的趋势线删除向右延伸: Value1= TL_SetExtRight (3,False);
# 说明:
为指定编号的趋势线添加或删除向右延伸。返回 0 代表设定 成功,返回-2 代表无效的趋势线编号。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.9 TL_SetSize
# 语法:
语法 TL_SetSize(TL_ID,LineWidth) 参数 TL_ID——数值表达式,表示指定的趋势线 ID LineWidth——数值表达式,用来指定趋势线的宽度,趋势线宽度范围为 0~6。
# 示例:
将指定编号为 3 的趋势线的宽度设为 5: Value1= TL_SetSize (3,5);
# 说明:
将指定编号趋势线宽度设为特定的宽度; 返回 0 代表设定成功,返回-2 代表无效的趋势线编号。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
2.10 TL_SetStyle
# 语法:
语法
TL_SetStyle(TL_ID,TL_Style)
参数
TL_ID——数值表达式,表示指定的趋势线 ID
TL_Style——表示趋势线样式的关键字,或表示趋势线样式的
数值表达式。如下:
# 示例:
将编号为 3 的趋势线样式设置为 2: Value1=TL_SetStyle(3, 2); 将编号为 3 的趋势线样式设置为 Tool_Dashed: Value1=TL_SetStyle(3, Tool_Dashed);
# 说明:
将指定编号的趋势线设置为特定的样式。 返回 0 代表设定成功,返回-2 代表无效的趋势线编号。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
第三节:获取趋势线相关数值的函数
3.1 MC_TL_GetActive
# 语法:
语法 MC_TL_GetActive
注意 当使用 MC_TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
把当前被选中的趋势线的 ID 号赋给变量 Value1:
Value1 = MC_TL_GetActive;
# 说明:
返回一个数值,表示当前选定趋势线的 ID 号,如果没有趋势 线被选中,则返回-1
3.2 TL_GetActive
# 语法:
语法 TL_GetActive
注意 当关键字成功执行操作,会返回趋势线 ID。若关键字无法执行,会返回错误代码。
# 示例:
Value1= TL_GetActive;
将当前选择的趋势线 ID 赋值给变量 Value1
Value1 可以是任意的数值或数组。
为了确保判断趋势线关键字是否成功执行,需要将关键字赋值给一个数值变量或数组。
# 说明:
此关键字会返回目前已选择的趋势线的编号。
3.3 TL_GetAlert
# 语法:
语法 TL_GetAlert(TL_ID) 参数 TL_ID——数值表达式,表示指定的趋势线 ID。 返回 -2——代表趋势线 ID 无效 0——停用警示 1—— Bar 内突破:当最高价向上突破趋势线或最低价向下跌破趋势线,触发警示。Bar 内被突破即触发警示。 2—— Bar 结束突破:当前一根 Bar 收盘价小于趋势线,而当根 Bar 收盘价大于趋势线时,出发警示;或是当前一根收盘价大于趋势线,而当根收盘价小于趋势线时,触发警示。警示仅会在 Bar 结束后计算触发。 注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线的警示状态的值赋值给变量 Value1: Value1=TL_GetAlert(3);
# 说明:
返回指定编号的趋势线的警示状态
3.4 TL_GetBeginDate
# 语法:
语法 TL_GetBeginDate(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线起点日期赋值给变量 Value1: Value1=TL_GetBeginDate (3);
# 说明:
返回一个数值,表示指定编号的趋势线起始点的日期。如果指 定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较早日期和时间的点是起点,如果趋势 线是垂直的,那么较低价格的点是起点。 日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份,MM表示月,dd 表示日。
3.5 TL_GetBeginTime
# 语法:
语法 TL_GetBeginTime(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线起始时间赋值给变量 Value1: Value1=TL_GetBeginTime(3);
# 说明:
返回一个数值,表示指定编号的趋势线起始点的时间。如果指 定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较早日期和时间的点是起点,如果趋势 线是垂直的,那么较低价格的点是起点。 时间格式为 HHmm,24 小时制,1300=1:00PM。
3.6 TL_GetBeginTime_s
# 语法:
语法 TL_GetBeginTime_s(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New_s 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线起始时间赋值给变量 Value1,时间包含秒:Value1=TL_GetBeginTime_s(3);
# 说明:
返回一个数值,表示指定编号的趋势线起始点的时间,包含 秒。如果指定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较早日期和时间的点是起点,如果趋势 线是垂直的,那么较低价格的点是起点。 时间格式为 HHmmss,24 小时制,130000=1:00:00PM。
3.7 TL_GetBeginVal
# 语法:
语法 TL_GetBeginVal(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线起始位置的价格赋值给变量 Value1: Value1=TL_GetBeginVal(3);
# 说明:
返回一个数值,表示指定编号的趋势线起始点的价格(垂直位 置,等于图表上的价格坐标值)。如果指定的趋势线编号无效, 则返回值为-2。 趋势线的两个端点,较早日期和时间的点是起点,如果趋势 线是垂直的,那么较低价格的点是起点。通过测试,不管选择由TL_New创建的那一个趋势线变化,都会返回设定起始点的价格。
3.8 TL_GetColor
# 语法:
语法 TL_GetColor(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线颜色(用传统色码表示)赋值给变量Value1: [LegacyColorValue=True]; Value1=TL_GetColor(3); 将编号为 3 的趋势线颜色(用 RGB 色码表示)赋值给变量Value1: Value1=TL_GetColor(3);
# 说明:
返回一个数值,表示指定编号的趋势线的颜色(RGB 色码或传 统色码)。如果指定的趋势线编号无效,则返回值为-2。
3.9 TL_GetEndDate
# 语法:
语法 TL_GetEndDate(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线终点日期赋值给变量 Value1: Value1=TL_ GetEndDate(3);
# 说明:
返回一个数值,表示指定编号的趋势线结束点的日期。如果指定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较晚的日期和时间的点是终点,如果趋 势线是垂直的,那么较高价格的点是终点。 日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份,MM 表示月,dd 表示日。
3.10 TL_GetEndTime
# 语法:
语法 TL_GetEndTime(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线终点时间赋值给变量 Value1: Value1=TL_GetEndTime(3);
# 说明:
返回一个数值,表示指定编号的趋势线结束点的时间。如果指 定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较晚的日期和时间的点是终点,如果趋 势线是垂直的,那么较高价格的点是终点。 时间格式为 HHmm,24 小时制,1300=1:00PM。
3.11 TL_GetEndTime_s
# 语法:
语法 TL_GetEndTime_s(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New_s 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线终点时间赋值给变量 Value1,时间包含秒: Value1=TL_GetEndTime_s(3);
# 说明:
返回一个数值,表示指定编号的趋势线结束点的时间,包含 秒。如果指定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较晚的日期和时间的点是终点,如果趋 势线是垂直的,那么较高价格的点是终点。 时间格式为 HHmmss,24 小时制,130000=1:00:00PM。
3.12 TL_GetEndVal
# 语法:
语法 TL_GetEndVal(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将编号为 3 的趋势线终点的价格赋值给变量 Value1: Value1=TL_GetEndTime(3);
# 说明:
返回一个数值,表示指定编号的趋势线终点的价格(垂直位置,等于图表上的价格坐标值)。如果指定的趋势线编号无效,则返回值为-2。 趋势线的两个端点,较晚的日期和时间的点是终点,如果趋势线是垂直的,那么较高价格的点是终点。
3.13 TL_GetExtLeft
# 语法:
语法 TL_GetExtLeft(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将代表编号为 3 的趋势线是否向左延伸的状态存入变量ExtR: Variable:ExtR(False); ExtR=TL_GetExtLeft(3);
# 说明:
返回一个逻辑值,表示指定编号的趋势线是否向左延伸。 如果指定编号的趋势线有向左延伸,则返回 True。 若指定编号的趋势线没有向左延伸,或者指定编号无效,则 返回 False。
3.14 TL_GetExtRight
# 语法:
语法 TL_GetExtRight(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将代表编号为 3 的趋势线是否向右延伸的状态存入变量ExtR: Variable:ExtR(False); ExtR=TL_ GetExtRight(3);
# 说明:
返回一个逻辑值,表示指定编号的趋势线是否有向右延伸。 如果指定编号的趋势线有向右延伸 ,则返回 True。 若指定编号的趋势线没有向右延伸,或指定编号无效,则返 回 False。
3.15 TL_GetFirst
# 语法:
语法 TL_GetFirst(Origin) 参数 Origin——数值表达式,指定趋势线条件,范围 1~7: 1 — 目前公式所绘制的趋势线 2 — 非目前公式或使用者手动绘制的趋势线 3 — 任何公式或使用者手动绘制的趋势线 4 — 目前公式或使用者手动绘制的趋势线 5 — 非目前公式绘制的趋势线 6 — 任何公式绘制的趋势线 7 — 使用者手动绘制的趋势线 注意 如果最先绘制(第一个绘制)的趋势线被删除,下一个绘制(第二个绘制)的趋势线会成为最先绘制(第一个绘制)的趋势线。
# 示例:
将由当前公式所绘制的趋势线中最先绘制的趋势线编号赋值给 Value1: Value1=TL_GetFirst(3);
# 说明:
返回目前图表上特定条件下最先绘制的趋势线编号; 返回-2 表示无效的趋势线编号。
3.16 TL_GetNext
# 语法:
语法 TL_GetFirst(TL_ID, Origin) 参数 TL_ID——数值表达式,表示指定的趋势线 ID。 Origin——数值表达式,指定趋势线条件,范围 1~7: 1 — 目前公式所绘制的趋势线 2 — 非目前公式或使用者手动绘制的趋势线 3 — 任何公式或使用者手动绘制的趋势线 4 — 目前公式或使用者手动绘制的趋势线 5 — 非目前公式绘制的趋势线 6 — 任何公式绘制的趋势线 7 — 使用者手动绘制的趋势线
# 示例:
取到由当前公式所绘制的趋势线中编号为 3 的趋势线之后绘制的趋势线编号,将结果赋值给变量 Value1: Value1=TL_GetFirst (3,1);
# 说明:
返回目前图表上特定条件下在指定编号趋势线之后绘制的趋 势线编号; 返回-2 表示无效的趋势线编号。
3.17 TL_GetSize
# 语法:
语法 TL_GetSize(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
将指定编号为 3 的趋势线的宽度赋值给变量 Value1: Value1=TL_GetSize(3);
# 说明:
返回代表指定编号趋势线宽度的数值; -2 表示无效的趋势线编号。
3.18 TL_GetStyle
# 语法:
语法 TL_GetStyle(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
# 示例:
将指定编号为 3 的趋势线的样式数值赋值给变量 Value1: Value1=TL_GetStyle(3);
# 说明:
返回代表特定划线编号趋势线样式的数值; -2 表示无效的趋势线编号。具体编号参照TL_SetStyle
3.19 TL_GetValue
# 语法:
语法 TL_GetValue(TL_ID,Date,Time) 参数 TL_ID——数值表达式,表示指定的趋势线 ID。 Date——数值表达式,表示指定的日期,格式为 YYYMMdd, YYY 表示自 1900 至今的年份,MM 表示月,dd 表示日。 Time——数值表达式,表示指定的时间,时间格式为 HHmm。 注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
取到编号为 3 的趋势线在 2009/09/22,13:00 这个时间的价格值,并赋值给变量 Value1: Value1= TL_GetValue(3,10990922,1300);
# 说明:
返回代表指定编号的趋势线在特定日期时间的价格数值;返 回-2 表示无效的趋势线编号。若趋势线未延伸至该特定日期 时间,则返回值沿着相同斜率趋势线上对应的价格数值。
3.20 TL_GetValue_s
# 语法:
语法 TL_GetValue_s(TL_ID,Date,Time_s) 参数 TL_ID——数值表达式,表示指定的趋势线 ID。 Date——数值表达式,表示指定的日期,格式为 YYYMMdd, YYY 表示自 1900 至今的年份,MM 表示月,dd 表示日。 Time——数值表达式,表示指定的时间,时间格式为HHmmss。 注意 当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
# 示例:
取到编号为 3 的趋势线在 2009/09/22,13:00:25 这个时间的价格值,并赋值给变量 Value1: Value1= TL_GetValue_s(3,10990922,130025);
# 说明:
返回代表指定编号的趋势线在特定日期时间的价格数值;返 回-2 表示无效的趋势线编号。若趋势线未延伸至该特定日期 时间,则返回值沿着相同斜率趋势线上对应的价格数值。
第四节:删除趋势线
4.1 TL_Delete
# 语法:
语法 TL_Delete(TL_ID)
参数 TL_ID——数值表达式,表示指定的趋势线 ID。
# 示例:
删除 ID 号为 3 的趋势线: Value1=TL_Delete(3);
# 说明:
从图表中删除指定 ID 号的趋势线,若趋势线删除成功,返回 0,若指定指定趋势线 ID 无效,则返回-2。当使用 TL_New 创建趋势线的时候,会产生一组 ID 号。
第五节:关于趋势线交易的解读
复制一份MC给出的趋势线交易代码示例
[IntrabarOrderGeneration = false] inputs: TLRef( 1 ) ; variables: var0( TL_GetBeginDate( TLRef ) ), var1( TL_GetBeginTime( TLRef ) ), var2( false ) ; var2 = ( Date = var0 and ( BarType = 2 or ( BarType = 1 and Time >= var1 ) ) ) or Date > var0 ; condition1 = var2 and High < TL_GetValue( TLRef, Date, Time ) ; if condition1 then Buy next bar at TL_GetValue( TLRef, Date next bar, Time next bar ) stop ;
之前,我们有一个疑问,就是用TL_New创建一个条趋势线,通过value1返回的数值是一个序列数值。问题是如果我们我们创建一条趋势线,那么根据语法定义value1返回的是一个唯一识别这条趋势线的ID编号。
# 实验1:我们设置两条趋势线,分别打印他们的value的输出结果
Value1=TL_New(1200903,2300,5085,1200911,1000,5137); Value4=TL_New(1200904,2300,5085,1200911,1000,5137); print(value1," ",value4); //返回值: 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 ....略
# 说明:
这个实验我们看出,value1和value2打印时,起始时的值是按照序号ID进行排列的,但是后面的值并不是这样,而且这个编号非常的有意思,从左向右,然后再起一行进行计数。这就理解了。语法定义中关于TL_New返回值确实是唯一的趋势线的ID编号。这是因为趋势线是一个计数的方式,打一个比方。画二维图时,需要有X轴和Y轴两个数值才能画图。因此value值这个ID编号是按照X轴的顺序进行计数,这是没有问题的。因为X、Y是唯一对应的两个值才会有一个点,点的连线才是线。因此他们的趋势线的ID编号是唯一的,并且按照唯一的方式进行计数。
因此解释上面的代码最重要的就是TL_GetValue这个函数的使用,其中TLRef,开始默认为1,表示就一条趋势线,且起点为1的那条趋势线,起在内部进行计数操作。
所以value的返回值,表示ID编号。我们只需关心他们起点是那一条趋势线即可,无须关心他们是按照什么方式进行计数的。EL语言内部会帮我们处理。
=================================================
之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!
https://www.cnblogs.com/noah0532/