LINUX.ORG.RU
ФорумTalks

Открываю исходники платформы разработки торговых алгоритмов

 , , ,


30

18

День добрый сообществу.

Я занимаюсь автоматизацией торговли и аналитикой финансового рынка (роботостроительство/алготрейдинг) и планирую открыть часть своего наработанного инструментария для совместной разработки и обмена опытом в технических вопросах. Больше всего меня интересует имеются ли подобные специалисты на ЛОРе, интересует ли кого-либо подобное сотрудничество.

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

Поэтому для себя я создал цепочку проектов для разработки, тестирования, оптимизации и использования торговых систем. В данный момент проект берет котировки у швейцарского банка и торговой площадки Dukascopy. Качество котировок изумительное у них, скажу я вам. Все честно, открыто и качественно. Далее эти котировки попадают в БД под управлением postgreSQL. Сразу нарезаются на всяческие TF, графики Renko, хранятся в чистом виде (тики), есть поддержка гибридных TF (например S441 = 441 second), а так же прочая экзотика. Те кто серьезно занимается роботостроительством поймут зачем все это. Так же, систему очень легко расширить добавив новые правила формирования данных, например таких как квантовые графики, скоростные графики и прочее.

Основной примочкой системы является гибкое использование разнообразных сущностей классического и продвинутого тех. анализа. Поясню на примере написания простейшего торгового алгорима:

Простейший пример торгового алгоритма - это класс, наследующий все необходимые базовые примочки у родителя пустого торгового алгоритма. Класс имеет инициализационный конструктор, а так же ряд методов аля newTick(double bid, double ask, long time), newBar(Bar previous), newEvent(Event e)... У торгового ядра есть легко расширяемый ряд примочек. Существующие примочки: легкое и гибкое извелечение всяческой информации о исторических ордерах (реальных с торгового сервера, демо-ордеров при тестировании, вирутальных ордеров), поддержка библиотеки тех. анализа TA-LIB, построители графиков, анализаторы отчетов (мат. ожидание, профит-фактор, дисперсия, среднеквадратическое отклонение, процентные соотношения, анализ доходности по теории Винса, Вильямса). Поддержка смешанных и скрещенных алгоритмов, возможность подключение бриджов для разнообразных брокеров, дубликаторов сигналов (для цепочки инвестиционных счетов), подключение систем к гибко-конфигурируемым генетическим алгоритмам с целью оптимизации, выполнение полного перебора и прочий инструментарий. Легкое использование трала или другого функционала (например, перевода в безубыток):

Position p = trader.buy(Instruments.EURUSD, ...);
p.addTrailingStop(Indicators.ParabolicSAR(0.001, ...), ...);

Все это я разрабатывал чисто для себя и добился довольно серьезного уровня понимания специфики, технологий и обеспечил существенный финансовый доход. Однако, со временем я начал ощущать, что варюсь в собственном соку хоть и всячески стараюсь читать книги/статьи... Я ищу партнеров с которыми можно будет обмениваться техническими тонкостями, создать какого-то рода узкое сообщество по интересам, а так же выпиливать удобные инструменты для работы. Развиваться, смотреть что люди делают в мире. Буду рад услышать мнение от профессионалов, любителей и совсем новичков подобного рода деятельности.

База: Java + TA-LIB + postgreSQL. Java была выбрана из-за специфики использования автоматизированных торговых систем на разнообразных ОС, а так же из-за интерфейса API торговой площадки Dukascopy.

Еще имеется ряд дополнительных инстурментариев для экзотического анализа и выполнения специфичеких операции: нейросеть распознавания образов, алгоритмы паттерн-матчинга, системы дублирования торговых операций, генераторы отчетов, генераторы детальной информации о точках входа, специфические тестеры точек, анализаторы фундаментальных событий на базе fuzzy logic, календари экономических событий и прикладной софт, анализаторы качества котировок, анализаторы волатильности, визуализаторы работы нейросети/ГА, утилиты для анализа и визуализации ценового стакана. Все не вспомню сейчас, но многое согласен открыть при условии совместного активного развития проектов.

