Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ребята, я так и не понял вверх или вниз
Вправо.
Какие квантили нужно посчитать, например:
{0.5} - медиана
{0.25, 0.5, 0.75} - квартили
{0.01, 0.02, ..., 0.99} - персентили
Подскажите пожалуйста.
Если пропускать массив через MathQuantile, его нужно сортировать?
- Я так понял что не важно сорт. или не сорт.
Выходит, что индекс не отследить массива. квант считается по ценам, а индекс массива к которой привязана цена ...
Я так понимаю , что эта математика с медианой или квантом, не решает задачу удовлетворительно!
ЧТо то я не могу...
Возвращается массив значений указанных квантилей. Индексы этих значений в неотсортированном массиве не известны. Весь вопрос в скорости. Если на каждом баре рассчитывать эту функцию, и массив значений велик, то время оптимизации может затянутся. Я бы по другому пошёл, но дело Ваше.
Если пропускать массив через MathQuantile, его нужно сортировать?
При любой перестановке (сортировка, например) результат не должен меняться.
Возвращается массив значений указанных квантилей. Индексы этих значений в неотсортированном массиве не известны. Весь вопрос в скорости. Если на каждом баре рассчитывать эту функцию, и массив значений велик, то время оптимизации может затянутся. Я бы по другому пошёл, но дело Ваше.
А по какому пути пошли бы вы?
Алексей, какой путь решит задачу)!
Не знаю, какую задачу Вы перед собой поставили, но если в общем сказать, то чем меньше циклических обсчётов, тем быстрее алгоритм. Есть основной цикл - это проход по всем барам истории, от него нам никуда не деться. А от остальных нужно стараться избавляться. Ведь функции MathQuantile, iHighest, и ещё другие - по сути это тоже скрытые циклы. Для ускорения необходимо обрабатывать информацию по мере поступления и хранить её до следующего бара. И в текущих расчётах уже не запрашивать сырые исторические данные, а использовать ранее подготовленные.
В случае нахождения медиан и прочих квантилей, менее затратней поддерживать упорядоченный массив по мере поступления информации. Код писал выше. Если у Вас "скользящее окно", в пределах которого необходима информация, то нужно подумать, как удалять старые значения из массива таким же быстрым способом. Вероятно понадобится ещё один массив для хранения индексов.
примерный алгоритм рассчёта heatmap (например на 100 бар):
для всех Close от 1 до 100 :
Close[N]=X будет добавлять в heatmap сумму ряда heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}.. до 100.
То что в фигурных скобочках - это "компоненты" средних, просто выделил.
Resolution(X) - "разрешение", например по 10 пунктов Round((X-MininalX)/Point/10)
получаете вектор в котором потом найти нужные вам локальные максимумы.
сей вектор практически - вертикальный профиль цен
Пожалуйста, вы бы могли помочь рассчитать тепловую карту? попробовал через медиану, квантиль не выходит добиться нормального выявления скоплений МА.
Если можете покажите, что нужно сделать, расчет( по одному бару).
Пожалуйста, вы бы могли помочь рассчитать тепловую карту? попробовал через медиану, квантиль не выходит добиться нормального выявления скоплений МА.
Если можете покажите, что нужно сделать, расчет( по одному бару).
в лоб, без оптимизаций, матриц и сложной математики:
1. для текущего бара считаем все МА-шки по отдельности. Получаем массив SMA[N] в коротром лежат значения машек до N
2. заводим heatmap[M], который покрывает цены от minimum=1.00000 , Каждый элемент отвечает за (например) resolution=10 пунктов.
3. Заполняем этот "сырой" heatmap: берём значение каждой ма-шки и смотрим к какой ячейке оно относится. index=(SMA[i]-minimum)/resolution. Увеличиваем значение этой ячейки hetmap[index]+=1.0
полученный результат можно вывести в CSV и подумать
4. Сглаживаем значения "сырого" heatmap: заводим массив smooth[] и считаем среднее smotch[i]=среднее значение heatmap oт i-window до i+window включительно
5. Локальные максимумы smootch будут указывать на "скопление фидов". Максимумы надеюсь, умеете искать :-)
пункты 1-5 можно разложить математикой и посчитать гораздо быстрее, с минимумом циклов и доп.массивов, но не факт что будет нагляднее