int start() {
int l_count_8;
double l_icustom_12;
int li_0 = IndicatorCounted();
int li_4 = 300;
if (li_0 < 0) return (-1);
if (li_0 > 0) li_0--;
li_4 = Bars - li_0;
for (int l_index_20 = 0; l_index_20 < li_4; l_index_20++) {
if (Time[l_index_20] >= gia_92[0]) l_count_8 = 0;
else {
l_count_8 = ArrayBsearch(gia_92, Time[l_index_20 - 1], WHOLE_ARRAY, 0, MODE_DESCEND);
if (Period() <= GrossPeriod) l_count_8++;
}
for (int li_24 = l_count_8; li_24 < l_count_8 + 100; li_24++) {
l_icustom_12 = iCustom(NULL, GrossPeriod, "ZigZag", depth, 2, 2, 0, li_24 + 1);
if (l_icustom_12 != 0.0) break;
}
if (iClose(NULL, 0, l_index_20 + 1) <= l_icustom_12) g_ibuf_88[l_index_20] = l_icustom_12;
else g_ibuf_88[l_index_20] = 0.0;
if (iClose(NULL, 0, l_index_20 + 1) >= l_icustom_12) g_ibuf_84[l_index_20] = l_icustom_12;
else g_ibuf_84[l_index_20] = 0.0;
ObjectsRedraw();
}
return (0);
}