Здравия коллеги.
недавно уже писал, что пишу робота долгосрочника. промежуточные результаты в которых использовался дневной ТФ и всего 5 эмитентов — комп считал около 2 суток, показали очень впечатляющие результаты, и решил я проверить работу всех алгоритмов на большем количестве баров с большим количеством инструментов… уже несколько дней комп на ладан лышит, надеюсь к понедельнику выдаст результат…
никогда не думал что достигну предела возможности своего компьютера..
запрограммировал «пред» робота на тестирование различных вариантов, и… он ушел в бесконечное думание… конечно не бесконечное но это что то с чем то.
имеем:
~ 260 000 баров истории на каждом инструменте 4 года тф 5мин
20 инструментов
20 вариантов тестирования для каждого инструмента и каждого бара
на каждом баре в каждом варианте тестирования производится ~ 100 математических операций.
в итоге:
260 000 баров * 100 операций в варианте * 20 вариантов * 20 инструментов = 10 400 000 000 математических операций.
но это только начало! ведь мало просто что то вычислить, необходимо это проанализировать, сравнить между собой инструменты, выявить лучший вариант, рассчитать под лучший вариант объем позиции, сделать записть сделки, внести ее в массив и потом на каждом баре отслеживать все открытые сделки по всем 20 инструментам...
в общем суммарно операций где то под 100 миллиардов набирается..
вот он потолок моего компа… ибо комп мой уже даже не тихо а во все горло посылает меня в долгую интимную дорогу, выделяя практически все ресурсы под этот анализ и «умирая» на от нескольких дней до пары недель..
вот такие проблемы иногда встречаются при автоматическом тестировании идей.
ручками такое сделать вообще нереально.
Всем профита и веселых выходных!
PS ВСЕМ БОЛЬШОЕ СПАСИБО! подсказали в чем затык.
Я так свой первый алгоритм тестировал на истории, часов по 10-12 комп иногда считал. Потом детальнее начал рассматривать граальные результаты — оказалось, что допустил типичную ошибку «заглядывания в будущее» :)
2 не пойму зачем так сложно… все равно результаты надо обработать человеку…
3 а теперь поменяй бай и селл местами и опять запусти оптимизацию… если получшь хороший варианта бота наоборот — выкинь бота сразу со всей переоптимизацией
1 — ни одна их текущих платформ не способна работать с моими алгоритмами ((( там идет проработка нестандартных таймфреймов, тестер на лету их создает и делает вычисление по ним.
2 — да все вроде просто… однако когда эту простоту переводишь на машинный язык получается задница
Современная техника и не такие массивы обрабатывает, хотя если комп PentiumII или III? тогда да, может и техника).
Ищите ошибку у себя, а не в техническом оснащении.
тут нет ошибки, тут банальная моральная старость техники..
помимо всего система содает кучу файлов и в каждый ведет запись определенных результатов.
Вот у меня комп
imglink.ru/show-image.php?id=5ff6e9773b74a940bd20b649cb6509b0
update: Извини, не посмотрел, что уже почти 2 месяца прошло.
улыбнуло ))
я пишу средне — долгосрочного робота.
так или иначе на рынке есть некие закономерности, которые отрабатываются в той или иной степени вероятности, такое отрабатывается очень хорошо..
как пример — почитайте мой блог тут на смарте, я даю по РИ текущие уровни и вектора потенциального движения (дневки)
в течение месяца было дано 7 векторов и все они отработаны на 100%
У многи х же, особенно «ручных» трейдеров может быть иначе..
… из какой-то гуру-книжки)
Так что скину, но завтра-послезавтра… как узнаю у него что за автор, ок?
Итого, Роджер Сайп «Развитие мозга. Как читать быстрее, запоминать лучше и добиваться больших целей»
lib.rus.ec/b/513588/read
Вероятно, что-то Вас с алгоритмом не то, а уж если и операции с диском, то не пишете сразу, открывайте/сохраняйте по потребностям, посмотрите perfmon увидите где затык, может у вас диск узкое место, или память.
итого 30 000*9*17 = 4 590 000 «щелчков робота» за этап.
в «щелчке» приходит свечка, анализируется, принимается решение, делается сделка, считается по сделке бюджет и статистика — ясно что там не одна операция.
и таких этапов за день просчитывается около 10 000
т.е. всего 45 900 000 000.
но проц помощнее (i7) и считается всё многопоточно, хотя на ночь больше двух потоков не ставлю, чтобы не шумело.
честно говоря вначале тоже радовался что проц грузится хорошо. а потом занялся профилированием и оптимизацией.
«щёлкать» стало гораздо быстрее :)
пусть железные мозги работают на полную! за них уплочено.
У меня ноут, достаточно мощный, я за него иногда переживаю, не загнется ли. Но максимум, что считал это 12 часов, раскаленный как печка стал, но вроде выжил.
У вас генетика или просто брутфорс, или монте карло?
И на чем тестите кстати? Самопис или на готовых прогах та?
Аналогично тоже тестирую на Metatrader 5, правда не такими масштабами.
Недавно попробовал ихнюю MQL5 Cloud Network, вышло 18 тыщ проходов на 6 минутках, с июня 2013 по март 2015, примерно за 10$ чужих процессорных ресурсов и полчаса времени. На своем ноуте с Core i7 и 8 ядрами такое бы дня за 4 вычислил.
А потом подтверди стейтом с ЛЧИ.
Но миллиард рублей виртуальные и за прошлый период… увы!
какое ПО исполняет (или чем откомпилировано) вашу задачу подсчета?
Поэтому все что можно при этих вычислениях хранить лишь в оперативке, если уж совсем не удается обойтись без обращения к дискам (к примеру при использовании сторонних программ которые вы не можете оптимально переписать) то тогда эмулировать дисковые накопители в оперативной памяти.
вот к примеру один из неплохих подобных эмуляторов RAMDRIVE www.ltr-data.se/opencode.html/#ImDisk
Когда в школе учился, лень было писать на ассемблере программы, писал на паскале, но потом редактировал(оставлял 10% написанного кода) и заново на перфокарты, скорость была в 2 раза быстрее чем на паскале, все дело в правильном коде и выбор алгоритма. ))))
я оптимизирую разность потенциалов между таймфреймами ))