MultiCharts编程-PowerLanguage-Alert警报
在多商品或多策略同时交易时,如果有提示信息,将会更方便我们对策略的跟踪并及时作出反应。MultiCharts为用户提供了方便的Alert警报提示功能,如下图在设置指标时,可启用警报。[img]http://p.qhlt.cn/filestores/2018/05/08/8e4b6ab400a8244e9bb7529bfa821b39.png[/img]图2.1 Alert警报设定
分有音频、弹出框、电子邮件,警报条件根据需要可选每根bar收盘时或每笔成交资料(即依Tick计算)发出警报。在选择每笔成交资料到来发出警报时,为保证信号的计算和指标一致,实时资料下建议信号开启bar内交易(在回测状态下,另需使用精细逐笔tick)。
MC7版本只针对指标提供警报功能,后续的MC8.5版将会对信号策略也提供相同的Alert功能。
[table=98%]
[tr][td=2,1] Alert
[/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]说明[/font][/p] [/td][td=1,1,89%] [p=30, 2, left][font=宋体]弹出一个包含必要文本的警示窗口。文本可以是动态的,静态的或无文本。[/font][/p] [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]语法[/font][/p] [/td][td=1,1,89%] [p=30, 2, left]Alert[/p] [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]注意[/font][/p] [/td][td=1,1,89%] [p=30, 2, left]*[font=宋体]如果[/font]Alert[font=宋体]中不设文本,则弹出包含来源,商品,周期,价格的警报窗口。[/font][/p] [p=30, 2, left]*Alerts [font=宋体]只在最后一根[/font]Bar[font=宋体]显示。[/font][/p] [p=30, 2, left]*Alerts [font=宋体]设定的详细信息参考[b][color=blue]设置指标[/color][/b][b][color=blue]》警报[/color][/b][/font][/p] [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]范例[/font][/p] [/td][td=1,1,89%] [p=30, 2, left][font=宋体]弹出一个没有文本信息的警报窗口:[/font][/p] [p=30, 2, left]Alert;[/p] [p=30, 2, left][font=宋体]弹出一个包含动态文本的警报窗口并显示星期日期:[/font][/p] [p=30, 2, left]Alert(Text("Day of week is ", DayOfWeek(Date)));[/p] [p=30, 2, left][font=宋体]当收盘价大于前根[/font]K[font=宋体]线的收盘价时,弹出包含静态文本的警报窗口:[/font][/p] [p=30, 2, left]If Close > Close[1] Then Alert(Text("Price turning up"));[/p] [p=30, 2, left][img]http://p.qhlt.cn/filestores/2018/05/08/a96924fb92f779a648565ea1b8d3e054.png[/img][/p] [/td][/tr]
[/table]
[table=98%]
[tr][td=2,1] AlertEnabled [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]说明[/font][/p] [/td][td=1,1,89%] [p=30, 2, left][font=宋体]如果启用警报则[/font]AlertEnabled[font=宋体]返回值为[/font]True[font=宋体]。此信息可以让程式代码运算执行更加高效。[/font][/p] [p=30, 2, left][font=宋体]此功能也可用来在用户忘记开启警报时发出通知。[/font][/p] [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]语法[/font][/p] [/td][td=1,1,89%] [p=30, 2, left]AlertEnabled[/p] [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]注意[/font][/p] [/td][td=1,1,89%] [p=30, 2, left]*[font=宋体]警报只在最后一根[/font]Bar[font=宋体]产生。[/font][/p] [p=30, 2, left]*AlertEnabled [font=宋体]和[/font] CheckAlert[font=宋体]的不同:[/font] AlertEnabled[font=宋体]在每一个[/font]Bar[font=宋体]都会执行,[/font]CheckAlert[font=宋体]只会在最最后一根[/font]Bar[font=宋体]执行。[/font][/p] [p=30, 2, left]*[font=宋体]若启用警报,则[/font]AlertEnabled[font=宋体]返回[/font]True[font=宋体]。[/font][/p] [/td][/tr]
[tr][td=1,1,10%] [p=30, 2, left][font=宋体]范例[/font][/p] [/td][td=1,1,89%] [p=30, 2, left][font=宋体]下例说明了如何在用户忘记开启警报时发出通知:[/font][/p] [p=30, 2, left]Variable: ID(-1);[/p] [p=30, 2, left]If AlertEnabled=False And LastBarOnChart_S=True Then[/p] [p=30, 2, left]ID = Text_New_S(Date, Time_S, Low, "Alerts are disabled. See Format Study > Properties >Alerts");[/p] [/td][/tr]
[/table] [table=98%]
[tr] [td=2,1] Cancel Alert [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]说明[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left][font=宋体]取消警报。用于脚本中警报过多时在某些条件下关闭一些警报。[/font][/p] [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]语法[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left]Cancel Alert[/p] [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]注意[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left]Alerts[font=宋体]只在最后一根[/font]Bar[font=宋体]产生。[/font][/p] [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]范例[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left][font=宋体]下例说明了如何根据时间关闭所有警报。在[/font]10:00pm[font=宋体]之后,警报不会显示:[/font][/p] [p=30, 2, left]If Close > Close[1] Then Alert("Price is going up");[/p] [p=30, 2, left]If Volume > Volume[1] Then Alert("Volume is increasing");[/p] [p=30, 2, left]If Volatility(5) > Volatility(5)[1] Then Alert("Volatility is rising");[/p] [p=30, 2, left]If OpenInt > OpenInt[1] Then Alert("Open interest is growing");[/p] [p=30, 2, left]If Time >= 2200 Then Cancel Alert;[/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] CheckAlert [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]说明[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left][font=宋体]如果在[b][color=blue]设置指标[/color][/b][b][color=blue]》警报[/color][/b]中设置启用警报,则[/font]CheckAlert[font=宋体]返回[/font]true[font=宋体]。[/font][/p] [p=30, 2, left]True/false [font=宋体]只在最后一根[/font]Bar[font=宋体]返回。[/font][/p] [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]语法[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left]CheckAlert[/p] [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]注意[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left]*AlertEnabled [font=宋体]和[/font] CheckAlert[font=宋体]的不同:[/font]AlertEnabled[font=宋体]在每一个[/font]Bar[font=宋体]都会执行,[/font]CheckAlert[font=宋体]只会在最后一根[/font]Bar[font=宋体]执行。[/font][/p] [p=30, 2, left]*[font=宋体]警报只在最后一根[/font]Bar[font=宋体]产生。[/font][/p] [/td] [/tr]
[tr] [td=1,1,10%] [p=30, 2, left][font=宋体]范例[/font][/p] [/td] [td=1,1,89%] [p=30, 2, left][font=宋体]下例表示当警报未开启时,避免历史数据计算冗余。[/font][/p] [p=30, 2, left][font=宋体]当警报启用时,对警报条件进行计算:[/font][/p] [p=30, 2, left]If CheckAlert Then Begin[/p] [p=30, 2, left]If Volume >= 2 * Average(Volume, 10) Then Alert ("Volume is going up");[/p] [p=30, 2, left]End;[/p] [/td] [/tr]
[/table]
页:
[1]