Вообще, рекомендуется при сравнении двух чисел типа double брать их разность и сравнивать с допустимым пороговым значением. Но я обычно сравниваю напрямую - ни разу проблем у меня не было.
tol64: Может как-то по частоте разрывов можно попробовать определить? Считать разрывы за определённый период.
Вариантов, как можно извратится - много. Но не вижу ни одного реально надёжного. Ибо нет истинного критерия, по которому можно судить о "настоящести" данных каждого отдельно взятого бара.
Все чарты строятся из минутных баров. Можно было бы программно рассчитать, до какой даты возможно корректное построение более старшего требуемого ТФ. Но и здесь есть своё "однако". Однако и минутные ТФ корректны не на всю глубину истории:
Не знаю, ИМХО, нужен штатный механизм, для определения таких границ, что то типа
int Correct_Boundary_of_Timeframe
(
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe // период
);
-возвращает индекс последнего корректного бара запрашиваемого инструмента требуемого ТФ.
Вариантов, как можно извратится - много. Но не вижу ни одного реально надёжного. Ибо нет истинного критерия, по которому можно судить о "настоящести" данных каждого отдельно взятого бара.
Все чарты строятся из минутных баров. Можно было бы программно рассчитать, до какой даты возможно корректное построение более старшего требуемого ТФ. Но и здесь есть своё "однако". Однако и минутные ТФ корректны не на всю глубину истории:
Не знаю, ИМХО, нужен штатный механизм, для определения таких границ, что то типа
-возвращает индекс последнего корректного бара запрашиваемого инструмента требуемого ТФ.
Так если не побрезговать прочёсом всей истории в прошлое, тогда не вижу проблемы. Узнаём время открытия и закрытия каждого бара и смотрим в этих внутрибарных диапазонах количество секунд. Если меньше ожидаемого - пиши "ненастоящий" бар. Это и будет переломной вехой, после которой все остальные бары будут неполноценными. Далее прочёсывать нет смысла.
Да, самому. В принципе, могу выложить код на MQL5 для расчета.
Скажите пожалуйста, как правильно сравнивать Double ( == < > ). Нужно ли нормализировать? Например, в МТ4 была такая функция:
CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true);
else return(false);
}
И вообще, какой примерный алгоритм у функции NormalizeDouble() ?
Скажите пожалуйста, как правильно сравнивать Double ( == < > ). Нужно ли нормализировать? Например, в МТ4 была такая функция:
CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true);
else return(false);
}
Скажите пожалуйста, как правильно сравнивать Double ( == < > ). Нужно ли нормализировать? Например, в МТ4 была такая функция:
CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true);
else return(false);
}
И вообще, какой примерный алгоритм у функции NormalizeDouble() ?
Известно, что в начале чарта история некорректная, вопроса "почему она некорректная" не возникает.
Возникает другой вопрос: как программно определить границу, за которой следует некорректные исторические данные?
Красной вертикальной линией показана та самая граница.
Известно, что в начале чарта история некорректная, вопроса "почему она некорректная" не возникает.
Возникает другой вопрос: как программно определить границу, за которой следует некорректные исторические данные?
Красной вертикальной линией показана та самая граница.
Может как-то по частоте разрывов можно попробовать определить? Считать разрывы за определённый период.
Вариантов, как можно извратится - много. Но не вижу ни одного реально надёжного. Ибо нет истинного критерия, по которому можно судить о "настоящести" данных каждого отдельно взятого бара.
Все чарты строятся из минутных баров. Можно было бы программно рассчитать, до какой даты возможно корректное построение более старшего требуемого ТФ. Но и здесь есть своё "однако". Однако и минутные ТФ корректны не на всю глубину истории:
Не знаю, ИМХО, нужен штатный механизм, для определения таких границ, что то типа
-возвращает индекс последнего корректного бара запрашиваемого инструмента требуемого ТФ.
Не знаю, ИМХО, нужен штатный механизм, для определения таких границ, что то типа
-возвращает индекс последнего корректного бара запрашиваемого инструмента требуемого ТФ.
-возвращает индекс последнего корректного бара запрашиваемого инструмента требуемого ТФ.
Вариантов, как можно извратится - много. Но не вижу ни одного реально надёжного. Ибо нет истинного критерия, по которому можно судить о "настоящести" данных каждого отдельно взятого бара.
Все чарты строятся из минутных баров. Можно было бы программно рассчитать, до какой даты возможно корректное построение более старшего требуемого ТФ. Но и здесь есть своё "однако". Однако и минутные ТФ корректны не на всю глубину истории:
Не знаю, ИМХО, нужен штатный механизм, для определения таких границ, что то типа
-возвращает индекс последнего корректного бара запрашиваемого инструмента требуемого ТФ.