Мифы о программировании.
Недавно прошла робоконфа на Дерексе, где я был модератором круглого стола с частными алготрейдерами. В том числе обсуждался вопрос про языки программирования.
Существует легенда, что чтобы быть конкурентным алготрейдером надо писать исключительно на низкоуровневых языках, а еще лучше паять алгоритмы сразу в виде платы.
Это полная ерунда. Придуманная для отмазок теми, кто ничего не хочет делать.
Переход на более низкоуровневые языки нужен для того, чтобы зарабатывать БОЛЬШЕ денег. Рабочую стратегию можно написать даже в экселе. И да, если у нее много сделок, то совершенствование кода позволит зарабатывать больше.
Тут вот в чем беда для начинающих крутых программеров. В 2005-2009 годах на алго поднимались сумасшедшие деньги. На эти деньги покупалось в том числе развитие, то есть инфраструктура, серверы, разработки и ресерч. Эти люди сейчас лидеры HFT рынка. У них УЖЕ все есть, а у вас нет). От конкурентов они защищены тем, что сейчас норма доходности стартапа нового проекта будет достаточно низкой. То есть сейчас, чтобы быть в топе HFT надо вложить кучу денег, а прибыль от этих денег во первых, не факт, что появится, а во вторых не так уж и много, как мечталось бы. А самое главное, это сроки!!! Прибыль пойдет не скоро.
То есть начинать с цели быть техническим топом бессмысленно.
В противовес, можно начинать с логических стратегий. Так, например, у меня на одном из счетов несколько лет крутится робот, чья инфраструктура полностью написана на 1С. Не меняются параметры, ничего не оптимизируется, все живет как и много лет назад и зарабатывает.
Этот робот будет работать и на Эксел, и на купайл и на Блокноте.
Мораль. Не ипите себе мозг ассемблером, создавайте стратегии.
строка 69: Missing ) [LOGDATA(«Order»,POPER & PPRICE)]
Язык С#.
Платформа Stock#.
Наехали и на то и на другое)))
www.itu.dk/people/sestoft/papers/numericperformance.pdf
Вывод очевиден: если ваш алгоритм незначительно улучшается от выигрыша в десятки микросекунд ( а то и меньше), то есть ли смысл? Я для себя давно решил, что нет. В моих стратегиях микросекунды не решают ничего.
А так — ну ляпнул что-то, ну молодец.
Знаете, почему 1С ники зарабатывают много, хотя работа не бей лежачего? Да потому что язык — гавно на палке, проще нервы сберечь и писать на признанных технологиях.
Т.е. на C#/С++ писать не только эффективней, но и ПРОЩЕ
2) Из самой логики арбитража — там же нет супер умных стратегий — там кто успел, тот и съел, стратегии примитивные, главное скорость. Феникс опять всем засирает мозг. Робот-роботу рознь. Для одних скорость важна, для других — нет. Да и рынок рынку — рознь. На РТС может и не так важно, на западных рынках — изволь
3) На зло Фениксу еще раз пропиарю отличный сервис он-лайн котировок RuTicker.com. Недавно в кластерах по многочисленным заявкам добавил так же выбор времени (если анализ внутри одной даты)
ну или как вариант разработал бы свой бухгалтерский софт на «признанных технологиях»
1) Язык — гавно на палке? оОчень интересное определение. Вы вообще инфраструктуру предприятия когда последний раз поднимали?
Трейдер если обладает какой-то стратегией, то это совокупность понимания рынка и рисков которые он на себя берет, а зарабатывать да, можно и руками вводя ордера раз в день и у пендосов, примеры есть :)
По поводу железок как раз. У меня пару роботов крутятся на 1 серве через виртуальные машины. Периодически пропадает канал интернета. Соответственно вечером когда я прихожу домой меня встречает лось. Он рогами бьет мне по голове и говорит, что есть второй канал интернета и его надо как аварийный подцепить.
Как у вас это сделано? В датацентрах стоитесь или резервируете как то?
У меня сайты на VDS в HETZNER лежат. Но может какой то другой лучше будет
2 года не оптимизируете робота, это трендовик?
2. Да, больше похоже на то, что называют трендовиками.
как кодер на асме могу сказать, что знание асма лишь помогает лучше понять, что делает машина, а кодить торговую стратегию на асме — глупо (нейтив С — фактически один хрен, что асм). С++ хорош тем, что под него большая база наработок, но шарп изначально обвязан «халявчиной», то есть кодить «тело» быстро и удобно, а публичные наработки в области трейдинга сейчас, полагаю, под шарп в основном и идут. Одна проблема, надо хорошо понимать что такое ООП, а это требует серьёзных усилий со стороны «не программиста» по специальности.
«Exel» vs «C++/C#» это СОВСЕМ не одно и то же, что C++/asm.
На асме сейчас пишут разве что для embdedded, т.к. прирост производительности мизерный. На Экселе же будет работать медленней в сотни раз.
робот в виде платы ???
Кстати я бы хотел чтоб и топикстартер пояснил что он имел ввиду?
мне как инженеру начавшего свою труд. деятельстность с разработки девайсов на микроконтролерах(соотв. и плат для них и того самомого асм для их кодинга) это очень(искренне) интересно!
но хоть убей не пойму как это можно прикрутить к бирже на нынешнем этапе её развития?
ну а что сложного ))) поставить на плату какой-нибудь ARM, запустить на нем WinMobile, а в ней запустить Quik )))
И воткнуть это всё по Ethernet-у в роутер/свитч )))
Жаль, протокол подключения к серверу не раздают, а то бы можно было вообще каким-нибудь AVR обойтись )))
А топикстартер просто поиронизировал над мифами :)
Это конечно миф уже из несколько в другой плоскости…
С С++ я думаю всетаки посложнее будет, в плане управления памятью и другими особенностями языка. Лучше Яву тогда)