Need help converting .mql4 to .ex4

Hi guys. I have been in forex business for a while now, rather without success. But I have found something that might be the winner. the only problem is that my mt4 platform can not compile the file and make it ex4, so this indicator is useless to me in this way, but it is rather essential for my system.
Please, if there is any programmer out there, take a look into this, As soon as I get this indicator working, I will be posting the entire system. I can not upload the indi, because there is some kind of an error, but here is the code:

*/

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Olive
#property indicator_color4 CadetBlue

int g_period_76 = 12;
int g_period_80 = 11;
int g_period_84 = 2;
extern bool Sound.Alerts = FALSE;
extern bool Email.Alerts = FALSE;
double g_ibuf_96[];
double g_ibuf_100[];
double g_ibuf_104[];
double g_ibuf_108[];
double g_ibuf_112[];

int init() {
IndicatorBuffers(5);
SetIndexStyle(0, DRAW_NONE);
SetIndexBuffer(0, g_ibuf_100);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, g_ibuf_104);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(2, g_ibuf_108);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(3, g_ibuf_112);
SetIndexBuffer(4, g_ibuf_96);
return (0);
}

int deinit() {
return (0);
}

int start() {
datetime l_time_8;
for (int l_shift_0 = 0; l_shift_0 < Bars; l_shift_0++) {
g_ibuf_96[l_shift_0] = Close[l_shift_0] - iBands(Symbol(), 0, g_period_76, 2, 0, PRICE_CLOSE, MODE_LOWER, l_shift_0) - (iBands(Symbol(), 0, g_period_76, 2, 0, PRICE_CLOSE, MODE_UPPER, l_shift_0) - iBands(Symbol(), 0, g_period_76, 2, 0, PRICE_CLOSE, MODE_LOWER, l_shift_0));
g_ibuf_100[l_shift_0] = EMPTY_VALUE;
g_ibuf_108[l_shift_0] = EMPTY_VALUE;
g_ibuf_104[l_shift_0] = EMPTY_VALUE;
}
for (l_shift_0 = 0; l_shift_0 < Bars; l_shift_0++) g_ibuf_100[l_shift_0] = iMAOnArray(g_ibuf_96, 0, g_period_80, 0, MODE_SMA, l_shift_0);
for (l_shift_0 = 0; l_shift_0 < Bars; l_shift_0++) g_ibuf_112[l_shift_0] = iMAOnArray(g_ibuf_100, 0, g_period_84, 0, MODE_SMA, l_shift_0);
bool li_4 = FALSE;
for (l_shift_0 = Bars; l_shift_0 > 0; l_shift_0–) {
li_4 = FALSE;
l_time_8 = Time[l_shift_0];
if (Symbol() == “EURUSD” && TimeYear(l_time_8) == 2010 && TimeDay(l_time_8) == 28 && TimeMonth(l_time_8) == 4 && TimeHour(l_time_8) == 10) {
g_ibuf_104[l_shift_0] = High[iHighest(Symbol(), 0, MODE_HIGH, 4, l_shift_0)];
g_ibuf_108[l_shift_0] = EMPTY_VALUE;
g_ibuf_100[l_shift_0 + 1] = g_ibuf_112[l_shift_0 + 1] - 1.0 * Point;
li_4 = TRUE;
}
if (g_ibuf_100[l_shift_0] > g_ibuf_112[l_shift_0]) {
if (!li_4) g_ibuf_108[l_shift_0] = Low[iLowest(Symbol(), 0, MODE_LOW, 4, l_shift_0)];
} else
if (!li_4) g_ibuf_104[l_shift_0] = High[iHighest(Symbol(), 0, MODE_HIGH, 4, l_shift_0)];
}
if (g_ibuf_108[1] != EMPTY_VALUE && g_ibuf_104[2] != EMPTY_VALUE && High[0] == Low[0] && High[0] == Close[0] && High[0] == Low[0]) {
if (Sound.Alerts) Alert("Karl Dittmann Intraday: Long Signal at " + Symbol() + ", Chart " + Period() + “!”);
if (Email.Alerts) SendMail(“Intraday Signal”, "Karl Dittmann Intraday: Long Signal at " + Symbol() + ", Chart " + Period() + “!”);
}
if (Email.Alerts && g_ibuf_104[1] != EMPTY_VALUE && g_ibuf_108[2] != EMPTY_VALUE && High[0] == Low[0] && High[0] == Close[0] && High[0] == Low[0]) {
if (Sound.Alerts) Alert("Karl Dittmann Intraday: Short Signal at " + Symbol() + ", Chart " + Period() + “!”);
if (Email.Alerts) SendMail(“Intraday Signal”, "Karl Dittmann Intraday: Short Signal at " + Symbol() + ", Chart " + Period() + “!”);
}
return (0);
}