Подготовку исходников и открытие проекта планирую на конец текущего года. Конечно, при условии позитивного резонанса сообщества.

Приглашаю для обсуждения всех, кто некоторым образом интересовались подобной спецификой в предыдущих тематичных топиках:

ixrws winddos ZenitharChampion Root-msk ns_ramesses Made_in_China inline X10Dead qrck iBliss Kroz capricorn20 trex6

Ответ на: комментарий от Kroz

Когда жралка на ножках переводит продукты на говно, она не создает ничего полезного для человечества. Хотя некоторые считают, что она стимулирует спрос в экономике.

Vit ★★★★★ ()
Ответ на: комментарий от ZuBB

Здесь также запостите. может кто из подписавшихся увидит

Спасибо, написал.

observer ★★★ ()
Ответ на: комментарий от XVilka

Проект TFX, значиться.

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

sergey_vp

observer ★★★ ()
Ответ на: комментарий от prischeyadro

Мои интересы - адаптивные алгоритмы...

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

observer ★★★ ()
Ответ на: комментарий от observer

да, я понял разницу, когда нашел. Сообщение писал, когда что-то в памяти смутное было.

XVilka ★★★★ ()
Ответ на: комментарий от observer

Есть желание присоединится к проекту?

Со временем тяжко

Deleted ()
Ответ на: комментарий от Kroz

Ты не подумал о том, что, если он продал, значит кому-то это было нужно, а значит кому-то он оказал услугу?

Только тот мог купить по 1600, а не 1800.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

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

Ну а спекулянт купил у производителя его товар месяц назад (покрыв тем самым расходы на производство), обеспечил хранение и продал сегодня добавив % за свою услугу.
Если бы его не было, то клиенту пришлось бы заказывать товар у производителя (возможно даже дороже чем он бы купил у спекулянта) при этом ждать пока он будет готов.

winddos ★★★ ()
Ответ на: комментарий от KivApple

Только тот мог купить по 1600, а не 1800.

А почему не купил?

Kroz ★★★★★ ()
Ответ на: комментарий от KivApple

Только тот мог купить по 1600, а не 1800.

ССЗБ. Надо было покупать когда стоило 1600. Цена одна для всех.

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

observer ★★★ ()
Ответ на: комментарий от observer

Динамический, подстраивающийся под рынок алгоритм?

Основная идея - по Хэммингу, множество линейных преобразований можно описать при помощи соответствующего множества FIR-фильтров, в том числе это касается подмножества преобразований, которые из линейной комбинации известных отсчётов вычисляют наиболее вероятные будущие отсчёты. Вся адаптация алгоритма заключается в подборе подходящих коэффициентов фильтра. Это называется «линейное предсказание», оно прекрасно работает в технических системах, в алгоритмах сжатия речи, например.

Что касается рынка, то я поразмышлял немного, и мне кажется, с тех времён, с каких известно линейное предсказание (60-е годы), её должны были прикрутить к торговле на бирже со всех сторон, и сделать давным-давно тем самым декорреляцию всех измеримых индикаторов и курсов. И если вдруг где-то корреляция возникнет, боты с адаптивными алгоритмами в той точке немедленно перекосят рынок обратно.

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

В общем, после чтения оп-поста мысли зашевелились, так что не бросайте это дело.

prischeyadro ★★★☆☆ ()
Последнее исправление: prischeyadro (всего исправлений: 1)
Ответ на: комментарий от prischeyadro

Шикарно. Думаю, сработаемся. Буду держать в курсе событий.

observer ★★★ ()
Ответ на: комментарий от observer

Надо было покупать когда стоило 1600

А по 1600 уже не было, потому что купил справедливый спекулянт.

Xellos ★★★★★ ()
Ответ на: комментарий от Xellos

В данный момент только на торговой площадке Dukascopy ликвидность золота 28К тройских унций в любую сторону в каждом тике.

observer ★★★ ()
Ответ на: комментарий от observer

При желании провести операцию, ликвидности хвататет.

observer ★★★ ()
Ответ на: комментарий от observer

Кстати, для подобной штуки придумали лохотроны

