• 注册
  • 靓号站
  • 注册
  • 趋势 趋势 关注:0 内容:2595

    MACD.mq4

  • 查看作者
  • 打赏作者
  • 趋势
  • Lv.9
    神隐会员
    靓号:1322336
    EA+

    MACD.mq4

      /////////////////////////////////////////////////////////////////////////////////////////////
      //| mymacd v2 12/11/05
      /////////////////////////////////////////////////////////////////////////////////////////////
      #property link “jpygbp@yahoo.com”
      #property indicator_buffers 5
      #property indicator_separate_window
      #property indicator_color1 HotPink    //macd
      #property indicator_color2 Lime     //signal
      #property indicator_color3 Gray  //histogram
      #property indicator_color4 Blue  //macd[1]
      #property indicator_color5 Black     //zero line
      //—- buffers
      double Buffer1[]; //macd
      double Buffer2[]; //signal
      double Buffer3[]; //histogram
      double Buffer4[]; //macd[1]
      double Buffer5[]; //zero line
      //
      extern int FastEMA = 9;
      extern int SlowEMA = 64;
      extern int SignalSMA = 112;
      //extern bool plotMACD = true;
      //extern bool plotSignalLine = true;
      //extern bool plotHistogram = true;
      //extern bool plotMACDOneBarAgo = true;
      //extern bool plotZeroLine = true;
      extern bool plotArrows = false;
      extern double HistThreshold = 0;
      //
      //
      int limit = 0;
      int fontsize=10;
      int i = 0;
      bool InLTrade = false;
      bool InSTrade = false;
      /////////////////////////////////////////////////////////////////////////////////////////////
      int init()
      {
         ObjectsDeleteAll();
         //—- indicators
         SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);//macd
         SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);//signal
         SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2);//hist
         SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2);//macd[1]
         SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,1);//zero
         //
         SetIndexBuffer(0,Buffer1);
         SetIndexBuffer(1,Buffer2);
         SetIndexBuffer(2,Buffer3);
         SetIndexBuffer(3,Buffer4);
         SetIndexBuffer(4,Buffer5);
         //
         SetIndexDrawBegin(1,SignalSMA);
         //
         IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
         //
         IndicatorShortName(“MACD(“+FastEMA+”,”+SlowEMA+”,”+SignalSMA+”)”);
         //
         SetIndexLabel(0,”MACD”);
         SetIndexLabel(1,”Signal”);
         SetIndexLabel(2,”Histogram”);
         SetIndexLabel(3,”MACD[1]”);
         SetIndexLabel(4,”Zero”);
         //
         return(0);
      }
      /////////////////////////////////////////////////////////////////////////////////////////////
      string NewArrow(datetime T1, double P1, color collor)
      {
         string N=StringConcatenate(“A”,collor,”-“,TimeToStr(T1));
         int AC=SYMBOL_STOPSIGN;
         if(collor==Blue)
            AC=SYMBOL_ARROWUP;
         if(collor==Red)
            AC=SYMBOL_ARROWDOWN;
         //
         ObjectCreate(N, OBJ_ARROW, 0, T1, P1);
         ObjectSet(N, OBJPROP_ARROWCODE, AC);
         ObjectSet(N, OBJPROP_COLOR, collor);
         ObjectSet(N, OBJPROP_WIDTH, 1);
         ObjectsRedraw();
         return(N);
      }
      /////////////////////////////////////////////////////////////////////////////////////////////
      int deinit()
      {
         ObjectsRedraw();
         return(0);
      }
      /////////////////////////////////////////////////////////////////////////////////////////////
      int start()
      {
         int counted_bars=IndicatorCounted();
         if(counted_bars<0) return(-1);//—- check for possible errors
         if(counted_bars>0) counted_bars–;//—- last counted bar will be recounted
         limit=Bars-counted_bars;
         //
         for(i=0; i<limit; i++)//—- macd counted in the 1-st buffer histogram
            Buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
         //
         for(i=0; i<limit; i++)//—- signal line counted in the 2-nd buffer line
            Buffer2[i]=iMAOnArray(Buffer1,Bars,SignalSMA,0,MODE_SMA,i);
         //
         for(i=0; i<limit; i++)//—- histogram is the difference between macd and signal line
         {
            Buffer3[i]=Buffer1[i]-Buffer2[i];
            Buffer5[i]=0;
         }
         //
         for(i=1; i<limit; i++)//—- macd[1]
            Buffer4[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i-1)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i-1);
         //
         if (plotArrows)
         {
            ObjectsDeleteAll();
            InLTrade = false;
            InSTrade = false;
            for(int i=Bars;i>=0;i–)
            {
               if ((Buffer3[i-1]  > 0) && (Buffer3[i] HistThreshold)//Long Begin
               {
                 string upArrow1=NewArrow(Time[i-1], High[i-1]+0.0005, Blue);
                  InLTrade = true;
               }
               if ((Buffer3[i-1]   0) && Buffer3[i-1] < -HistThreshold)//Short Begin
               {
                  string dnArrow1=NewArrow(Time[i-1], Low[i-1]-0.0003, Red);
                  InSTrade = true;
                  InLTrade = false;  
               }
               if ((InSTrade  == true) && (Buffer3[i-1] > Buffer3[i]))//Short End
               {
                  string upArrow2=NewArrow(Time[i-1], Low[i-1]-0.0003, Aqua);
                  InSTrade = false;
               }
               if ((InLTrade == true) && (Buffer3[i-1] < Buffer3[i]))//Long End
               {
                  string dnArrow2=NewArrow(Time[i-1], High[i-1]+0.0005, Aqua);
                  InLTrade = false;   
               }
            }
         }
         //
         //
         return(0);
      }
      /////////////////////////////////////////////////////////////////////////////////////////////

    复制代码

    Macd.zip
    5.02 KB,下载次数:0,下载积分:活跃 -2,售价:10 金币[记录]
    暂无描述

    请登录之后再进行评论

    登录

    WordPress后台-外观-小工具 进行配置小工具

  • 发布
  • 做任务
  • 实时动态
  • 偏好设置
  • 帖子间隔 侧栏位置: