zoukankan      html  css  js  c++  java
  • 量化投资_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/

  • 相关阅读:
    Python subprocess- call、check_call、check_output
    Java Annotation认知(包括框架图、详细介绍、示例说明) (转)
    NVME SSD vs SATA SSD(转)
    scala中“_”的用法
    maven scope 'provided' 和 ‘compile’的区别
    scala tuple中的syntactic sugar
    Scala中的"null" 和“_”来初始化对象
    scala可变长度参数(转)
    Java中的Builder模式
    Scala中“=>”用法及含义
  • 原文地址:https://www.cnblogs.com/noah0532/p/13688712.html
Copyright © 2011-2022 走看看