Починил, не благодари.

red_eyed_peguin ()
Ответ на: комментарий от observer

Это в реальной жизни - купил справедливый спекулянт, и ты совершенно спокойно можешь искать по 1600. В виртуальной - биржевой - как только начинают покупать справедливые спекулянты, цена почему-то растёт. И те, кому нужен продукт, не золото, а горючее, злаки, овощи, металлы, те люди, которые хотят в отличие от справедливых спекулянтов произвести из сырья продукт, покупают сырьё дороже. А потом я прихожу в магазин и вижу, что молоко подорожало. А когда возвращаюсь из магазина домой, на канале для справедливых людей РБК мне рассказывают, что экономика в стране выросла, вон, на биржах цена молока поднялась.
«Справедливо - это когда у меня есть деньги, а у тебя нет, и ты их у меня просишь»

Xellos ★★★★★ ()
Ответ на: комментарий от Kroz

А почему не купил?

Ты меня удивляешь. Не купил, потому что тогда в этом товаре потребности не было. А вот спустя неделю понадобилось, а он по 1800, потому что какой-то мудак решил навариться. Ты, судя по всему, разницу между спекулянтом и посредником не осознаешь?

red_eyed_peguin ()
Ответ на: комментарий от red_eyed_peguin

Спекулянты никогда не поднимут цену с 1600 до 1800.

observer ★★★ ()
Ответ на: комментарий от observer

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

observer ★★★ ()
Ответ на: комментарий от red_eyed_peguin

Если честно, мне уже поднадоедает...

А вот спустя неделю понадобилось, а он по 1800, потому что какой-то мудак решил навариться.

Нет, потому что рыночная цена теперь установилась на 1800. Ты сейчас мне будешь рассказывать что «спекулянт и установил рыночную цену». Ничего подобного. Спекулянт - один из участников рынка, такой же как и производитель, посредник, покупатель и т. п. О принципах установления рыночной цены, давай, не будем, потому как на этот счет написано немало книг.

Еще раз. Спекулянт - это тот, кто покупает, потом продает: через некоторое время или некоторое расстояние. Он хорош тем, что предоставляет возможность купить, и предоставляет возможность продать. Его прибыть - плата за хранение или перевозку (если материальный товар), плата риск, который он несет все время между покупкой им продажей - вполне справедливо, не так ли?

Kroz ★★★★★ ()
Ответ на: комментарий от red_eyed_peguin

Когда люди говорят, что спекулянты - зло - не вопрос, не покупайте у них, покупайте у других. Спекулянты никогда не скупят «скупил всю соль в мире», всегда есть производители, посредники и т. п. Если человек покупает у спекулянта - на то есть причины: либо у него это сделать легче (не так далеко ехать, проще операция, лучше условия, да и просто быстрее), либо человек банально ленится поднять свой зад чтобы проехать чуть дальше или поинтересоваться другими предложениям (последнее - типично для многих людей). Выбор всегда есть.

В твоем примере - покупай у банка, который предложит те же 1800, да еще мозги вынесет бумажной волокитой. Кстати - банк - тот же спекулянт, особенно при операциях с валютой; или ты думаешь у них за ширмой печатные станки для долларов?

Все. Если этого объяснения не достаточно, мне вас искренне жаль!

Kroz ★★★★★ ()
Ответ на: комментарий от Kroz

Его прибыть - плата за хранение или перевозку (если материальный товар), плата риск, который он несет все время между покупкой им продажей - вполне справедливо, не так ли?

Лолшто??? Ты путаешь спекулянта с посредником/оптовым закупщиком. Иди учи азы, грамотей фигов.

red_eyed_peguin ()
Ответ на: комментарий от red_eyed_peguin

А ну-ка, приведи пример спекулянта, который не выполняет ни перевозки, ни хранения и не несет рисков девиаций цены во времени.

Kroz ★★★★★ ()
Ответ на: комментарий от Xellos

> Спекулятивные операции устанавливают справедливую цену

Какой вы однако забавный.

Какой вы однако неграмотный.

