我要调用这个指标做一个EA,怎么调用啊? 新评论 Gerald Deer 2009.06.29 12:45 #property copyright "Copyright ?2005, Yura Prokofiev" #property link "Yura.prokofiev@gmail.com" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Black #property indicator_color2 Lime #property indicator_color3 Red extern int period=10; double ExtBuffer0[]; double ExtBuffer1[]; double ExtBuffer2[]; int init() { SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexStyle(2,DRAW_HISTOGRAM); IndicatorDigits(Digits+1); SetIndexBuffer(0,ExtBuffer0); SetIndexBuffer(1,ExtBuffer1); SetIndexBuffer(2,ExtBuffer2); IndicatorShortName("SOLAR WIND"); SetIndexLabel(1,NULL); SetIndexLabel(2,NULL); return(0); } int start() { //int period=10; int limit; int counted_bars=IndicatorCounted(); double prev,current,old; double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0; double price; double MinL=0; double MaxH=0; if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)]; MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)]; price = (High[i]+Low[i])/2; Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1; Value=MathMin(MathMax(Value,-0.999),0.999); ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1; Value1=Value; Fish1=ExtBuffer0[i]; } bool up=true; for(i=limit-2; i>=0; i--) { current=ExtBuffer0[i]; prev=ExtBuffer0[i+1]; if (((current<0)&&(prev>0))||(current<0)) up= false; if (((current>0)&&(prev<0))||(current>0)) up= true; if(!up) { ExtBuffer2[i]=current; ExtBuffer1[i]=0.0; } else { ExtBuffer1[i]=current; ExtBuffer2[i]=0.0; } } return(0); } 新学MT4,还很菜,请大家帮忙做个例子,在EA中如何调用这个指标并取值比对? wangguangli 2009.06.29 16:33 #1 goldensun 写道 >> 新学MT4,还很菜,请大家帮忙做个例子,在EA中如何调用这个指标并取值比对? 把你的这个指标加载在交易界面上,用鼠标点击 ,滑动鼠标,看到数据的变化参数的个数,用函数 double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) 就可以实现了,但是你的指标必须在terminal_directory\experts\indicators目录内编写客户指标(*.EX4文件)。 还不明白的话请QQ450459237 wangguangli 2009.06.29 16:33 #2 goldensun 写道 >> 新学MT4,还很菜,请大家帮忙做个例子,在EA中如何调用这个指标并取值比对? 把你的这个指标加载在交易界面上,用鼠标点击 ,滑动鼠标,看到数据的变化参数的个数,用函数 double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) 就可以实现了,但是你的指标必须在terminal_directory\experts\indicators目录内编写客户指标(*.EX4文件)。 还不明白的话请QQ450459237 Gerald Deer 2009.06.29 18:42 #3 非常感谢您的回答! 我用下面这两条语句调不出数据,请费心帮我看看。 double b1=iCustom(NULL, 0, "SolarWind",10,1,0); double b2=iCustom(NULL, 0, "SolarWind ",10,1,1); markblog 2009.07.01 13:08 #4 1、你首先要把指标运行一次 ,这样mq4文件才能编译成ex4文件,icustom调用的是ex文件。 2、你的指标文件名如果是SolarWind ,那为什么第二个要加上空格呢?不明白。 3、测试指标最好办法是用print 看看到底问题处在那个环节,贴问题上来 能把错误提示也贴上来就更快解决。 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录