Оптимизация циклов

Подробнее
7 года 8 мес. назад - 7 года 8 мес. назад #905 от aal6
aal6 создал тему: Оптимизация циклов
Добрый вечер!
Подскажите, пожалуйста можно ли оптимизировать такой код
result = 0;
delta = 0.1;
for( i =100 ; i<BarCount-1; i++)
{
for( j = i-1; j>1; j--)
{
if(С[ i ]*(1-delta) > С[j])
{
result[ i ] = 1;
break;
}
if(C[ i ] < C[j])
break;
}
}
В таком виде слишком тормозит :( .
Последнее редактирование: 7 года 8 мес. назад пользователем aal6. Причина: пропали скобки массива

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 8 мес. назад - 7 года 8 мес. назад #906 от admin
admin ответил в теме Оптимизация циклов
Понятное дело, что тормозить будет нещадно.


Чего вам хочется добиться (из фрагмента это не слишком понятно) ?
Последнее редактирование: 7 года 8 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 8 мес. назад - 7 года 8 мес. назад #907 от aal6
aal6 ответил в теме Оптимизация циклов
Результат - гистерезис цены от истории на неопределенном интервале. Последнее не дает эффективно использовать стандартные функции, цикл с расширяющейся областью поиска стандартными функциями практически вешает Ами.

Можно ли сделать эффективно подобный расчет без использования внешних модулей?

По идее реализация не сильно отличается от встроенных функций, типа HHV/BarsSince, но быстродействие отличается на два порядка.
Последнее редактирование: 7 года 8 мес. назад пользователем aal6.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 8 мес. назад #908 от admin
admin ответил в теме Оптимизация циклов
Разве в функции типа HHV или barssince нельзя подсунуть в качестве параметра массив, а не константу?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 8 мес. назад #909 от aal6
aal6 ответил в теме Оптимизация циклов
Они вроде с константами не работают. Разве в качестве периода, можно подсунуть массив?

Не могу понять можно ли посчитать без циклов выражение вида

result = BarsSince(С[BarCount-1] *(1-delta) > С) , где первая часть сравнения константа, но для каждого бара своя.
Проблема в том что BarsSince строит на выходе массив, а из него мне нужна только последняя точка. И для каждого бара приходится запускать BarsSince со своей константой.

Вот и не пойму, можно ли оптимизировать это в рамках AFL? Обсчет такой функции, на первый взгляд, не сложнее EMA :) .

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: admin