Обсуждение статьи "Применение OLAP в трейдинге (Часть 1): Основы оперативного анализа многомерных данных" - страница 2

 

Самые простые методы агрегации данных записанных в векторы:

1. Двигаться по всем свойствам-векторам сделки перпендикулярно их направлению. Можно быстро собрать все данные одной конкретной сделки. При этом, используется один простой цикл.

2. Если двигаться в первом цикле по направлению векторов, а во втором - перпендикулярно направлению, - можно собрать все данные всех сделок.

Вывод: При параллельно-перпендикулярном движении можно использовать любые фильтры отбора сделок.


Любое значение любого свойства может выступать фильтром поиска. Символ, например - свойство сделки. Конкретный символ - это конкретное значение свойства сделки и он может быть фильтром для агрегации данных. Лот, - тоже свойство сделки. Конкретное значение лота также может быть фильтром. Комплексные фильтры - это совмещение конкретных значений конкретных свойств. Никакого ограничения на сложность и размер фильтра в универсальном методе агрегации быть не может. Поэтому, главная задача это не организация парсинга данных (который всегда параллельно-перпендикулярный), а превращение хитро-нагроможденного пользовательского фильтра в аргумент агрегатной функции.

 
Реter Konow:

...Поэтому, главная задача это не организация парсинга данных (который всегда параллельно-перпендикулярный), а превращение хитро-нагроможденного пользовательского фильтра в аргумент агрегатной функции.

Как превратить сложный фильтр (комплекс условий отбора данных), содержащий не только конкретные значения свойств сделки, но и диапазоны этих значений, в аргумент функции?

1. Свойства-векторы (хранящие историю значений параметров) должны быть индексированы. Каждое свойство сделки должно иметь порядковый номер. По нему будет затребоваться нужный ресурс и из него будут извлекаться данные.

2. Каждый фильтр - это конкретное значение конкретного свойства сделки, либо диапазон значений.

Значит, для построения фильтра пользователю нужно указать индексы свойств по векторам которых нужно делать цикл, и указать их конкретные значения или диапазоны значений.  Эту информацию можно записать в обычный массив и передать в агрегатную функцию. Она извлечет нужные векторы из ресурсов и пройдет в параллельно-перпендикулярном движении по их содержанию используя фильтр из переданного ей массива.

Это вполне простая и ясная задача.

 

Автору статьи: чем OLAP принципиально отличается от массива классов?

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

class TradeDeal
{
   Symbol = EURUSD;
   TimeHold = 1h,13m,55s;
   Profit = 21.52$;
   MAE = 1.243;
}; => {EURUSD, {1h,13m,55s}, 21.52$, 1.243 };

Т.е. экземпляр ООП-класса по сути является неким вектором в многомерном пространстве или точкой, проецирующей свои значения на множество измерений. Таким образом любая выборка по параметрам будет заключатся в обычном обходе generic-коллекции таких классов и выбора подходящих под условиях экземпляров.

 
Vasiliy Sokolov:

Автору статьи: чем OLAP принципиально отличается от массива классов?

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

Т.е. экземпляр ООП-класса по сути является неким вектором в многомерном пространстве или точкой, проецирующей свои значения на множество измерений. Таким образом любая выборка по параметрам будет заключатся в обычном обходе generic-коллекции таких классов и выбора подходящих под условиях экземпляров.

Примерно это и сделано. Только помимо классов-записей еще нужны классы для чтения источников, классы-итераторы по записям, классы функций агрегирования, классы получения результатов и визуализации (будет во 2-й части). Вот все вместе и дает OLAP.

 
Maxim Dmitrievsky:

лучше бы про трейдинг статей побольше было

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

думаю, у многих вертелось на языке, просто озвучил ))

Совершенно верно, я тоже давно об этом думал.

 
Aleksandr Masterskikh:

Совершенно верно, я тоже давно об этом думал.

Просто напишите. 
 
Artyom Trishkin:
Просто напишите. 

Артем, ты не понимаешь, народу нужна кнопка "Бабло":) А тут про разные OLAP пишут... Когда же описание кнопки-то будет...   

 
Vasiliy Sokolov:

Артем, ты не понимаешь, народу нужна кнопка "Бабло":) А тут про разные OLAP пишут... Когда же описание кнопки-то будет...   

Самая сложная статья про такую кнопочку ;)
 
Vasiliy Sokolov:

Артем, ты не понимаешь, народу нужна кнопка "Бабло":) А тут про разные OLAP пишут... Когда же описание кнопки-то будет...   

да зачем, народу нужны просто красивые кнопочки и словеса

 
Artyom Trishkin:
Просто напишите. 

Вот я просто и  пишу, что последнее время стали преобладать статьи не про трейдинг, а про программирование вторичных вещей (сервисы по обработке готовых результатов трейдинга и прочее), не связанных с анализом динамики рынка.

Это конечно, тоже нужно, но главная задача - это сам трейдинг, поиск алгоритмов входа в рынок (и программирование этих алгоритмов).

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