1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Ultimarkets.com your review please

Discussion in 'Has anyone heard of?' started by musicallypso_21, Nov 20, 2010.

  1. musicallypso_21

    musicallypso_21 Recruit

    Joined:
    Nov 20, 2010
    Messages:
    1
    Likes Received:
    0
  2. subhankar

    subhankar Recruit

    Joined:
    Jan 16, 2011
    Messages:
    1
    Likes Received:
    0
    It Like Same With This Indicator Happy Trading

    HI FRIEND I THINK IT IS ..NEAR..SAME WITH THIS INDICATOR..

    CODE...

    //+------------------------------------------------------------------+
    //| Divergence.mq4 |
    //| Copyright © 2005, Pavel Kulko |
    //| polk@alba.dp.ua |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2005, Pavel Kulko"
    #property link "polk@alba.dp.ua"

    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_minimum -1
    #property indicator_maximum 1
    #property indicator_color1 Aqua
    #property indicator_color2 Red



    extern int ind = 1; //MACD=1, RSI=2, DMI=3, Mom=4
    extern int pds = 10; //indicator periods
    extern int f = 1; //price field: Close=1, High/Low=2
    extern double Ch = 0; //peak/trough depth minimum (0-1)
    extern int shift = 0; //shift signals back to match divergences
    extern int MaxBars=1000;

    double DivUpBuffer[],DivDnBuffer[];
    double R1[],R2[],y[],xd[],xu[];
    double fCh;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init() {
    IndicatorBuffers(7);
    SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
    SetIndexBuffer(0,DivUpBuffer);
    SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
    SetIndexBuffer(1,DivDnBuffer);
    SetIndexBuffer(2,R1);
    SetIndexBuffer(3,R2);
    SetIndexBuffer(4,y);
    SetIndexBuffer(5,xd);
    SetIndexBuffer(6,xu);
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custor indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start() {
    int CNmb1,CNmb2,CNmb3,CNmb4;
    double Pkx1,Pkx2,Trx1,Trx2,Pky1,Pky2,Try1,Try2;
    bool Trx,Pkx,Try,Pky;

    fCh = Ch/100.0;

    int counted_bars=IndicatorCounted();
    int limit = Bars-counted_bars-1;
    if(limit>MaxBars) limit = MaxBars;
    for(int i=limit; i>=0; i--) {
    DivUpBuffer = Low;
    DivDnBuffer = Low;
    switch(ind) {
    case 1: y = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i); break;
    case 2: y = iRSI(NULL,0,pds,PRICE_CLOSE,i); break;
    case 3: y = iADX(NULL,0,pds,PRICE_CLOSE,MODE_MAIN,i); break;
    default : y = iMomentum(NULL,0,pds,PRICE_CLOSE,i); break;
    }
    if(f==1) xu = Close;
    else xu = High;
    if(f==1) xd = Close;
    else xd = Low;
    }
    for(i=limit; i>=0; i--) {
    CNmb1 = 0; CNmb2 = 0; CNmb3 = 0; CNmb4 = 0;
    for(int j=i; j<MaxBars; j++) {
    Pkx = (xu[j] < xu[j-1]) && (xu[j-1] > xu[j-2]) && (xu[j-1] >= (xu[j]+xu[j-2])/2.0*(1.0+fCh));
    if(Pkx) CNmb1++;
    if(Pkx && CNmb1==1) Pkx1 = xu[j-1];
    if(Pkx && CNmb1==2) Pkx2 = xu[j-1];

    Trx = (xd[j] > xd[j-1]) && (xd[j-1] < xd[j-2]) && (xd[j-1] <= (xd[j]+xd[j-2])/2.0*(1.0-fCh));
    if(Trx) CNmb2++;
    if(Trx && CNmb2==1) Trx1 = xd[j-1];
    if(Trx && CNmb2==2) Trx2 = xd[j-1];

    Pky = (y[j] < y[j-1]) && (y[j-1] > y[j-2]) && (y[j-1] >= (y[j]+y[j-2])/2.0*(1.0+fCh));
    if(Pky) CNmb3++;
    if(Pky && CNmb3==1) Pky1 = y[j-1];
    if(Pky && CNmb3==2) Pky2 = y[j-1];

    Try = (y[j] > y[j-1]) && (y[j-1] < y[j-2]) && (y[j-1] <= (y[j]+y[j-2])/2.0*(1.0-fCh));
    if(Try) CNmb4++;
    if(Try && CNmb4==1) Try1 = y[j-1];
    if(Try && CNmb4==2) Try2 = y[j-1];

    if(CNmb1>=2 && CNmb2>=2 && CNmb3>=2 && CNmb4>=2) break;
    }
    Pkx = (xu < xu[i-1]) && (xu[i-1] > xu[i-2]) && (xu[i-1] >= (xu+xu[i-2])/2.0*(1.0+fCh));
    Trx = (xd > xd[i-1]) && (xd[i-1] < xd[i-2]) && (xd[i-1] <= (xd+xd[i-2])/2.0*(1.0-fCh));
    Pky = (y[i] < y[i-1]) && (y[i-1] > y[i-2]) && (y[i-1] >= (y[i]+y[i-2])/2.0*(1.0+fCh));
    Try = (y[i] > y[i-1]) && (y[i-1] < y[i-2]) && (y[i-1] <= (y[i]+y[i-2])/2.0*(1.0-fCh));

    R1[i] = 0;
    if(Trx && Try && Trx1[TR=""]Try2) R1[i] = 1;
    R2[i] = 0;
    if(Pkx && Pky && Pkx1>Pkx2 && Pky1<Pky2) R2[i] = 1;

    if(R1[i+shift] - R2[i+shift] > 0) {
    DivUpBuffer[i+shift] = High[i];
    DivDnBuffer[i+shift] = Low[i];
    }
    if(R1[i+shift] - R2[i+shift] < 0) {
    DivDnBuffer[i] = High[i];
    DivUpBuffer[i] = Low[i];
    }
    }
    return(0);
    }
    //+------------------------------------------------------------------+[/i][/i][/i][/i][/i][/i][/i][/i][/i][/TR][/i][/i][/i][/i][/i]
     

Share This Page