智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)
为论坛做贡献有奖学金,奖学金可直接换真钱 扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得
查看: 2274|回复: 3

请教各位老师:连续函数IF语句怎么编写??对于函数与mql之间转换有很强针对性

[复制链接]
发表于 2011-10-30 11:01:12 | 显示全部楼层 |阅读模式
QJJ:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));
XVL:=(IF(CLOSE>OPEN,QJJ*(HIGH-LOW),IF(CLOSE<OPEN,QJJ*(HIGH-OPEN+CLOSE-LOW),VOL/2))+IF(CLOSE>OPEN,0-QJJ*(HIGH-CLOSE+OPEN-LOW),IF(CLOSE<OPEN,0-QJJ*(HIGH-LOW),0-VOL/2)));

请问各位老师,这个怎么编程,简单的函数运算,个人感觉比较有针对性,如果直接用函数写,没有困难。换成mql语言,就。。。
下面是我刚写的,然后就卡壳了。。。

int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(int i=0;i<limit;i++)
      {
         double QJJ=Volume[i]/((High[i]-Low[i])*2-MathAbs(Close[i]-Open[i]));

接下来试着这样写,但是报错。。。

         double a1
               if(Close[i]<Open[i])
                 {
                    a1=0-QJJ*(High[i]-Low[i])
                 }
               if(Close[i]>Open[i])
                 {
                    a1=0-Volume[i]/2
                 }
      }
   return(0);

请老师给予耐心详细指导,谢谢~
回复

使用道具 举报

 楼主| 发表于 2011-10-30 11:03:35 | 显示全部楼层
感谢,另附说明:
IF条件函数
根据条件取得不同的值。
用法:
IF(X,A,B)若X不为0则返回A,否则返回B
例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-2 10:55:48 | 显示全部楼层
前面函数代码   :=     其实就是  等于=    一样的意思,冒号就当它不存在。
回复 支持 反对

使用道具 举报

发表于 2013-11-12 23:53:12 | 显示全部楼层
把“ double a1”写到for循环上面
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap|智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号,苏州智德金网络科技股份有限公司版权所有 )

GMT+8, 2019-11-18 04:44 , Processed in 0.074520 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表