fenix-fx
fenix-fx личный блог
11 сентября 2012, 13:35

Мифы о программировании.

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

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

Это полная ерунда. Придуманная для отмазок теми, кто ничего не хочет делать.

Переход на более низкоуровневые языки нужен для того, чтобы зарабатывать БОЛЬШЕ денег. Рабочую стратегию можно написать даже в экселе. И да, если у нее много сделок, то совершенствование кода позволит зарабатывать больше.

Тут вот в чем беда для начинающих крутых программеров. В 2005-2009 годах на алго поднимались сумасшедшие деньги. На эти деньги покупалось в том числе развитие, то есть инфраструктура, серверы, разработки и ресерч. Эти люди сейчас лидеры HFT рынка. У них УЖЕ все есть, а у вас нет). От конкурентов они защищены тем, что сейчас норма доходности стартапа нового проекта будет достаточно низкой. То есть сейчас, чтобы быть в топе HFT надо вложить кучу денег, а прибыль от этих денег во первых, не факт, что появится, а во вторых  не так уж и много, как мечталось бы. А самое главное, это сроки!!! Прибыль пойдет не скоро.

То есть начинать с цели быть техническим топом бессмысленно.

В противовес, можно начинать с логических стратегий. Так, например, у меня на одном из счетов несколько лет крутится робот, чья инфраструктура полностью написана на 1С. Не меняются параметры, ничего не оптимизируется, все живет как и много лет назад и зарабатывает.

Этот робот будет работать и на Эксел, и на купайл и на Блокноте.