O02eg ★★★★★ ()
Ответ на: комментарий от Kroz

Кстати - банк - тот же спекулянт, особенно при операциях с валютой; или ты думаешь у них за ширмой печатные станки для долларов?

Хуже, у банков за спиной УК, АК и НК.

O02eg ★★★★★ ()
Ответ на: комментарий от ak372771

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

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

Нет ничего хорошего в том, что владельцами переоценённых в десятки раз ценных бумаг станут в конечном итоге лохопеды, которые не успели вовремя подсуетиться. Компании скидывают долги по своей деятельности на вот таких вот миноритариев, миноритарии теряют свои кровно заработанные средства к существованию (или честно отнятые у населения, ведь лохом может быть и госфонд, например пенсионный или соцстрах). И что дальше? Тадам! Акционеры-лохопеды оказываюся в зависимости от компаний, то есть от любой структуры, у которой, в отличие от них, есть деньги. Это касается и личной и общественной жизни. Кто-то остается без штанов из-за деятельности компаний, которые выйдя на IPO, сняли с себя ответсвенность за результат своей деятельности, и разделили ее с лошками. А почему бы и не разделить? Ведь это рулетка - либо выиграл, либо проиграл, это рынок, тут никто никому ничего не должен. В итоге, акционер рискует оказаться без средств к существованию. А что происходит с человеком/организацией/государством у которого нет средств к существованию? Правильно, таким объектом можно лего управлять, другими словами - манипулировать. Тут двойной профит - и деньги забрали, и манипулировать опущенными людьми гораздо легче.

А манипулирование - оно очень интересное занятие, особенно человеком, который привык к деньгам. Можно его уговорить на какую-нибудь еще авантюру, можно сыграть на привычке к роскоши, можно обосновать взять еще один займ, и, возможно, не из своего кармана. Открывается много вариантов.

Но вас это конечно не касается. Вы ведь заняты тем, чтоб математикой обезопасить себя от такого финала. И я уверен, у вас все получится.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

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

И если бы не было биржи, то они бы просто ушли в другое место: мошенникам на фейковый бизнес, на переоцененную недвижимость или владельцам очередного казино/тотализатора.
Человек который начинает торговать с целью «быстро удвоить бабло» ССЗБ.
Это примерно тоже самое, что идти в казино ради заработка.

winddos ★★★ ()

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

ugoday ★★★★★ ()
Ответ на: комментарий от ugoday

http://www.hirobot.ru/

Все эти алгоритмы убыточные.

Если даже и выложить реально доходный алгоритм в сеть, он со временем станет убыточным. Да и выкладывать их нету никакого смысла, есть правда одно исключение. Иногда выкладывают условно доходных роботов (алгоритм, который фиксирует какую-то временную закономерность) для специфического брокера. Люди в ажиотаже вкладывают все деньги в систему, в результате закономерность теряет силу и робот сливает все деньги. Брокер зарабатывает на спрэде/комиссии.

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

http://robostroy.ru/faq/library/

http://www.investopedia.com/university/systemcoding/#axzz247Qo07t6

observer ★★★ ()
Ответ на: комментарий от ugoday

Если интересно, могу абстрактно описать профессию и будни роботостроителя)

observer ★★★ ()
Ответ на: комментарий от stave

Фейсбук изначально выставил акции по завышенным ценам, но хомячки повелись.

Плюсую.

IPO практически всегда предполагает последующее устаканивание с резкими скачками. Есть цена, а есть ценовая претензия.

ak372771 ()
Ответ на: комментарий от observer

Я, собственно, теорией и интересуюсь. Ссылки сохранил, спасибо.

ugoday ★★★★★ ()
Ответ на: комментарий от Xellos

рынок очень справедлив: он не позволяет большинству зарабатывать

Какая забавная логика у спекулянта.

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

ak372771 ()
Ответ на: комментарий от Xellos

Спекулятивные операции устанавливают справедливую цену

Какой вы однако забавный.

Внезапно он совершенно прав. Только так. Когда одна часть толпы очень хочет купить подешевле, а другая - очень хочет продать подороже. А не сотрудник Госкомцен (так, кажется, это называлось), сидящий у себя в кабинете в центре Москвы.

