• Please try to select the correct prefix when making a new thread in this folder.

    Discuss is for general discussions of a financial company or issues related to companies.

    Info is for things like "Has anyone heard of Company X?" or "Is Company X legit or not?"

    Compare is for things like "Which of these 2 (or more) companies is best?"

    Searching is for things like "Help me pick a broker" or "What's the best VPS out there for trading?"

    Problem is for reporting an issue with a company. Please don't just scream "CompanyX is a scam!" It is much more useful to say "I can't withdraw my money from Company X" or "Company Y is not honoring their refund guarantee" in the subject line.
    Keep Problem discussions civil and lay out the facts of your case. Your goal should be to get your problem resolved or reported to the regulators, not to see how many insults you can put into the thread.

    More info coming soon.

Ultimarkets.com your review please

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 < y[i-1]) && (y[i-1] > y[i-2]) && (y[i-1] >= (y+y[i-2])/2.0*(1.0+fCh));
Try = (y > y[i-1]) && (y[i-1] < y[i-2]) && (y[i-1] <= (y+y[i-2])/2.0*(1.0-fCh));

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

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