Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ты хочешь сказать что после if(rates_total-i >= rates_total-100);, когда осталось только 100 баров для расчёта функция iMAOnArray() сначала пересчитывает ВЕСЬ массив?
Ты хочешь сказать что после if(rates_total-i >= rates_total-100);, когда осталось только 100 баров для расчёта функция iMAOnArray() сначала пересчитывает ВЕСЬ массив?
iMAOnArray
Возвращает значение технического индикатора Moving Average, рассчитанного на данных, хранящихся в массиве.
double iMAOnArray(
double array[], // массив
int total, // количество элементов
int ma_period, // период
int ma_shift, // сдвиг средней
int ma_method, // метод усреднения
int shift // сдвиг
);
Параметры
array[]
[in] Массив с данными.
total
[in] Количество элементов для вычисления. 0 означает все элементы массива.
Именно так, первый вызов iMAOnArray с параметрами 0 в значении размера рассчитает безусловно весь массив, далее вроде как происходит расчёт только последнего или максимум 2 последних значений, хотя кто знает, может всё и заново считает... От того-то и тормоза. Поэтому не важно сколько баров вы хотите получить по смещению, считается в этом случае всё равно весь массив.
iMAOnArray
Возвращает значение технического индикатора Moving Average, рассчитанного на данных, хранящихся в массиве.
double iMAOnArray(
double array[], // массив
int total, // количество элементов
int ma_period, // период
int ma_shift, // сдвиг средней
int ma_method, // метод усреднения
int shift // сдвиг
);
Параметры
array[]
[in] Массив с данными.
total
[in] Количество элементов для вычисления. 0 означает все элементы массива.
Именно так, первый вызов iMAOnArray с параметрами 0 в значении размера рассчитает безусловно весь массив, далее вроде как происходит расчёт только последнего или максимум 2 последних значений, хотя кто знает, может всё и заново считает... От того-то и тормоза. Поэтому не важно сколько баров вы хотите получить по смещению, считается в этом случае всё равно весь массив.
Значит я не правильно понял. А почему-же нет тормозов без твоих сложных вычислений?
В том-то и вопрос, почему при вызове из кода тормозит, а при простом наложении на график нет. В общем тут только разработчики знают, где искать ответ. У меня на графиках немало сложных индикаторов и некоторые из них используют даже рекурсивные циклы, и им положено "долго думать", а тут простая задача, а так долго рассчитывается.
Я не говорю о простом наложении на график. Я говорю о том тестовом коде. Там ведь вызывается, а не накладывается.
И всё-таки, мне кажется, я победил эту хрень через копирование части массива. И даже MODE_LWMA пересчитывает одинаково как и считая весь массив.
Красный - посчитан по всей истории. Зелёный последние 50 баров.
...
И всё-таки, мне кажется, я победил эту хрень через копирование части массива. И даже MODE_LWMA пересчитывает одинаково как и считая весь массив.
...
Он тоже победил.
Я не говорю о простом наложении на график. Я говорю о том тестовом коде. Там ведь вызывается, а не накладывается.
И всё-таки, мне кажется, я победил эту хрень через копирование части массива. И даже MODE_LWMA пересчитывает одинаково как и считая весь массив.
Красный - посчитан по всей истории. Зелёный последние 50 баров.
Создаётся впечатление, что вы читаете мои посты через слово, а то и через предложение. Победили что? Я же писал, что такая идея (подобный код с ограничением расчёта количества баров) у меня возникла сразу же, и я сразу же попробовал и не получил увеличения производительности, т.к. массив всё равно рассчитывается полностью (total=0), то, что вы копируете (заполняете буфер) только последние 100 его элементов, не убирает торможения расчётов, тормозит не получение элементов в буфер, а расчёт массива средней, который или считается полностью (total=0) или выдаёт результаты только первых N элементов (total=N), при том, что нужны последние, смена направления индексации нужного эффекта не даёт.
Видимо мои сообщения тоже читаются через одно... Предыдущий код не подходит, это я понял где ошибка допущена. На последнем скрине совсем другой подход, хотя и считаются только последние 50 баров.
Сразу код выкладывать не стал именно ожидая такой вот реакции, типа "всё равно ничего не получится" патамушта... Код не секретный, хочешь проверить как будет работать на твоём индикаторе, скажи.
Он тоже победил.
...
А ты только срачь можешь разводить. Посчитай с каким количеством форумчан ты общался в таком вот тоне как сейчас со мной. Изыди, сатана.С такими же как ты так и общался. Вас здесь коалиция, знаю.
Еще вчера здесь писали про несостоятельность подхода с копированием массива. В в LWMA ткнули носом - подействовало. Проверить с EMA тяма на хватает, а носитель святой силы? А свечку в церкви не забыл поставить?
Что то пыжите, пыжите из себя, и каждый раз - ой я понял у меня ошибка.
Срач. Если у вас чуть чуть тяма было, уже бы давно увидели, что вопрос этой темы решен.
Хотелось очередной раз выпендриться, да рога обламали и сразу причитание к сатане. Мужик!
Видимо мои сообщения тоже читаются через одно... Предыдущий код не подходит, это я понял где ошибка допущена. На последнем скрине совсем другой подход, хотя и считаются только последние 50 баров.
Сразу код выкладывать не стал именно ожидая такой вот реакции, типа "всё равно ничего не получится" патамушта... Код не секретный, хочешь проверить как будет работать на твоём индикаторе, скажи.