ak372771 ()
Ответ на: комментарий от Xellos

И что?

Давайте еще Соборные уложения вспоминать будем и за богохульство смертную казнь восстановим.

ak372771 ()
Ответ на: комментарий от red_eyed_peguin

Не нужно быть семи пядей во лбу, чтобы понимать, что биржевые спекулянты приносят пользы еще меньше, чем бродячие собаки во дворе.

Вам могу повторить ровно то же самое: ознакомьтесь с основами, с принципами макроэономики, а потом высказывайте свое мнение в данных вопросах.

А для вас еще дополнительно - пяди лба придется-таки отрастить. До начала ознакомления. Иначе не поместится.

ak372771 ()
Ответ на: комментарий от prischeyadro

А насчёт «денег, отнимаемых у трудового народа» - если трейдеры перестанут отщипывать копейки с огромных оборотов огромных контор

А вы попробуйте, ради спортивного интереса, поотщипывать лет пять, чтобы на эти деньги жить можно. После этого линия раздела народа на трудовой и нетрудовой в вашей голове очень сильно переместится. Я гарантию это. Более того, после этого вы набьете морду тому, кто намекнет, что ваша пашня была «нетрудовой спекуляцией».

ak372771 ()
Ответ на: комментарий от ugoday

Во-первых, как мне кажется, профессия подходит только программистам-математикам. Будни роботостроителя совсем не похожи на будни рядового программиста. Самая важная разница профессий заключается в том, что программист всегда делает то, что ему нужно: по ТЗ, создавая инструменты для себя, for fun, решая задачки для повышения квалификации... Другими словами, он почти всегда (за исключением научных экспериментов) добивается своего. Роботостроитель же постоянно терпит неудачи, единственная стабильная радость - это создание полезного инструментария. В среднем, каждый 40-ый алгоритм оказывается пригодным к использованию и это при условии, что постоянно учишься и делаешь выводы.

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

В-третьих, нужно быть помешанным и ненормально целеустремленным. Встречается масса проблем на пути. Тролли как в этом трэде постоянно встречаются по жизни. Благо, есть команда партнеров и единомышленников.

observer ★★★ ()
Ответ на: комментарий от observer

Еще интересная специфика профессии: все нужно переосмысливать самому. Интернет перестает быть советчиком. Большинство книг и статей - пустая трата времени.

observer ★★★ ()
Ответ на: комментарий от observer

Резюмируя. Это очень специфическая и сложная работа, способна открыть уникальные возможности. Молодая профессия, появилась относительно недавно: в США в середине 2000-х.

observer ★★★ ()
Ответ на: комментарий от ak372771

Труд бывает производительный и непроизводительный. Если кто-то с утра до ночи откапывает лопатой ямы, а потом их закапывает, то это очень тяжело, но ещё не повод относиться к такому труду с уважением.

prischeyadro ★★★☆☆ ()
Последнее исправление: prischeyadro (всего исправлений: 1)
Ответ на: комментарий от prischeyadro

Если бы это был непроизводительный труд, он бы с него дохода не имел.

O02eg ★★★★★ ()
Ответ на: комментарий от O02eg

Если кто-нибудь начнёт платить за выкапывание и закапывание ям - этот труд станет производительным? Производительность и доход ортогональны.

prischeyadro ★★★☆☆ ()
Ответ на: комментарий от prischeyadro

Если кто-нибудь начнёт платить за выкапывание и закапывание ям - этот труд станет производительным?

Да, значит есть кто-то, кому надо что-то перекопать.

Производительность и доход ортогональны.

Тогда определите производительность не через полезность и ценность.

O02eg ★★★★★ ()
Ответ на: комментарий от O02eg

Доход и ценность (в том числе производительный труд) ортогональны. Социальные пособия неграм тому пример.

prischeyadro ★★★☆☆ ()
Последнее исправление: prischeyadro (всего исправлений: 1)
Ответ на: комментарий от prischeyadro

Для этих людей доход и ценность это синонимы.

Xellos ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.