Линейная регрессия МНК - страница 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 перегонять.
Причина обращения: