Расчет внутридневных свечей по временным интервалам

Возможно, это слишком частый вопрос, но в этот момент мой разум пуст. Я знаю, что такое свечной график и как его ежедневно рисовать. Но как нарисовать его внутри дня в заданные периоды времени. У меня есть этот сервер, написанный на Java, который дает мне глубину сделки (каждая сделка, совершенная с начала дня). Это просто поток необработанных данных: цена, акции, метка времени.

Как на основе этого рассчитать данные свечей? Допустим, они хотят иметь 5-минутную свечу или 1-минутную свечу. Или есть библиотека, которая сделает это за меня, если я дам ей данные?

Любая помощь приветствуется!


person Sam    schedule 18.05.2010    source источник
comment
вам нужно будет найти hi/lo для ваших 5 минут/одну минуту (я думаю, у вас есть открытие/закрытие. Затем вы передаете hi/lo/open/close некоторому API, который может рисовать свечи... Или вы Напишите свой собственный.Обратите внимание, что JFreeChart является одним из самых свиней API: его медлительность отвратительна, и его автор в значительной степени признал на форумах JFreeChart, что JFreeCharts не был на самом деле первоклассным, когда дело дошло до работы с большим количеством данные обновляются в режиме реального времени (например, вы не можете добавить данные справа от графика в JFreeChart: вам нужно все перерисовать).   -  person SyntaxT3rr0r    schedule 19.05.2010
comment
Я взглянул на JFreeChart, и он только рисует. Так что одной проблемой вниз. Но я все еще не уверен, как рассчитать значения. Скажем, если у меня есть массив значений. Как сгруппировать их по временным интервалам. В SQL я бы использовал GROUP BY и указал интервал. Но я не знаю, как это сделать на Java. Я думаю, я могу перебирать элементы и использовать стек для расчета цены открытия, закрытия, максимума, минимума и средней цены? Хм...   -  person Sam    schedule 19.05.2010


Ответы (2)


Точная реализация зависит от того, как вы храните данные, но в целом:

  1. Сортировать данные по отметке времени
  2. Определите, когда начинается день (например, 9:00 по восточному поясному времени, что угодно) и найдите отметку времени этого времени в первый день. Затем вы узнаете, когда начинается и заканчивается каждый 5-минутный (или любой другой) бар, добавляя соответствующее смещение к этому числу.
  3. Найдите индекс первой точки данных, не находящейся на первом столбце, — все точки данных, индекс которых ниже, чем тот, который находится на первом столбце. Теперь легко взять первую, последнюю, максимальную и минимальную цены свечи.
  4. Повторите 3, заменив 0 последним индексом предыдущей свечи.

Теперь у вас есть данные, разделенные на свечи.

person Paul Legato    schedule 30.05.2010

Вы видели JFreeChart? Он будет отображать свечи, и, поскольку его невероятно легко настраивать, он вполне может делай что хочешь.

person Brian Agnew    schedule 18.05.2010