Thank you!!!

Hi Jabre,

For these sorts of requests, I recommend the forums at mql4.com.

In the meta-editor, when you click compile, read the errors down in the bottom window. In this code, you need to change each instance of Sound.Alerts to Sound_Alerts and Email.Alerts to Email_Alerts.

The new version of MT4 doesn’t recognize ‘.’ in commands names.

Here is code that compiles…

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Olive
#property indicator_color4 CadetBlue

int g_period_76 = 12;
int g_period_80 = 11;
int g_period_84 = 2;
extern bool Sound_Alerts = FALSE;
extern bool Email_Alerts = FALSE;
double g_ibuf_96[];
double g_ibuf_100[];
double g_ibuf_104[];
double g_ibuf_108[];
double g_ibuf_112[];

int init() {
IndicatorBuffers(5);
SetIndexStyle(0, DRAW_NONE);
SetIndexBuffer(0, g_ibuf_100);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(1, g_ibuf_104);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(2, g_ibuf_108);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(3, g_ibuf_112);
SetIndexBuffer(4, g_ibuf_96);
return (0);
}

int deinit() {
return (0);
}

int start() {
datetime l_time_8;
for (int l_shift_0 = 0; l_shift_0 < Bars; l_shift_0++) {
g_ibuf_96[l_shift_0] = Close[l_shift_0] - iBands(Symbol(), 0, g_period_76, 2, 0, PRICE_CLOSE, MODE_LOWER, l_shift_0) - (iBands(Symbol(), 0, g_period_76, 2, 0, PRICE_CLOSE, MODE_UPPER, l_shift_0) - iBands(Symbol(), 0, g_period_76, 2, 0, PRICE_CLOSE, MODE_LOWER, l_shift_0));
g_ibuf_100[l_shift_0] = EMPTY_VALUE;
g_ibuf_108[l_shift_0] = EMPTY_VALUE;
g_ibuf_104[l_shift_0] = EMPTY_VALUE;
}
for (l_shift_0 = 0; l_shift_0 < Bars; l_shift_0++) g_ibuf_100[l_shift_0] = iMAOnArray(g_ibuf_96, 0, g_period_80, 0, MODE_SMA, l_shift_0);
for (l_shift_0 = 0; l_shift_0 < Bars; l_shift_0++) g_ibuf_112[l_shift_0] = iMAOnArray(g_ibuf_100, 0, g_period_84, 0, MODE_SMA, l_shift_0);
bool li_4 = FALSE;
for (l_shift_0 = Bars; l_shift_0 > 0; l_shift_0–) {
li_4 = FALSE;
l_time_8 = Time[l_shift_0];
if (Symbol() == “EURUSD” && TimeYear(l_time_8) == 2010 && TimeDay(l_time_8) == 28 && TimeMonth(l_time_8) == 4 && TimeHour(l_time_8) == 10) {
g_ibuf_104[l_shift_0] = High[iHighest(Symbol(), 0, MODE_HIGH, 4, l_shift_0)];
g_ibuf_108[l_shift_0] = EMPTY_VALUE;
g_ibuf_100[l_shift_0 + 1] = g_ibuf_112[l_shift_0 + 1] - 1.0 * Point;
li_4 = TRUE;
}
if (g_ibuf_100[l_shift_0] > g_ibuf_112[l_shift_0]) {
if (!li_4) g_ibuf_108[l_shift_0] = Low[iLowest(Symbol(), 0, MODE_LOW, 4, l_shift_0)];
} else
if (!li_4) g_ibuf_104[l_shift_0] = High[iHighest(Symbol(), 0, MODE_HIGH, 4, l_shift_0)];
}
if (g_ibuf_108[1] != EMPTY_VALUE && g_ibuf_104[2] != EMPTY_VALUE && High[0] == Low[0] && High[0] == Close[0] && High[0] == Low[0]) {
if (Sound_Alerts) Alert("Karl Dittmann Intraday: Long Signal at " + Symbol() + ", Chart " + Period() + “!”);
if (Email_Alerts) SendMail(“Intraday Signal”, "Karl Dittmann Intraday: Long Signal at " + Symbol() + ", Chart " + Period() + “!”);
}
if (Email_Alerts && g_ibuf_104[1] != EMPTY_VALUE && g_ibuf_108[2] != EMPTY_VALUE && High[0] == Low[0] && High[0] == Close[0] && High[0] == Low[0]) {
if (Sound_Alerts) Alert("Karl Dittmann Intraday: Short Signal at " + Symbol() + ", Chart " + Period() + “!”);
if (Email_Alerts) SendMail(“Intraday Signal”, "Karl Dittmann Intraday: Short Signal at " + Symbol() + ", Chart " + Period() + “!”);
}
return (0);
}