第十章 画趋势线 EL语言提供了画趋势的函数,在EL当中,我们可以根据提供的数值进行趋势线的表示,而且还可以通过趋势线进行相关策略的交易。当选择趋势交易时,能在图表上自动绘制趋势线,寻找进出场的时机。在MC的公式编辑器中,有两个示例代码分别是Trendline SE和Trendline LE,代码所示为根据两条趋势线进行开仓买卖的操作。 趋势线展示: 第一节:基础趋势线画图 同画箭头一样,趋势线的画法也分基础、Set设定和Get获取相关数据几个方面。 1.1 TL_New 同Arw_new函数非常类似。这是基础趋势线的画图函数。 # 语法: 语法
# 示例: 绘制: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/ |
|
来自: taozl > 《eslanguagu》