风精灵 发表于 2008-3-4 14:26

求助,请帮忙在这条均线上加上报警

这是一条变色均线,希望各位大哥帮忙加个k现触碰到能报警,并加个标记指示,谢谢!//+------------------------------------------------------------------+
//|MegaTrend   HMA.mq4
//| Copyright ?2006 WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104
//| wizardserg@mail.ru
//| Revised by IgorAD,igorad2003@yahoo.co.uk |   
//|                                       
//| Personalized by iGoR for the Trend Slope Trading method (T_S_T)
//| Link: http://www.strategybuilderfx.com/forums/showthread.php?t=16507
//| contact: igor@igor.cc                                 
//+------------------------------------------------------------------+
#property copyright "MT4 release WizardSerg <wizardserg@mail.ru>, ?? ??????? ForexMagazine #104"
#property link      "wizardserg@mail.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- input parameters
extern int       period=15;
extern int       method=3;                         // MODE_SMA
extern int       price=0;                        // PRICE_CLOSE
//---- buffers
double Uptrend[];
double Dntrend[];
double ExtMapBuffer[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
    IndicatorBuffers(3);
    SetIndexBuffer(0, Uptrend);
    //ArraySetAsSeries(Uptrend, true);
    SetIndexBuffer(1, Dntrend);
    //ArraySetAsSeries(Dntrend, true);
    SetIndexBuffer(2, ExtMapBuffer);
    ArraySetAsSeries(ExtMapBuffer, true);
   
    SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
    SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
   
    IndicatorShortName("MegaTrend("+period+")");
    return(0);
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                     |
//+------------------------------------------------------------------+
int deinit()
{
    // ???? ????? ?????? ??????
    return(0);
}

//+------------------------------------------------------------------+
//| ?????????? ???????                                             |
//+------------------------------------------------------------------+
double WMA(int x, int p)
{
    return(iMA(NULL, 0, p, 0, method, price, x));   
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
    int counted_bars = IndicatorCounted();
   
    if(counted_bars < 0)
      return(-1);
                  
    int x = 0;
    int p = MathSqrt(period);            
    int e = Bars - counted_bars + period + 1;
   
    double vect[], trend[];
   
    if(e > Bars)
      e = Bars;   

    ArrayResize(vect, e);
    ArraySetAsSeries(vect, true);
    ArrayResize(trend, e);
    ArraySetAsSeries(trend, true);
   
    for(x = 0; x < e; x++)
    {
      vect = 2*WMA(x, period/2) - WMA(x, period);      
//       Print("Bar date/time: ", TimeToStr(Time), " close: ", Close, " vect[", x, "] = ", vect, " 2*WMA(p/2) = ", 2*WMA(x, period/2), " WMA(p) = ",WMA(x, period));
    }

    for(x = 0; x < e-period; x++)
   
      ExtMapBuffer = iMAOnArray(vect, 0, p, 0, method, x);      
   
    for(x = e-period; x >= 0; x--)
    {   
      trend = trend;
      if (ExtMapBuffer> ExtMapBuffer) trend =1;
      if (ExtMapBuffer< ExtMapBuffer) trend =-1;
   
    if (trend>0)
    { Uptrend = ExtMapBuffer;
      if (trend<0) Uptrend=ExtMapBuffer;
      Dntrend = EMPTY_VALUE;
    }
    else            
    if (trend<0)
    {
      Dntrend = ExtMapBuffer;
      if (trend>0) Dntrend=ExtMapBuffer;
      Uptrend = EMPTY_VALUE;
    }            
   
    //Print( " trend=",trend);
    }
   
    return(0);
}
//+------------------------------------------------------------------+

墨绿色~忧 发表于 2008-8-22 07:59

页: [1]
查看完整版本: 求助,请帮忙在这条均线上加上报警