盛满我的思念 发表于 2011-12-18 14:05:00

测试环境中测试后如何显示均线

原创文章:macy01.blogcn.com

开发一个显示7均线的指标,在EA中调用,那么在测试完毕后,即可显示7均线。在Start()函数中调用的代码如下:
//------------------------------------------------------------------------------------------
//以下为spiderMA指标对应的配置参数,用于测试环境中显示均线
extern int _MAShow0=5;
extern int _MAShow1=10;
extern int _MAShow2=20;
extern int _MAShow3=40;
extern int _MAShow4=60;
extern int _MAShow5=120;
extern int _MAShow6=233;
//------------------------------------------------------------------------------------------
int start()
{
    //如果是测试环境,测试结束后显示7条均线
    if(IsTesting())
      iCustom(NULL, _TradePeriod, \"spiderMA\", _MAShow0, _MAShow1, _MAShow2, _MAShow3, _MAShow4, _MAShow5, _MAShow6, 0, 0);
}

测试中发现,只要是EA中调用过的指标,在测试完毕后,在图形上就都会有显示。因此有些时候一个指标如果调用了多次,则会在测试后的图形上显示多次,为了避免这种情况的发生,往往需要使用HideTestIndicators()来取消一些指标的显示,具体方式如下:
   HideTestIndicators(true);
   closeBuy= iCustom(......);
   HideTestIndicators(false);

显示7均线的指标代码如下:
//+------------------------------------------------------------------+
//|                                                spiderMA.mq4 |
//|                                                       笨蛋学经济 |
//|                                        http://macy01.blogcn.com/ |
//+------------------------------------------------------------------+
#property copyright \"笨蛋学经济\"
#property link      \"http://macy01.blogcn.com/\"

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 White
#property indicator_color2 Pink
#property indicator_color3 Lime
#property indicator_color4 RoyalBlue
#property indicator_color5 Magenta
#property indicator_color6 PeachPuff
#property indicator_color7 Yellow

double buf0_ma0[];
double buf1_ma1[];
double buf2_ma2[];
double buf3_ma3[];
double buf4_ma4[];
double buf5_ma5[];
double buf6_ma6[];

extern int _MA0=5;
extern int _MA1=10;
extern int _MA2=20;
extern int _MA3=40;
extern int _MA4=60;
extern int _MA5=120;
extern int _MA6=233;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
    {
//---- indicators
   SetIndexStyle(0, DRAW_LINE, EMPTY);
   SetIndexBuffer(0, buf0_ma0);
   
   SetIndexStyle(1, DRAW_LINE, EMPTY);
   SetIndexBuffer(1, buf1_ma1);
   
   SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexBuffer(2, buf2_ma2);
   
   SetIndexStyle(3, DRAW_LINE, EMPTY);
   SetIndexBuffer(3, buf3_ma3);
   
   SetIndexStyle(4, DRAW_LINE, EMPTY);
   SetIndexBuffer(4, buf4_ma4);
   
   SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexBuffer(5, buf5_ma5);
   
   SetIndexStyle(6, DRAW_LINE, STYLE_DOT);
   SetIndexBuffer(6, buf6_ma6);
//----
   return(0);
    }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                     |
//+------------------------------------------------------------------+
int deinit()
    {
//----
   
//----
   return(0);
    }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
    {
//----
   int countedBars=IndicatorCounted();

   if(countedBars < 0)
       return(-1);
   
   int limit=Bars-countedBars;
   if(limit>2000)
       limit=2000;
   
   for(int i=0; i

郁闷小甜甜 发表于 2012-11-21 23:00:23

先看看怎么样!

相亲 发表于 2012-11-21 23:00:23

我来看看!谢谢

慢慢的不着急 发表于 2012-11-22 00:05:51

ding   支持

newer 发表于 2012-11-22 00:05:51

ea编程高手有偿开发MT4指标和ea系统,并有稳定盈利ea出售,非大资金勿扰

dutus1 发表于 2012-11-22 00:05:51

帮你项项吧

慢慢的不着急 发表于 2012-11-22 00:05:51

楼主,支持!

怀秋 发表于 2012-11-22 00:05:51

呵呵,等着就等着....

机器人 发表于 2012-11-22 00:05:51

一个子 没看懂

oxp 发表于 2012-11-22 00:05:51

应该加分
页: [1] 2 3
查看完整版本: 测试环境中测试后如何显示均线