To get IEOD Data into Amibroker visit the link below:
http://tinyurl.com/ctzqcsy

In this article I will show you how to create a simple AFL(Amibroker Formula Language) without manually coding or knowing any kind of syntax. This helps you to get an overview of building a basic AFL in few simple steps. Here is a video presentation that explains in detail for the starters who want to learn creating a basic AFL using the inbuilt AFL Wizard of Amibroker.
In this manner you can create AFLs to meet different criteria like macd, rsi, stoch, ema, etc with different periods and different values and different indicators. The list is endless!
Regards
Priya.
| You are reading this article on analystcalls.in, Stay tuned for career, Education news, Jobs, Exam Results, Answer keys, Interviews & Job discussions, Stock Market Technical and Trading Analysis and Calls, Latest Trendy News! For regular updates like us on Facebook and Subscribe by Email to get immediate updates. |

thank you mame,
how to get the custom indicators in the AFL code wizard? we only get the defaults one, but i want the custom indicator also in it.
do guide me.
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_color5 Blue
#property indicator_color6 Red
#property indicator_color7 Blue
#property indicator_color8 Red
//—- input parameters
extern int ChannelPeriod=9; //Price Channel Period
extern double Risk=0.30; //channel narrowing factor (0…0,5)
extern int Signal=1; //Display signals mode: 1-Signals & Stops; 0-only Stops; 2-only Signals;
extern int Line=1; //Display line mode: 0-no,1-yes
extern int ColorBar=1; //Display color bars mode: 0-no,1-yes
extern int TimeFrame=0; //TimeFrame in min
extern int Nbars=1000;
//—- indicator buffers
double UpTrendBuffer[];
double DownTrendBuffer[];
double UpTrendSignal[];
double DownTrendSignal[];
double UpTrendLine[];
double DownTrendLine[];
double UpTrendBar[];
double DownTrendBar[];
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int init()
{
string short_name;
//—- indicator line
SetIndexBuffer(0,UpTrendBuffer);
SetIndexBuffer(1,DownTrendBuffer);
SetIndexBuffer(2,UpTrendSignal);
SetIndexBuffer(3,DownTrendSignal);
SetIndexBuffer(4,UpTrendLine);
SetIndexBuffer(5,DownTrendLine);
SetIndexBuffer(6,UpTrendBar);
SetIndexBuffer(7,DownTrendBar);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexStyle(4,DRAW_LINE);
SetIndexStyle(5,DRAW_LINE);
SetIndexStyle(6,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexStyle(7,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexArrow(2,108);
SetIndexArrow(3,108);
//—- name for DataWindow and indicator subwindow label
short_name=”PriceChannel_Stop(“+ChannelPeriod+”)”;
IndicatorShortName(short_name);
SetIndexLabel(0,”UpTrend Stop”);
SetIndexLabel(1,”DownTrend Stop”);
SetIndexLabel(2,”UpTrend Signal”);
SetIndexLabel(3,”DownTrend Signal”);
SetIndexLabel(4,”UpTrend Line”);
SetIndexLabel(5,”DownTrend Line”);
SetIndexLabel(6,”UpTrend Bar”);
SetIndexLabel(7,”DownTrend Bar”);
//—-
SetIndexDrawBegin(0,ChannelPeriod);
SetIndexDrawBegin(1,ChannelPeriod);
SetIndexDrawBegin(2,ChannelPeriod);
SetIndexDrawBegin(3,ChannelPeriod);
SetIndexDrawBegin(4,ChannelPeriod);
SetIndexDrawBegin(5,ChannelPeriod);
SetIndexDrawBegin(6,ChannelPeriod);
SetIndexDrawBegin(7,ChannelPeriod);
//—-
return(0);
}
//+——————————————————————+
//| PriceChannel_Stop_v6 |
//+——————————————————————+
int start()
{
datetime TimeArray[];
int i,shift,trend,y=0;
double high, low, price, sum, VolAverage,UpBar,DnBar;
double smax[25000],smin[25000],bsmax[25000],bsmin[25000],Mid[25000],Vol[25000];
double LowArray[],HighArray[];
for (shift=Nbars-1;shift>=0;shift–)
{
UpTrendBuffer[shift]=0.0;
DownTrendBuffer[shift]=0.0;
UpTrendSignal[shift]=0.0;
DownTrendSignal[shift]=0.0;
UpTrendLine[shift]=EMPTY_VALUE;
DownTrendLine[shift]=EMPTY_VALUE;
UpTrendBar[shift]=0.0;
DownTrendBar[shift]=0.0;
}
// Draw price channel boards + calculation : Channel middle, half channel width,
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
ArrayCopySeries(LowArray,MODE_LOW,Symbol(),TimeFrame);
ArrayCopySeries(HighArray,MODE_HIGH,Symbol(),TimeFrame);
for(i=0,y=0;i<Nbars;i++)
{
if (Time[i]=0;shift–)
{
// Calculation channel stop values
bsmax[shift]=smax[shift]-(smax[shift]-smin[shift])*Risk;
bsmin[shift]=smin[shift]+(smax[shift]-smin[shift])*Risk;
// Signal area : any conditions to trend determination:
// 1. Price Channel breakout
if(Risk>0)
{
if(Close[shift]>bsmax[shift]) trend=1;
if(Close[shift]bsmax[shift+1]) trend=1;
if(Close[shift]0)
{
if(Risk>0 && Close[shift]<bsmin[shift]) bsmin[shift]=bsmin[shift+1];
if(bsmin[shift]<bsmin[shift+1]) bsmin[shift]=bsmin[shift+1];
}
if(trend0 && Close[shift]>bsmax[shift]) bsmax[shift]=bsmax[shift+1];
if(bsmax[shift]>bsmax[shift+1]) bsmax[shift]=bsmax[shift+1];
}
// Drawing area
UpBar=bsmax[shift];
DnBar=bsmin[shift];
if ( Risk == 0 ){UpBar=Mid[shift];DnBar=Mid[shift];}
if (trend>0)
{
if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)
{
//bsmin[shift]=smin[shift];
UpTrendSignal[shift]=bsmin[shift];
if(Line>0) UpTrendLine[shift]=bsmin[shift];
}
else
{
UpTrendBuffer[shift]=bsmin[shift];
if(Line>0) UpTrendLine[shift]=bsmin[shift];
UpTrendSignal[shift]=-1;
}
if(ColorBar>0)
{
if(Close[shift]>UpBar)
{
UpTrendBar[shift]=High[shift];
DownTrendBar[shift]=Low[shift];
}
else
{
UpTrendBar[shift]=EMPTY_VALUE;
DownTrendBar[shift]=EMPTY_VALUE;
}
}
if (Signal==2) UpTrendBuffer[shift]=0;
DownTrendBuffer[shift]=-1.0;
DownTrendLine[shift]=EMPTY_VALUE;
}
if (trend0 && DownTrendBuffer[shift+1]==-1.0)
{
//bsmax[shift]=smax[shift];
DownTrendSignal[shift]=bsmax[shift];
if(Line>0) DownTrendLine[shift]=bsmax[shift];
}
else
{
DownTrendBuffer[shift]=bsmax[shift];
if(Line>0)DownTrendLine[shift]=bsmax[shift];
DownTrendSignal[shift]=-1;
}
if(ColorBar>0)
{
if(Close[shift]<DnBar)
{
UpTrendBar[shift]=Low[shift];
DownTrendBar[shift]=High[shift];
}
else
{
UpTrendBar[shift]=EMPTY_VALUE;
DownTrendBar[shift]=EMPTY_VALUE;
}
}
if (Signal==2) DownTrendBuffer[shift]=0;
UpTrendBuffer[shift]=-1.0;
UpTrendLine[shift]=EMPTY_VALUE;
}
}
return(0);
}
//+—————————————————————
ple convert this mq4 to afl.thanks in advance