Линейная регрессия МНК - страница 3

[Удален]
Candid:

Вот это зачем? Её вообще в цикл не нужно вводить

Вот это неправильно

Видел, спасибо, но не понял. А что не правильно?

220Volt:

Видел, спасибо, но не понял. А что не правильно?

Там оптимизированный код, для скользящего окна фиксировнного размера, то есть для мувинга.

Насчёт неправильно я поспешил, через столько лет не сразу вспомнишь всё :).

Кстати, а в пятёрке этот код тоже глючит?
[Удален]

В пятерке не пробовал, но думаю это не имеет значение. Код в dll.

Тогда в приведенном фрагменте я пока не вижу источника проблемы(неоптимальность не в счёт), может стоит в этих местах поискать?

// this->points[0] - начало тренда (включительно).
// this->points[1] - вершина тренда (включительно).
// (*chart)[n].price - возвращает цену точки n
220Volt:

Косяк получился при около 86000 точек, как видно из tl_a линия направлена вниз, что не может быть верным.


Кажется, понял проблему.

Намек: Что в качестве точек

this->points[0]
берете, время или номер бара?
Если брать время, то и возникает переполнение. Надо бары пронумеровать, и считать их номер координатой X (смещение неважно,т.к. Вас интересует тольк наклон), тогда переполнения не будет.
[Удален]

this->points[0] это индекс, забыл уточнить.

[Удален]

Всех благодарю за участие, буду прикручивать GMP, пока разбираюсь.

Там когда х2 считается, похоже сначала перемножаются целые, а потом приведение типов идёт. Индекс нужно с самого начала в double перегонять.