诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

Mql4语言怎么获取止损水平?

止损水平也称作止损位,其本意是指设置订单止损离当前市价的最小距离。在实际交易处理中,只要止损位不为0,那么很多地方都会受其约束的,比如在修改订单止损止盈时,所设置的新止损止盈数值当前市价都不能小于这个距离,又或者在执行挂单时,挂单离当前价格的最小距离也不能小于它。

对于日常手工交易,在电脑版mt4上面,我们在品种的合约细则及订单修改窗口,都可以看到该品种的止损水平。在市场报价窗口对应品种上面鼠标右键并选择“规则”,即可打开该品种的合约细则窗口;在终端窗口的持仓订单上面鼠标右键并选择“修改或删除订单”即可打开订单修改页面。如下图所示:

mt4查看止损水平

对于止损位,不同平台或者不同的品种,可能都会有所不同。手工交易可以按上面的方法查看下,那么在编写自动交易EA时,又如何获取所交易品种的止损位呢?

在Mql4语言中,止损位可以通过相应的市场信息MarketInfo()函数来获取,我们可以先看下MarketInfo()函数的类型和结构:

double  MarketInfo( 
   string           symbol,     // 交易品种
   int              type        // 类别
   );

MarketInfo()函数有两个填充量,一个交易品种,一个是类别。品种很好理解,就是交易品种的名称。通过查看帮助文档,我们可以看到止损水平的类别识别符是”MODE_STOPLEVEL”。两个填充量都清楚了,那么我们就直接填充参数来获取所需品种的止损水平了。比如获取欧元兑美元EURUSD的止损水平位,代码如下:

int Tkstop = (int)MarketInfo("EURUSD",MODE_STOPLEVEL);

如果是直接获取当前图表品种的止损水平位,那品种名称直接用Symbol()就可以。

熟知所交易品种的止损水平的大小对于外汇EA策略的编写是很有必要的,当然,止损水平要求越低,或者直接为0,那是最好不过的了。

版权所有转载请注明标题及链接:峰汇在线 » Mql4语言怎么获取止损水平?