zoukankan      html  css  js  c++  java
  • 量化投资_EasyLanguage/PowerLanguage教学课程__【第一篇基础】__【第三章输出及调试】

    第三章:输出

    第一节:作用

      在进行代码编写的时候,发现在公式编辑器的下方有“建立”、“输出”、“帮助”三个标签选项。其中“建立”是在你编写代码后进行编译,关于代码当中的相关编译信息会在上面显示,比如是否成功,错误,错误的话在第几行。“输出”标签就是用于调试代码中某一部分内容,用于输出的内容,来检测程序的准确性和逻辑的完整性。我们可以在整个标签的最左侧隐藏的向左箭头位置通过拖拽的方式,拉出整个窗口,让其显示输出的内容更加清晰。关于调试功能的代码会在下面说明。

    第二节:清空

      清空的命令共有两个,他们的作用是一样的。

    # 语法

    清除目前显示在编辑器输出面板的信息:
    ClearDebug;
    ClearPrintlog;

     # 示例

    ClearPrintlog;
    print(time," ","Thomas");

    第三节:文件输出操作

      文件输出操作命令共有三个

    3.1 File

    # 语法

    File(“PathFilename”)
    PathFilename——指定文件路径及名称

    # 说明

      在指定的文件中输出,必须在所要输出的表达式前面输出, 后面写一个逗号,若指定的文件不存在,会自动新增文件。指定文件路径,最常用的是要求print命令,输出到指定的文件下面。但是在MC12版本中,这个名好像不能用,可能是为了数据保护。

    # 示例:将调试输出的内容保存到桌面文件

    Print(File(“C:	est.txt”),Currentdate,Currenttime);

    3.2 FileAppend

    # 语法

    FileDelete(“PathFilename”,” StringExpression”)
    PathFilename——指定文件路径及名称 StringExpression——要新增在文件末端的字符串

    # 说明

      在文件的末端新增加字符串内容,若指定的文件不存在,会自动新增文件,同File命令一样,在MC12版本中也是不能用。

    # 示例

    会在 C 盘下面的 test.txt 末端增加”Appended Text”字符串:
    FileAppend(“C:	est.txt”, ”Appended Text”);

    3.3 FileDelete

    # 语法

    FileDelete(“PathFilename”)
    PathFilename ——指定文件路径及名称

    # 说明

      删除指定文件。

    # 示例

    删除 C 盘下面的 test.txt 文件:
    FileDelete(“C:	est.txt”);

    第四节:命令台输出命令

      我们最常用的输出命令就是print,其实还有一个功能与之类似的叫做MessageLog。命令的语法和使用几乎一样。

    4.1 MessageLog

    # 语法

    MessageLog(表达式 1,表达式 2,...)
    字符串表达式——字符串前后需要加引号:"String Expression"
    布林表达式——True 或 False
    数值表达式——可以指定输出数值的最小长度及小数位数,
    格式如下:
    数值表达式:C:D,C 是最少输出字符数,D 是小数位数。
    数值输出的预设长度为 7 个字符,含 2 位小数。
    若数值的小数位数比输出的指定位数长,会四舍五入。
    若数值长度比指定长度短,会在前方补上空白字符。
    若有多个表达式需要以逗号隔开。

    # 说明

      输出一个或多个指定的消息到编辑器的输出面版。输出内容可以是字符串,布林值,序列数值或数值表达式。其中数值表达式不太常用,但是要知道它的用法。

    # 示例

    MessageLog(.1); 将会输出 0.10(前方有三个空白字符)
    MessageLog(1.555555:6:3); 将会在编辑器的输出面板输出
    1.556(前方有一个空白字符)
    MessageLog(“Current Time is:”,CurrentTime:5:0); 
    将会显示”Current Time
    is:”后面带上电脑时间,时间前方会有一个空 白字符,如 Current Time is: 1031

    4.2 Print

    # 语法

    Print([输出目标],表达式 1,表达式 2,etc.)
    在方括号内的参数是可选的
    输出目标——可选参数,指定非公式编辑器的输出面板的输
    出目标,参数需要用逗号与表达式分隔。
    有两个可选的输出目标:
     Printer——输出到打印机
     File(“PathFilename”)——输出到文件,PathFilename 文件路
    径及名称,如果文件不存在将会被创建。
    如果输出目标未指定,将会输出到公式编辑器的输出面板中。
    表达式——字符串,布林值,序列数值或数值表达式:
    字符串表达式——字符串前后需要加引号:"String
    Expression"
    布林表达式——True 或 False
    数值表达式——可以指定输出数值的最小长度及小数位
    数,格式如下:
    数值表达式:C:D,其中,C 是最少输出字符
    数,D 是小数位数。
    数值输出的预设长度为 7 个字符,含 2 位小数。
    若数值的小数位数比输出的指定位数长,会四舍五入。
    若数值长度比指定长度短,会在前方补上空白字符。
    若有多个表达式需要以逗号隔开。

    # 说明

      其中File指定路径的方式前面举例了。可能在MC12中不能使用。

    # 示例

    Print(.1);将会输出 0.10(前方有三个空白字符)
    Print(1.555555:6:3);将会在编辑器的输出面板输出 1.556(前
    方有一个空白字符)
    Print(Printer,”Print Test”);将会送出”Print Test”到默认打印机
    Print(File(“C:	est.txt”),Currentdate,Currenttime);将会在 C 盘下
    面的 test.txt 文件输出并保存当前日期和当前时间

    第五节:声音播放

    # 语法

    PlaySound(“PathFilename”)
    PathFilename——指定要播放的 Wav 格式音效文件(包含完整
    的路径)

    # 说明

    播放指定的音效文件(格式 WAV)

    # 示例

    播放在 C 盘下面的 ding.wav 音乐:
    PlaySound(“C:ding.wav”);

    第六节:报警及发送邮件

      在多商品或多策略同时交易时,如果有提示信息,将会更方便我 们对不同策略的跟踪并及时作出反应。MultiCharts 为用户提供了方便 的 Alert 警报提示功能,如下图在设置指标时,可启用警报。在设置指标或者信号位置,我们可以设置报警选项:

       分有音频、弹出框、电子邮件,警报条件根据需要可选每根 bar 收盘时或每笔成交资料(即依 Tick 计算)发出警报。在选择每笔成 交资料到来发出警报时,为保证信号的计算和指标一致,实时资料下 建议信号开启 bar 内交易(在回测状态下,另需使用精细逐笔 tick)。 其中电子邮件警报设置中的SMTP服务器名称或IP为发送者的名 称、SMTP 服务器授权验证为发送者的授权邮箱和密码。

    6.1 AlertEnabled

    # 语法

    AlertEnabled
    *警报只在最后一根 Bar 产生。
    *AlertEnabled 和 CheckAlert 的不同: AlertEnabled 在每一个
    Bar 都会执行,CheckAlert 只会在最后一根 Bar 执行。
    *若启用警报,则 AlertEnabled 返回 True。

    # 说明

    如果启用警报则 AlertEnabled 返回值为 True。此信息可以让程
    式代码运算执行更加高效。
    此功能也可用来在用户忘记开启警报时发出通知。

    # 示例:下例说明了如何在用户忘记开启警报时发出通知

    Variable: ID(-1);
    If AlertEnabled=False And LastBarOnChart_S=True Then
    ID = Text_New_S(Date, Time_S, Low, "Alerts are disabled. See
    Format Study > Properties >Alerts");

    6.1 Alert

    # 语法

    Alert
    *如果 Alert 中不设文本,则弹出包含来源、商品、周期和价
    格的警报窗口。
    *Alerts 只在最后一根 Bar 显示。

    # 说明

    弹出一个包含必要文本的警示窗口。文本可以是动态的、静态的或空文本。

    # 示例

    弹出一个没有文本信息的警报窗口:
    Alert;
    弹出一个包含动态文本的警报窗口并显示星期日期:
    Alert(Text("Day of week is ", DayOfWeek(Date)));
    当收盘价大于前根 K 线的收盘价时,弹出包含静态文本的警
    报窗口:
    If Close > Close[1] Then Alert(Text("Price turning up"));

    6.3 CancelAlert

    # 语法

    Cancel Alert
    Alerts 只在最后一根 Bar 产生

    # 说明

    取消警报。用于脚本中警报过多时在某些条件下关闭一些警
    报。

    # 示例

    下例说明了如何根据时间关闭所有警报。在 10:00pm 之后,
    警报不会显示:
    If Close > Close[1] Then Alert("Price is going up");
    If Volume > Volume[1] Then Alert("Volume is increasing");
    If Volatility(5) > Volatility(5)[1] Then Alert("Volatility is rising");
    If OpenInt > OpenInt[1] Then Alert("Open interest is growing");
    If Time >= 2200 Then Cancel Alert;

    6.4 CheckAlert

    # 语法

    CheckAlert
    *AlertEnabled 和 CheckAlert 的不同:AlertEnabled 在每一个
    Bar 都会执行,CheckAlert 只会在最后一根 Bar 执行。
    *警报只在最后一根 Bar 产生。

    # 说明

    如果在设置指标》警报中设置启用警报,则 CheckAlert 返回
    true。
    True/false 只在最后一根 Bar 返回。

    # 示例

    下例表示当警报未开启时,避免历史数据计算冗余。
    当警报启用时,对警报条件进行计算:
    If CheckAlert Then Begin
    If Volume >= 2 * Average(Volume, 10) Then Alert ("Volume is going up");
    End;

    =================================================

    之前的文章感谢大家的转载,希望转载时请注明出处,本人转自其它网站的图表一并感谢,谢谢~!

    https://www.cnblogs.com/noah0532/

  • 相关阅读:
    web服务器-Apache
    nginx优化
    nginx下载限速
    nginx-URL重写
    HDU 5358 First One 求和(序列求和,优化)
    HDU 5360 Hiking 登山 (优先队列,排序)
    HDU 5353 Average 糖果分配(模拟,图)
    UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
    HDU 5348 MZL's endless loop 给边定向(欧拉回路,最大流)
    HDU 5344 MZL's xor (水题)
  • 原文地址:https://www.cnblogs.com/noah0532/p/13676090.html
Copyright © 2011-2022 走看看