Skip to main content

Wavetrend Scanner With BUY/SELL for Amibroker (AFL)

Mechwarrior about 6 years ago Amibroker (AFL)

  • Rating:
    4 / 5 (Votes 3)
  • Tags:
    amibroker, oscillator, wavetrend

This scanner was initially posted by Krishna9260 and the credits are due to him.
I have just modified the scanner to make it more presentable and to provide signals after the close of the current candle in order to avoid changing signals which are formed due to dynamic price movement.

I have found that the 15 minute TF provides the best intraday trading signals.

Screenshots

Indicator / Formula

Copy & Paste Friendly
/*
This scanner was adopted from the posting by Krishna9260 but I have modified the scanner to provide a signal 
after the close of the current candle for a definite direction. 

Realtime Wavetrend Scanner which provides BUY/SELL Signals whenever there is a crossover happening. 
between the Oversold and Overbought limit lines 
Ideally the lines are maintained at -60 & -53 for Oversold levels and 53 & 60 for Overbought levels.


*/



TimeframeSet(in15Minute); //Please change this to modify the scanner to suit your favourable timeframe//
ChannelPeriod = Param("Channel Period",10,1,50,1);
AvgPeriod = Param("Average Period",21,1,50,1);
OBL1 = Param("Over Bought Level 1",60,0,100,1);
OBL2 = Param ("Over Bought Level 2",53,0,100,1);
OSL1 = Param("Over Sold Level 1",-60,0,-100,1);
OSL2 = Param("Over Sold Level 2",-53,0,-100,1);
ColTCI=ParamColor("TCI Line Color",colorBrown);
ColOBL1 = ParamColor("Over Bought Level 1 Color",colorRed);
ColOBL2 = ParamColor("Over Bought Level 2 Color",colorRed);
ColOSL1 = ParamColor("Over Sold Level 1 Color",colorGreen);
ColOSL2 = ParamColor("Over Sold Level 2 Color",colorGreen);
XSpace = Param("GraphXSpace",7,0,20,0.5);

N1=ChannelPeriod;
N2=AvgPeriod;

AvgPrice=Ref(Avg,-1); // Typical Price = (H + L + C)/3
//AvgPrice=Avg; // Typical Price = (H + L + C)/3
ESA = Wilders(AvgPrice,N1);
D = Wilders(abs(AvgPrice-ESA),N1);
CI = (AvgPrice-ESA)/(0.015*D);

WT1 = EMA(CI,N2);
WT2 = MA(WT1,4);

Buy= Cross(WT1,WT2);
Sell= Cross(WT2,WT1);
CR1 = ValueWhen(Buy,WT1);
CR2 = ValueWhen(Sell,WT1);

Filter=Buy OR Sell;
//Filter=(Buy AND CR1>=-60 AND CR1<=-50) OR (Sell AND CR2>=50 AND CR2<=60);

//AddColumn(O,"Open",1.2,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));
AddColumn(C,"Close",1.2,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));
//AddColumn(V,"Volume",1,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));
AddColumn(WT1,"WaveTrend 1",1.4);
AddColumn(WT2,"WaveTrend 2",1.4);
AddColumn(IIf(Buy,CR1,CR2),"Crossover",1.4,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));
AddColumn(IIf(Buy,'B','S'),"Signal",formatChar,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));

AlertIf(Buy,"SOUND c:\\Windows\\Media\\tada.wav","Audio Alert",1);
AlertIf(Sell,"SOUND c:\\Windows\\Media\\tada.wav","Afgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed)udio Alert",2);

4 comments

1. SIRISHA
almost 6 years ago

Hi,

There is an error in line No.63..

" AddColumn(IIf(Buy,‘B’,‘S’),“Signal”,formatChar,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));

"

over 5 years ago

Hi,

I do not see an error in this code. Can you please recheck? Also, the entire code ends at line 58.

Thanks

3. tchiran
over 5 years ago

@Shirisha
The line number you mentioned is 54,
You can use this, it works I have checked:

AddColumn(IIf(Buy, 66, 83 ),“Signal”,formatChar,fgcolor=IIf(Buy,colorWhite,colorWhite),bkcolor=IIf(Buy,colorGreen,colorRed));

Just replace ‘B’ with number 66 and ‘S’ with 83

Leave Comment

Please login here to leave a comment.