Need help! Не решается задача, упираюсь в ограничения железа - страница 13

 
Candid:
Видимо одним из результатов прохода с одной датой является новая дата.

Если новая дата = следующая последовательность, ну и ладно. Если она идет последовательно. Блин, тафтология. В смысле следом.

Можно заранее читать пачку, они мелкие же будут.

А даже и не следующая, какая разница. Проиндексировать и вызывать по необходимости.

 
Urain:

to Komposter: Андрей, если ты упёрся в проблему размерности значит ошибка в постановке задачи.

Тут три варианта: 

1 подумать самому

2 раскрыть задачу в паблике

3 раскрыть задачу в личку (каждому кого считаешь в силах решить и доверяешь неразглашение)

Поясню о чём я: если ты сохраняешь новости то можно писать стринги всей новости, а можно сделать шифрование типичных фраз (сжатие), "Account balance" превращается в 1,  "Account equity" в 2 итд. Другой вариант типичной проблемы желание заполнять данные уже отсортированными, для больших размерностей это смерти подобно, проще дописывать в конец и делать условную сортировку по индексам.

Думаю понятно что я хочу сказать говоря что ошибка в постановке задачи. 

Я бы поразмыслил над этой задачей
 
Поскольку задача довольно академическая (смахивает на вопрос при приеме программера на работу) и многие проявили к ней интерес, почему бы не сформулировать её более строго в плане формата описания исходных данных, и все желающие могли бы себе нагенерить 20 Гигов тестовых данных и представить свое практическое решение?
 
так понимаю, речь идет о самопальном тестере/оптимизаторе?
 
joo:
так понимаю, речь идет о самопальном тестере/оптимизаторе?

не, там что то другое.

видать база сделок какого-то брокера/провайдера досталась. :)

 

повторю задачу упрощенно

- берём группу ордеров за М минут (X+Y штук)
- берем X первых сделок.
- расчитываем некий критерий Кx (например профит=100 или еще что). задаем допустимое отклонения D от критерия.
- проверяем оставшиеся Y сделки группы. Если их расчитанный критериий Ky имеет отклонение не более D от Kx, то группа ордеров нам подошла.

а вот что дальше с этой группой выявленной делать - нам не известно. и наверно не узнаем, инсайдерская инфа :)

может это дц хочет сливать клиентов, а может наоборот...  исследование по психологии.

 
sergeev:

повторю задачу упрощенно

- берём группу ордеров за М минут (X+Y штук)
- берем X первых сделок.
- расчитываем некий критерий Кx (например профит=100 или еще что). задаем допустимое отклонения D от критерия.
- проверяем оставшиеся Y сделки группы. Если их расчитанный критериий Ky имеет отклонение не более D от Kx, то группа ордеров нам подошла.

а вот что дальше с этой группой выявленной делать - нам не известно. и наверно не узнаем, инсайдерская инфа :)

может это дц хочет сливать клиентов, а может наоборот...  исследование по психологии.

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

До сих пор остается загадкой - что нужно искать? каким должен быть результат всех операций? Если речь о принятии решения в плане открытия/закрытия ордера, то любая обработка такого объема будет занимать достаточно большое кол-во времени.

Я вижу эффективность лишь в агрегировании данных и применении вероятностного подхода.

Можно ведь и корреляционные коэффициенты рассчитать между тем что имеем и совокупностью истории сделок, и "зашить" их в робот, без использования в дальнейшем БД.

Другой момент еще. Раз речь идет о сделках, может быть есть смысл выделить отдельно сделки по каждому инструменту? И написать однотипных роботов, заточенных под EURUSD, USDJPY и т.д. 

 
Кстати, задумка-то интересная... прибыльных сделок нагенерировать можно сколь угодно, проанализировав дневки (High/Low) на минутках, и запомнив время цены открытия и закрытия (в файл). Затем написать эксперт, читающий файл, при совпадении даты и времени - открытие/закрытие сделок, и прогнать в тестере. Я такое делал для одного клиента, желающего раскрутить продажи своего робота. И уже совершенные сделки анализировать подобным образом )).
 
sergeev:

а вот что дальше с этой группой выявленной делать - нам не известно. и наверно не узнаем, инсайдерская инфа :)

 Сдается мне таким образом можно выявить лишь стратегию, которая использовалась для торговли (или набор параметров робота) данной последовательности, и перейти к ней в определенной ситуации на рынке.

 
marketeer:
Поскольку задача довольно академическая (смахивает на вопрос при приеме программера на работу) и многие проявили к ней интерес, почему бы не сформулировать её более строго в плане формата описания исходных данных, и все желающие могли бы себе нагенерить 20 Гигов тестовых данных и представить свое практическое решение?
Поддерживаю. Задачка не тривиальная, интерес растет.