量化投资_EasyLanguage/PowerLanguage教学课程__【第一篇基础】__【第十一章画趋势线】

第十章 画趋势线

  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~71 — 目前公式所绘制的趋势线
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~71 — 目前公式所绘制的趋势线
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/

原文地址:https://www.cnblogs.com/noah0532/p/13688712.html