Board logo

标题: MultiCharts编程-PowerLanguage-Alert警报 [打印本页]

作者: 龙听    时间: 2018-5-8 17:22     标题: MultiCharts编程-PowerLanguage-Alert警报

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


图2.1 Alert警报设定
分有音频、弹出框、电子邮件,警报条件根据需要可选每根bar收盘时或每笔成交资料(即依Tick计算)发出警报。在选择每笔成交资料到来发出警报时,为保证信号的计算和指标一致,实时资料下建议信号开启bar内交易(在回测状态下,另需使用精细逐笔tick)。
MC7版本只针对指标提供警报功能,后续的MC8.5版将会对信号策略也提供相同的Alert功能。


  Alert
  
  

说明

  
  

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

  
  

语法

  
  

Alert

  
  

注意

  
  

*如果Alert中不设文本,则弹出包含来源,商品,周期,价格的警报窗口。

  

*Alerts 只在最后一根Bar显示。

  

*Alerts 设定的详细信息参考设置指标》警报

  
  

范例

  
  

弹出一个没有文本信息的警报窗口:

  

Alert;

  

弹出一个包含动态文本的警报窗口并显示星期日期:

  

Alert(Text("Day of week  is ", DayOfWeek(Date)));

  

当收盘价大于前根K线的收盘价时,弹出包含静态文本的警报窗口:

  

If Close > Close[1] Then  Alert(Text("Price turning up"));

  

  

  AlertEnabled  
  

说明

  
  

如果启用警报则AlertEnabled返回值为True。此信息可以让程式代码运算执行更加高效。

  

此功能也可用来在用户忘记开启警报时发出通知。

  
  

语法

  
  

AlertEnabled

  
  

注意

  
  

*警报只在最后一根Bar产生。

  

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

  

*若启用警报,则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");

  

作者: 龙听    时间: 2018-5-8 17:25

  Cancel Alert  
  

说明

  
  

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

  
  

语法

  
  

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;

  


  CheckAlert  
  

说明

  
  

如果在设置指标》警报中设置启用警报,则CheckAlert返回true

  

True/false 只在最后一根Bar返回。

  
  

语法

  
  

CheckAlert

  
  

注意

  
  

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

  

*警报只在最后一根Bar产生。

  
  

范例

  
  

下例表示当警报未开启时,避免历史数据计算冗余。

  

当警报启用时,对警报条件进行计算:

  

If CheckAlert Then  Begin

  

If Volume >= 2  * Average(Volume, 10) Then Alert  ("Volume is going up");

  

End;

  





欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2