- double channel_sqh=iCustom(NULL, 0, "TrendChannel.mq4", 3, 0);These are not changing, assign them in start.
double channel_sql=iCustom(NULL, 0, "TrendChannel.mq4", 2, 0); - You should write a self documenting function instead of calling iCustom directly, see Detailed explanation of iCustom - MQL4 forum
Wooo thank you I'm trying as soon as I get at home.
Thanks for the link, I was missing that thread.
I'll keep you updated ;)
You did it!!
iCustom works if positioned into int Start() section and the source indicator has to be without extension...
Thanks fot the help!
iCustom works if positioned into int Start() section and the source indicator has to be without extension...
Thanks fot the help!

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi everyone!
I'm trying to merge some indicators using iCustom.
An indicator which I have problem with is TrendChannel.mq4
Parts of the code are these:
extern double kstd = 2.0;
extern int bars = 48;
extern int shift = 0;
extern int AlertPipRange = 5;
extern string AlertText = "";
input bool EnableNativeAlerts = true;
input bool EnableSoundAlerts = true;
input string SoundFileName = "alert.wav";
datetime LastAlertTime = D'01.01.1970';
//-----
double fxl[],fxh[],sqh[],sql[];
double ai[10,10],b[10],c[10],x[10],y[10],sx[20];
double sum,suml,sumh;
int ip,p,n,f;
double qq,mm,tt;
int ii,jj,kk,ll,nn;
int i0 = 0;
Then there are buffers...
{
SetIndexBuffer(0, fxl);
SetIndexBuffer(1, fxh);
SetIndexBuffer(2, sql);
SetIndexBuffer(3, sqh);
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
[...........]
And to the end:
for(n=i0;n<=i0+p;n++)
{
sqh[n]=fxh[n]+sumh;
sql[n]=fxl[n]-suml;
}
[...]
sql[n] and sqh[n] are exactly what i need to get with my iCustom function. They are the Lower line and the Higher line of the trendchannel.
i need to create an alert when they cross with an other indicator for n=0 ( sqh[0] or sql[0].
I created an indicator (mq4) not an EA because I don't need to open any trades, just run an Alert.
That's the code:
double channel_sqh=iCustom(NULL, 0, "TrendChannel.mq4", 3, 0);
double channel_sql=iCustom(NULL, 0, "TrendChannel.mq4", 2, 0);
input bool EnableNativeAlerts = true;
input bool EnableSoundAlerts = true;
input string SoundFileName = "alert.wav";
//----
extern int AlertPipRange = 5;
extern string AlertText = "";
//----
datetime LastAlertTime = D'01.01.1970';
//-----
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//--- Show data from 3 file TrendChannel.mq4
Comment(StringFormat("TrendChannel sqh: %G\nTrendChannel sql: %G", channel_sqh, channel_sql));
return(0);
}
however the string on the left-top corner of MT4 report a "0" value for both channel sql and sqh =(
in iCustom funcion i wrote (...3, 0) and (...2, 0) because if I use Data Window it shows this:
I'm not a super programmer, I just enjoy editing existing code but this time I'm getting stuck.
What's the problem on this code? =(
Hope someone can help me =)
Thanks in advance!!