Мораль. Не ипите себе мозг ассемблером, создавайте стратегии.
94 Комментария
  • smb
    11 сентября 2012, 13:44
    хочу пример робота на блокноте! ))
    • vfreeman
      11 сентября 2012, 14:37
      smb, пожалуйста smart-lab.ru/blog/75196.php
      • Spekyl
        11 сентября 2012, 20:36
        vfreeman, не работает

        строка 69: Missing ) [LOGDATA(«Order»,POPER & PPRICE)]
    • Werner Heisenberg
      11 сентября 2012, 17:04
      smb, все пишется в блокноте ;) Вообще ВСЕ!
    • Werner Heisenberg
      11 сентября 2012, 17:05
      Прошу на qpile и вообще то все устраивает. Что не устраивает то придумываю. И снова все устраивает.
  • Dr-Loss
    11 сентября 2012, 13:47
    Полностью согласен!
  • Mikhail Sukhov
    11 сентября 2012, 14:37
    Да никто себе мозг и не парит. Пишут на купели, ами в основном. И конечно же stocksharp.com =)
      • Mikhail Sukhov
        11 сентября 2012, 14:43
        fenix-fx, ха-ха. Стокшарп — это платфома, а не язык. Учи матчать =))
          • Mikhail Sukhov
            11 сентября 2012, 14:47
            fenix-fx, у тебя же у самого своя платформа. Тоесть у тебя ничего не работает? Везде обман? =)
      • jtrade
        11 сентября 2012, 15:13
        fenix-fx, почему на C# не будет? Аргументы!
          • jtrade
            11 сентября 2012, 15:27
            fenix-fx, «что единственный язык, на котором точно ничего не будет работать, это стокшарп, особенно точка ком.»
            Язык С#.
            Платформа Stock#.
            Наехали и на то и на другое)))
  • A2
    11 сентября 2012, 14:59
    Всем любителям порассуждать на тему низкоуровневых языков предлагаю глянуть вот на это небольшое исследование:
    www.itu.dk/people/sestoft/papers/numericperformance.pdf

    Вывод очевиден: если ваш алгоритм незначительно улучшается от выигрыша в десятки микросекунд ( а то и меньше), то есть ли смысл? Я для себя давно решил, что нет. В моих стратегиях микросекунды не решают ничего.
    • Антон Денисков (Fry)
      11 сентября 2012, 16:31
      at60hz, асм даёт в основном не скорость, но понимание и больше стабильности. Гигантские модули подключённый к ЯВУ-коду над которым трудились 100 программистов творит в своих недрах всякую хрень и не факт, что при всех входах будет верных выход. То есть чем больше намутили в сумме, тем выше вероятность ошибок системного(софто-глючного) характера и меньше понимание как их избежать. Но в целом — да, асм не нужен.
  • siva
    11 сентября 2012, 15:11
    Было бы неплохо закончить пост — выложить или объяснить что за стратегия 10 лет работает и не оптимизируется.
    А так — ну ляпнул что-то, ну молодец.
      • siva
        11 сентября 2012, 15:19
        fenix-fx, я не ляпаю, а пишу честное мнение простого человека об этом топике
  • StockChart.ru
    11 сентября 2012, 15:14
    1) Писать на привычных языках типа C++/c# тупо удобнее, и если уже решили изучить программирование, используйте лучшее.
    Знаете, почему 1С ники зарабатывают много, хотя работа не бей лежачего? Да потому что язык — гавно на палке, проще нервы сберечь и писать на признанных технологиях.
    Т.е. на C#/С++ писать не только эффективней, но и ПРОЩЕ

    2) Из самой логики арбитража — там же нет супер умных стратегий — там кто успел, тот и съел, стратегии примитивные, главное скорость. Феникс опять всем засирает мозг. Робот-роботу рознь. Для одних скорость важна, для других — нет. Да и рынок рынку — рознь. На РТС может и не так важно, на западных рынках — изволь

    3) На зло Фениксу еще раз пропиарю отличный сервис он-лайн котировок RuTicker.com. Недавно в кластерах по многочисленным заявкам добавил так же выбор времени (если анализ внутри одной даты)
      • StockChart.ru
        11 сентября 2012, 15:20
        fenix-fx, интересных людей троллить интереснее
    • fau
      11 сентября 2012, 15:28
      RuTicker.com, ну так и шел бы работать 1с-ником, работа не бей лежачего, платят много
      ну или как вариант разработал бы свой бухгалтерский софт на «признанных технологиях»
      • StockChart.ru
        11 сентября 2012, 15:32
        fau, платят много, но не больше чем зарабатываю сейчас на c++/C#. Но писать под 1С реально гемморойней, чем на нормальных технологиях.
        • fau
          11 сентября 2012, 15:39
          RuTicker.com, теперь понял, вы не понимаете про что говорите, так что дальнейшая дискуссия бессмысленна
    • skatino
      11 сентября 2012, 17:59
      RuTicker.com, 1с-ники которые зарабатывают — не тупокодеры, как некоторые… а прикладные программисты которые кроме программирования(знания языка)разбираются в учете. :)
        • StockChart.ru
          11 сентября 2012, 20:11
          fenix-fx, связи нет вообще. Тем более мудрость программисту не нужна (хоть 1С, хоть саперу, хоть плюсовику).
      • StockChart.ru
        11 сентября 2012, 20:10
        skatino, Программирования там почти никакого нету, хотя учет нужно знать, да. Работал на 1С в начале карьеры… Сейчас работаю в 1С, гы…
        • skatino
          11 сентября 2012, 20:31
          RuTicker.com, я уже 10 лет на 1С…
    • 2341234
      11 сентября 2012, 21:17
      RuTicker.com,
      1) Язык — гавно на палке? оОчень интересное определение. Вы вообще инфраструктуру предприятия когда последний раз поднимали?
        • 2341234
          11 сентября 2012, 23:24
          fenix-fx, ok )
  • StockChart.ru
    11 сентября 2012, 15:20
    Да и вообще честно говоря Феникс в этот раз написал чушь. С чего бы ставить цель быть технологическим топом — бессмысленно? Ну если смотришь как баран на новые ворота C# Рихтера, то да. Но не стоит о всех судить по себе. Всегда нужно использовать свои сильные стороны. Если знаешь, что входишь в профессиональную элиту, то от чего бы сразу не стать лидером, а не корячиться над недо-технологиями для чайников, только потому что Феникс так сказал?
      • StockChart.ru
        11 сентября 2012, 15:30
        fenix-fx, и где я написал про тебя гадости? Написал х-ню в этот раз, это да. А что, ты всегда ожидал восхищения в свой адрес?
        • FDAX
          11 сентября 2012, 15:38
          RuTicker.com, здесь пожалуй соглашусь с Фениксом, что судьба околорыночночного программера писать никому не нужные сайтики, приводы и пр. хрень :)

          Трейдер если обладает какой-то стратегией, то это совокупность понимания рынка и рисков которые он на себя берет, а зарабатывать да, можно и руками вводя ордера раз в день и у пендосов, примеры есть :)
          • StockChart.ru
            11 сентября 2012, 15:40
            FDAX, у тебя белая горячка или что? По твоему цель любого программиста написать торгового робота или что? Вообще-то существует огромное кол-во ПО, которое вообще к рынку отношения не имеет
  • Камиль
    11 сентября 2012, 15:33
    Вот в профиле ссылка на жж, а там говорится, что на смартлабике Феникс не пишет. Что из этого неправда?
      • Камиль
        11 сентября 2012, 15:43
        fenix-fx, Да мне как бы пофигу, если это Вы и есть, то с уважением читаю, если нет, то тоже не беда )
  • roma095
    11 сентября 2012, 15:40
    А мне тогда вопрос мона?
    По поводу железок как раз. У меня пару роботов крутятся на 1 серве через виртуальные машины. Периодически пропадает канал интернета. Соответственно вечером когда я прихожу домой меня встречает лось. Он рогами бьет мне по голове и говорит, что есть второй канал интернета и его надо как аварийный подцепить.

    Как у вас это сделано? В датацентрах стоитесь или резервируете как то?
      • roma095
        11 сентября 2012, 15:48
        fenix-fx, посоветуйте пожалуйста хороший.
        У меня сайты на VDS в HETZNER лежат. Но может какой то другой лучше будет
          • Werner Heisenberg
            11 сентября 2012, 17:08
            fenix-fx, там просто win система? А правильно понимаю?
  • roma095
    11 сентября 2012, 15:43
    Еще вопрос — почему стратегии перестают работать? Смена трендовости и волатильности рынка или тупое переоптимизированность роботов?

    2 года не оптимизируете робота, это трендовик?
  • Антон Денисков (Fry)
    11 сентября 2012, 16:20
    > Не ипите себе мозг ассемблером
    как кодер на асме могу сказать, что знание асма лишь помогает лучше понять, что делает машина, а кодить торговую стратегию на асме — глупо (нейтив С — фактически один хрен, что асм). С++ хорош тем, что под него большая база наработок, но шарп изначально обвязан «халявчиной», то есть кодить «тело» быстро и удобно, а публичные наработки в области трейдинга сейчас, полагаю, под шарп в основном и идут. Одна проблема, надо хорошо понимать что такое ООП, а это требует серьёзных усилий со стороны «не программиста» по специальности.
      • StockChart.ru
        11 сентября 2012, 16:31
        fenix-fx, что «все так»?

        «Exel» vs «C++/C#» это СОВСЕМ не одно и то же, что C++/asm.
        На асме сейчас пишут разве что для embdedded, т.к. прирост производительности мизерный. На Экселе же будет работать медленней в сотни раз.
      • marginaltrader
        11 сентября 2012, 16:43
        fenix-fx, у тебя робот на семерке или на восьмерке?
          • marginaltrader
            11 сентября 2012, 17:05
            fenix-fx, нехорошо обманывать
  • StockChart.ru
    11 сентября 2012, 16:33
    На счет плат — понятно, что это скорее экзотика
  • surinam
    11 сентября 2012, 17:04
    В 2008-2009 не надо было быть программистом чтобы заработать много денег. А вот на нынешнем рынке беда.
  • barabas
    11 сентября 2012, 19:12
    Хорошая идея — сделать робота в виде платы! Как-нибудь слеплю от скуки :)
    • Гусев Михаил(debtUM)
      12 сентября 2012, 04:10
      barabas, поясните плиз свою мысль что есть
      робот в виде платы ???
      Кстати я бы хотел чтоб и топикстартер пояснил что он имел ввиду?
      мне как инженеру начавшего свою труд. деятельстность с разработки девайсов на микроконтролерах(соотв. и плат для них и того самомого асм для их кодинга) это очень(искренне) интересно!
      но хоть убей не пойму как это можно прикрутить к бирже на нынешнем этапе её развития?
      • barabas
        12 сентября 2012, 19:02
        Гусев Михаил(debtum),
        ну а что сложного ))) поставить на плату какой-нибудь ARM, запустить на нем WinMobile, а в ней запустить Quik )))
        И воткнуть это всё по Ethernet-у в роутер/свитч )))
        Жаль, протокол подключения к серверу не раздают, а то бы можно было вообще каким-нибудь AVR обойтись )))
        А топикстартер просто поиронизировал над мифами :)
  • ZAKST
    11 сентября 2012, 22:10
    Еще один миф, особенно злостный в последнее время, что программированию можно научиться за 2 недели. Камень в огород курсовиков и семинарщиков по этой теме.

    Это конечно миф уже из несколько в другой плоскости…
      • ZAKST
        11 сентября 2012, 22:46
        fenix-fx, конечно можно +) только никто почему-то не говорит о том, как придется трахнуть себе мозг еще этим (помимо трейдинга), прежде чем появятся первые «слезы успеха» (с).
  • А. Г.
    12 сентября 2012, 00:44
    Кому как. Лично меня изучение С# несущественно продвинуло в части написания той части робота, которая ответственна за выставление-снятие заявок в квик и контроль исполнения (эту часть «без ущерба для производства» можно было бы оставить и VBAшном варианте), зато сильно ускорили тестирование идей и модификаций на ценовых данных, дав возможность быстро их обсчитывать даже на минутках с 1 декабря 2005-го.
  • InfantileCactus
    14 ноября 2012, 15:06
    Ну на С# новичок, так сказать со способностями или предрасположенностью вполне несложный алгоритм описать сможет, то есть математические функции есть, какие нить циклы понять не сложно.
    С С++ я думаю всетаки посложнее будет, в плане управления памятью и другими особенностями языка. Лучше Яву тогда)
  • stitrace
    27 декабря 2012, 10:44
    Не соглашусь. Простая арифметика говорит обратное. Рассмотрим наиболее очевидный пример из доступных. UT. Делает более сотни тысяч сделок по РИ за одну сессию, имеет прибыль порядка 200-250 тысяч пунктов. Итого, прибыль с каждой сделки — 1 пункт (с вычетом комиссии). Общеизвестно, что чем ближе твоя заявка к началу очереди, тем больше шанса что твоя заявка сведется с лучшей по цене, чем ты рассчитывал и ты получишь бонус в размере от 10 до n пунктов на каждую сделку. Допустим таких сделок с бонусом около 5% если ты находишься в середине очереди (то есть ты середнячок по скорости) итого получаем, что бонусом при 100 тысячах сделок ты получаешь порядка 5 тысяч сделок, а это «лишние» 50 тысяч пунктов. К началу очереди количество таких сделок растет экспоненциально, соответственно доход от сделок — экспоненциальный. Таким образом, в HFT, скорость это принципиальная вещь и ваш доход напрямую от неё зависит. Причём, если ты в очереди на 1 микросекунду медленнее чем самый быстрый, то ты всё равно второй, так что важна любая выигранная за счёт оптимизации микросекунда и наносекунда.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн