BTC USD 84,895.2 Gold USD 4,285.46
Time now: Jun 1, 12:00 AM

Kaufman Band (FAMA)

KepalaLutut

Junior Member
Messages
89
Joined
Oct 16, 2008
Messages
89
Reaction score
17
Points
11
Salam warga CG.

Nak mintak tolong otai-otai CG yang mahir pasal coding, untuk masukkan alert dalam indi ni. Alert ni akan appear bila keluar aja gold dot atau blue dot kat FAMA tadi.

Indi ni direka oleh John Ehlers berdasarkan MA, cuma Ehler's dah reduce 'noise'nya ke keadaan yang sangat-sangat-sangat minimum. Jadi line yang di'plot' lebih tepat berbanding lines biasa untuk SMA, EMA etc etc...

Tu aaa... kot-kot ada otai-otai yang boleh tolong. Terima kasih bebanyak wehhhh....

need alert.jpg
 
Aku tak buleh nak attach indi dalam ni... jadi aku copy & paste coding dia aja lah ekkk? Ke ada sapa2 boleh bagitau cemana nak attach file tu kat sini... heeeee...


----------------------------

//+------------------------------------------------------------------+
//| Kaufman.mq4 |
//| Copyright ゥ -2005, by konKop & wellx |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property copyright "Copyright ゥ 2003-2004, by konKop, for MT GOODMAN,af,Mstera ,wellx "
#property link "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Sienna
#property indicator_color2 DeepSkyBlue
#property indicator_color3 Gold
#property indicator_color4 White
#property indicator_color5 White

//---- input parameters
extern int periodAMA=9;
extern int nfast=2;
extern int nslow=30;
extern double G=2.0;
extern double dK=2.0;
extern int BollingerPeriod=20;
extern double K_Bollinger=2.0;
//---- buffers
double kAMAbuffer[];
double kAMAupsig[];
double kAMAdownsig[];
double UpBand[];
double DownBand[];
//+------------------------------------------------------------------+

int k=0, cbars=0, prevbars=0, prevtime=0;

double slowSC,fastSC;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,159);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,159);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_LINE);
//SetIndexDrawBegin(0,nslow+nfast);
SetIndexBuffer(0,kAMAbuffer);
SetIndexBuffer(1,kAMAupsig);
SetIndexBuffer(2,kAMAdownsig);
SetIndexBuffer(3,UpBand);
SetIndexBuffer(4,DownBand);

IndicatorDigits(4);

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i,pos=0;
double noise=0.000000001,AMA,AMA0,signal,ER;
double dSC,ERSC,SSC,ddK;
int counter_Boll;
double deviation;

if (prevbars==Bars) return(0);

//---- TODO: add your code here
slowSC=(2.0 /(nslow+1));
fastSC=(2.0 /(nfast+1));
cbars=IndicatorCounted();
if (Bars<=(periodAMA+2)) return(0);
//---- check for possible errors
if (cbars<0) return(-1);
//---- last counted bar will be recounted
if (cbars>0) cbars--;
pos=Bars-periodAMA-2;
AMA0=Close[pos+1];
while (pos>=0)
{
kAMAupsig[pos]=NULL;
kAMAdownsig[pos]=NULL;
if(pos==Bars-periodAMA-2) AMA0=Close[pos+1];
signal=MathAbs(Close[pos]-Close[pos+periodAMA]);
noise=0.000000001;
for(i=0;i<periodAMA;i++)
{
noise=noise+MathAbs(Close[pos+i]-Close[pos+i+1]);
}
ER =signal/noise;
dSC=(fastSC-slowSC);
ERSC=ER*dSC;
SSC=ERSC+slowSC;
AMA=AMA0+(MathPow(SSC,G)*(Close[pos]-AMA0));
kAMAbuffer[pos]=AMA;
deviation=0;
for (counter_Boll=0;counter_Boll<BollingerPeriod;counter_Boll++) deviation=deviation+MathPow(Close[pos+counter_Boll]-kAMAbuffer[pos+counter_Boll],2);
deviation=MathSqrt(deviation/BollingerPeriod);
UpBand[pos]=AMA+deviation*K_Bollinger;
DownBand[pos]=AMA-deviation*K_Bollinger;
ddK=(AMA-AMA0);
if ((MathAbs(ddK) > (dK*Point)) && (ddK > 0)) kAMAupsig[pos] =AMA;
if ((MathAbs(ddK)) > (dK*Point) && (ddK < 0)) kAMAdownsig[pos]=AMA;

AMA0=AMA;
pos--;
}
//----
prevbars=Bars;
return(0);
}
 

Latest Posts

Live Forex Chart

Currency
Rates
EUR / USD
1.13910
USD / JPY
157.285
GBP / USD
1.32505
USD / CHF
0.82827
USD / CAD
1.41455
EUR / JPY
179.163
AUD / USD
0.70460
Back
Top
Log in Register