Работаю со скользящими средними(MA) в количестве 2000 шт. Задача, подсчитать количества повторений цены МА на Close[1], при минимальных затрат ресурсов. - страница 2

 
Vinin:

Вот пример. Пока сделал только заполнение массива, который надо будет обрабатывать и получать из него нужные характеристики. В данном варианте идет расчет по всей доступной истории. Но возможно это будет занимать время и ресурсы

 

Витя, я тебя умоляю, тыж матёрый лев оптимизации алгоритмов.

Ну как можно такое лепить? Машки давно оптимизированы на быстрый расчёт. У тебя же стоимость вычислений RatesTotal*Period, этож каменный век какой то. 

ЗЫ С таким подходом у тебя стоимость фида машек в 2000, будет равна  RatesTotal*Факториал(2000)^2, ты представляешь какие это затраты по памяти и количеству вычислений?

 
Urain:

Витя, я тебя умоляю, тыж матёрый лев оптимизации алгоритмов.

Ну как можно такое лепить? Машки давно оптимизированы на быстрый расчёт. У тебя же стоимость вычислений RatesTotal*Period, этож каменный век какой то. 

ЗЫ С таким подходом у тебя стоимость фида машек в 2000, будет равна  RatesTotal*Факториал(2000)^2, ты представляешь какие это затраты по памяти и количеству вычислений?

Может, уделите капельку времени. Да поделитесь возможной реализацией. Заранее благодарю! 
 
Urain:

Витя, я тебя умоляю, тыж матёрый лев оптимизации алгоритмов.

Ну как можно такое лепить? Машки давно оптимизированы на быстрый расчёт. У тебя же стоимость вычислений RatesTotal*Period, этож каменный век какой то. 

ЗЫ С таким подходом у тебя стоимость фида машек в 2000, будет равна  RatesTotal*Факториал(2000)^2, ты представляешь какие это затраты по памяти и количеству вычислений?

Возьми и сравни оба варианта и по скорости, и по расходу памяти. Никто же не мешает
 
Виктор, ваш расчет работает как O(countMA^2), оптимизированный алгоритм дает O(countMA), при этом затраты памяти также O(countMA).
 
Top2n:
Может, уделите капельку времени. Да поделитесь возможной реализацией. Заранее благодарю! 
Центр тяжести 2000 SMA с периодом от 1 до 2000 стремится к LWMA с периодом 2000
 
Top2n:
Может, уделите капельку времени. Да поделитесь возможной реализацией. Заранее благодарю! 

Всё что у вас есть нужно вот прямо сейчас выкинуть и начать всё заново.

Для начала посмотрите код машки из стандартной поставки, разберитесь почему они делают так а не иначе, они ведь не суммируют на каждой точке все данные за период, задумайтесь почему?

Потом подумайте, а нельзя ли подобный метод оптимизации применить для построения фида машек, и вы поймёте что можно экономить кучу процессорного времени и памяти.

В результате вы придёте к моменту когда для построения пересечения фида машек в 2000 штук вам потребуется два буфера длинной по 2000, не считая одного расчётного буфера это почти все затраты по памяти.

И считается это всё со скоростью близкой к расчёту одной машки, те мгновенно.

У вас останется лишь одна проблема, как визуализировать результаты, но это уже совсем другая история. 

 
Urain:

Всё что у вас есть нужно вот прямо сейчас выкинуть и начать всё заново.

Для начала посмотрите код машки из стандартной поставки, разберитесь почему они делают так а не иначе, они ведь не суммируют на каждой точке все данные за период, задумайтесь почему?

Потом подумайте, а нельзя ли подобный метод оптимизации применить для построения фида машек, и вы поймёте что можно экономить кучу процессорного времени и памяти.

В результате вы придёте к моменту когда для построения пересечения фида машек в 2000 штук вам потребуется два буфера длинной по 2000, не считая одного расчётного буфера это почти все затраты по памяти.

И считается это всё со скоростью близкой к расчёту одной машки, те мгновенно.

У вас останется лишь одна проблема, как визуализировать результаты, но это уже совсем другая история. 

да,

Вы как всегда правы

Причина обращения: