Подскажите, как посчитать количество заполненных ячеек в массиве?
Массив содержит цены трендовых линии, относительно текущего бара.
sch=ObjectsTotal(OBJ_TREND);//количество трендовы линийfor(int s=0;s<sch;s++)
{
// ArraySort(masS,WHOLE_ARRAY,0,MODE_DESCEND);// ArraySort(masB,WHOLE_ARRAY,0,MODE_DESCEND);
DWnem=ObjectName(s); //Текущее имя объекта
DW="downtrendline"+IntegerToString(s);//Для фильтрации запроса
DW2="uptrendline"+IntegerToString(s);//if(DWnem="")//если объекта уже нет, то обнуляем ячейку массива
{
masS[s]=0;
masB[s]=0;
}
if(DWnem=DW)//если имя совпадает с фильтром, то запоминаем в массив
{
if(ObjectGet(DWnem,OBJPROP_COLOR)==Goldenrod) {
masS[s]=ObjectGetValueByShift(DWnem,1);}
if(ObjectGet(DWnem,OBJPROP_COLOR)==Gainsboro) {
masS[s]=ObjectGetValueByShift(DWnem,1);}
if(ObjectGet(DWnem,OBJPROP_COLOR)==White) {
masS[s]=ObjectGetValueByShift(DWnem,1);}
}
for(int a=0;a<20;a++)// ну а тут счетчик, чтоб посчитать сколько ячеек записано в масив
{
if(mas[a]>0)
sch++;
}
Как остановить счетчик?
А то он продолжает и продолжает накручивать.
Хоть убей не могу сообразить и все ,помогите пожалуйста!!!
Подскажите, как посчитать количество заполненных ячеек в массиве?
Массив содержит цены трендовых линии, относительно текущего бара.
А то он продолжает и продолжает накручивать.
Хоть убей не могу сообразить и все ,помогите пожалуйста!!!
Наверное, занулить счётчик вовремя надо, чтобы не накручивал больше, а заново с нуля считал?
Километровые функции - это нехорошо, законченные куски действий лучше выносить в отдельные функции, даже если некоторые из них вызываются всего один раз. А из основной функции вызывать эти отдельные.
Такой подсчёт пойдёт?
#property strict/******************************************************************************/uint getFilledCellsNumber(double &array[]) { // Массив принимается по ссылке, то есть, НЕ копируетсяuint cnt = 0;
for (int i = 0, limit = ArraySize(array); i < limit; i++) {
if (array[i] > 0) {
cnt++;
}
}
return cnt;
}
/******************************************************************************/voidOnStart() {
double a[] = {0, 1.2, 1.3, 0, 1.1};
uint filledCellsNumber = getFilledCellsNumber(a); // Массив передаётся по ссылке, то есть, НЕ копируетсяPrint("Number of filled cells: ", filledCellsNumber);
}
Наверное, занулить счётчик вовремя надо, чтобы не накручивал больше, а заново с нуля считал?
Километровые функции - это нехорошо, законченные куски действий лучше выносить в отдельные функции, даже если некоторые из них вызываются всего один раз. А из основной функции вызывать эти отдельные.
Такой подсчёт пойдёт?
При запуске получается следующее:
Вроде, правильно считает.
ООО спасибо вам большое!!!))) Вообще классно работает.
Подскажите новичку, плиз!
Задача у меня такая: из эксперта создать подокно (подокна) в окне графика, к которому он прикреплен.
Вроде все перерыл, но так и не нашел как это можно сделать. Можно создавать/редактировать объекты
в уже созданных другими индикаторами подокнах, но того что мне нужно нету...
Как выйти из ситуации?
Посмотрите статью, может что и найдете
Только цикл Вам поможет. Перебирать и считать
Подскажите, как посчитать количество заполненных ячеек в массиве?
Массив содержит цены трендовых линии, относительно текущего бара.
А то он продолжает и продолжает накручивать.
Хоть убей не могу сообразить и все ,помогите пожалуйста!!!
Подскажите пожалуйста, как получить в Терминале сигнал об окончании работы ТерминалТестера?
Подскажите, как посчитать количество заполненных ячеек в массиве?
Массив содержит цены трендовых линии, относительно текущего бара.
А то он продолжает и продолжает накручивать.
Хоть убей не могу сообразить и все ,помогите пожалуйста!!!
Попробуйте так:
Может, получится. Удачи!
Подскажите, как посчитать количество заполненных ячеек в массиве?
Массив содержит цены трендовых линии, относительно текущего бара.
А то он продолжает и продолжает накручивать.
Хоть убей не могу сообразить и все ,помогите пожалуйста!!!
Наверное, занулить счётчик вовремя надо, чтобы не накручивал больше, а заново с нуля считал?
Километровые функции - это нехорошо, законченные куски действий лучше выносить в отдельные функции, даже если некоторые из них вызываются всего один раз. А из основной функции вызывать эти отдельные.
Такой подсчёт пойдёт?
При запуске получается следующее:
Вроде, правильно считает.
Здравствуйте.
При компиляции написанной в 2012 году программы появляется предупреждение:
possible loss of data due to type conversion FinBuy1531.mq4 144 7
Что оно означает и как избежать его появления?
P.S. В тестере программа исполняется нормально.
Наверное, занулить счётчик вовремя надо, чтобы не накручивал больше, а заново с нуля считал?
Километровые функции - это нехорошо, законченные куски действий лучше выносить в отдельные функции, даже если некоторые из них вызываются всего один раз. А из основной функции вызывать эти отдельные.
Такой подсчёт пойдёт?
При запуске получается следующее:
Вроде, правильно считает.
ООО спасибо вам большое!!!))) Вообще классно работает.
Благодарю всех за помощь!)
Здравствуйте.
При компиляции написанной в 2012 году программы появляется предупреждение:
possible loss of data due to type conversion FinBuy1531.mq4 144 7
Что оно означает и как избежать его появления?
P.S. В тестере программа исполняется нормально.
Строка кода:
Предупреждение:
possible loss of data due to type conversion FinBuy1531.mq4 144 7
На мой взгляд типы соответствуют. Что здесь не так?
Строка кода:
Предупреждение:
possible loss of data due to type conversion FinBuy1531.mq4 144 7
На мой взгляд типы соответствуют. Что здесь не так?
Не соответствуют, MarketInfo(..) возвращает значение типа double
как-то так: