HFT для программистов


Содержание

HFT для программистов

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

1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.

Алгоритм настройки:

    Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)

После чего мы увидим все настройки принтера.

  • Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  • Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  • Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  • Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.
  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

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

    Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.

    Калибровка:

    1. Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
    2. Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
    3. Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
    4. Команды:
      G666 R67,7
      M500
      G28
    5. Подгоняем дельта радиус пока наша плоскость не выровняется
    3 Этап. Находим истинную высоту от сопла до столика

    Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
    1 Способ:
    Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,

    • Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
    • Командой M666 L получаем полное значение высоты (Параметр H)
    • После чего вычитаем из полной высоты фактическую высоту.
    • Получившееся значение вычитаем из высоты щупа.

    Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
    G666 H 235.2
    M500
    G28

    2 Способ:
    Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.

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

    Вы можете помочь и перевести немного средств на развитие сайта

    HFT для программистов

    Данный вебинар состоялся 3-го мая 2011 года при содействии компании АЛОР.

    В процессе вебинара создатель известной библиотеки Stock# (S#) Михаил Сухов рассказал о создании торговых роботов и о том, какую роль играет С# в создании этих торговых роботов.

    Сегодня выкладываю краткий обзор первой теоретической части данного вебинара. Чтобы не пропустиить продолжение – подписывайтесь по RSS на обновление нашего блога и ждите продолжения.

    Существуют два основных метода разработки торговых роботов:

    Самый популярный метод создания торговых роботов — использование среды, которую предоставляют программы технического анализа (ТА). Речь идет о таких программах, как: Wealth Lab, TSLab, AmiBroker, Ninja Trader , OpenQuant и другие.

    Второй, не менее популярный метод разработки торговых роботов – это когда робот программируются в среде программирования. При этом используется API предоставляемый брокером или биржей (например Plaza 2 у РТС или Micex Gateway у ММВБ). Речь идет о таких средах программирования, как Visual Studio, Delphi, Java.

    Во всех этих двух подходах используется C#.

    Этот язык программирования стал стандартом для разработки приложений для трейдинга. C# можно использовать и при работе с программами технического анализа и писать на нем автономных торговых роботов с использованием API.

    Используют язык С# такие программы как ВелсЛаб, ТСЛаб, Ninja Trader , Open Quant, RightEdge (http://www.rightedgesystems.com). Возможное еще есть что-нибудь интересное, но мы пока этого, к сожалению, не знаем.

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

    Плюсы разработки торговых роботов в среде программ для технического анализа:

    Во-первых, уже проделана работа с подключением. Нам не нужно заботиться о том, как соединиться с Квиком, как получить сделки, как работать со стаканом и т.д. Это всё входит в стандартную поставку.

    Во-вторых, во всех таких программах есть графика (свечи, таблицы, отчеты по тестированию). Все эти программы “user friendly”. Когда пользователь открывает окно, то сразу видит среду, в которой он привык работать. Там есть инструменты, заявки, лента сделок. То есть присутствует всё, что пользователю знакомо «с пеленок», т.е. с тех пор, как трейдер начал торговать на рынке.

    В-третьих, помимо привычной графики (свечки, бары, линии…) есть отчеты по тестированию.

    В четвертых — есть наработанная база стандартных решений в виде индикаторов. Есть стандартные решения, которые не нужно выдумывать, пытаться найти – как они реализуются.

    Минусы разработки торговых роботов в среде программ для технического анализа:

    Во-первых, минус в том, что в основном это западные программы и они не работают стандартно с российским рынком, с российскими терминалами.

    Во-вторых, среда для программирования – чуждая для трейдеров среда. Здесь в своей тарелке себя чувствуют только профессионалы программисты. Здесь нет стандартных терминов, которыми оперируют трейдеры.

    В-третьих, существующие решения поставляются без исходников.

    В-четвертых, все решения в таких программах носят массовый характер (нет уникальности). Создать что-то на базе стандартных вещей и чтобы это хотя бы не торговало в минус – для этого надо проделать немалую работу. А чтобы это работало даже в плюс – нужно очень сильно постараться. Со стандартными вещами это проблематично. Нужно создавать все-таки что-то уникальное. А как уже упоминалось — без исходников это сделать проблематично.

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

    Рассмотрим Плюсы и минусы роботов под API:

    Первый плюс создания роботов под API – возможность создания HFT роботов.

    Аббревиатура HFT (High Frequency Trading) обозначает высокочастотный робот. Критерием здесь является скорость работы робота с биржей. Другими словами, все что работает с биржей выше определенной частоты это HFT робот. Стратегиями для HFT робота может быть скальпинг, арбитраж, парный трейдинг и т.п.

    В то же время, если арбитражная стратегия не предполагает часто выставлять заявки, то это арбитражная стратегия, но не HFT робот.

    Второй плюс – возможность создания собственного интерфейса. В самописных роботах всегда можно сделать свой собственный график.

    Наличие графика в стандартных программах технического анализа для HFT робота – это не плюс, а минус. Ведь из-за большого количества заявок и сделок на графике будет «мешанина». Графики будут непонятными и только бесполезно отнимать память. Ведь даже в пределах минуты будет очень много сигналов.

    Сейчас я работаю с роботом под опционы. В этом роботе графики совсем не такие, к каким привыкли обычные трейдеры. На моем графике нет не свечек нет линий. Этот график отображает профиль позиции. У меня всего три кнопочки: подключиться, торговля и пересчет позиции. В целях оптимизации работы он не постоянно обновляется.

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

    Поэтому еще раз подчеркну, что наличие графики в программах технического анализа иногда полезно, а иногда и нет.

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

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

    Роботу же, который работает с API доступны все возможности того API, с которыми он работает. Например, квик не предоставляет никакой работы с историческими данными, а вот Алор Аттентис и Смартком — предоставляют.

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

    В четвертых, построение торгового робота с использованием API позволяет работать с такими специфичными транзакциями, как Move Orders, адресные заявки, маркетмейкерские операции.

    В программах ТА есть 4 основные транзакции – Buy At Market, Sell At Market, Buy At Close, Sell At Close. Естественно, стандартные программы технического анализа не позволяют работать с такими транзакциями.

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

    В-пятых, построение робота позволяет творить уникальные возможности.

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

    Программы технического анализа всегда опираются на популярные известные алгоритмы, на те алгоритмы, которые являются «попсовыми». Никто не будет делать для Вас уникальные решения Только Вы сами можете это реализовать. Либо же можете приобрести робот, сделанный под API.

    Такой робот сделанный под АPI, имеет больше шансов принести прибыль, чем робот построенный на стандартных индикаторах. Конечно главное – идея, но и техническая реализация идеи тоже очень важна. Я бы сказал, что это даже равноценные вещи.

    Теперь о самой библиотеке Stock#. Что такое библиотека Stock#. Библиотека S# — это наработка для тех, кто собирается делать роботов под API.

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

    В чем я мог остальных превосходить? В технике. Именно поэтому я создал техническое решение в виде библиотеки Stock#. Это решение, конечно, сложнее, чем использование программ технического анализа. Оно рассчитано на профессионалов и использует напрямую API.

    Разработка робота на Stock# — это тоже самое, что создание робота под API. Естественно, здесь есть свои «плюшки», которые упрощают работу по созданию робота.

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

    Не забудьте подписываться на RSS. Продолжение следует…

    В следующей части:

    — примеры торгового кода на C# с использованием библиотеки S# и без неё.

    — демонстрация простейшего торгового робота;

    — рассказ о том, как можно научиться делать торговых роботов самостоятельно.

    — ответы на самые популярные вопросы по Stock#;

    Обзор технологий создания роботов

    После решения стать алготрейдером возникает огромное число вопросов. Самый судьбоносный звучит примерно так: «Какую технологию выбрать для создания робота и чем же они отличаются?».

    На этот вопрос мы и попытаемся дать ответ.

    ВНЕЗАПНО! Эта статья претендует на правду. Она написана коллективом программистов Old School Algo, и мы придерживаемся разных взглядов на ситуацию. Мы пытались быть откровенны. Ссорились и боролись за каждый абзац. Наслаждайтесь.

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

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

    Как и любая не сектантская литература, статья требует ещё бОльшего мнения профессионалов. И конечно же она может быть опровергнута аргументами и фактами.

    • 1.Характеристики технологий;
    • 2.Quik Lua;
    • 3.ТсЛаб;
    • 4.ВелсЛаб;
    • 5.Язык программирования R;
    • 6.СтокШарп;
    • 7.Своя библиотека;
    • 8.Заключение.

    В конце у нас должна получится сводная таблица с характеристиками разных технологий. Можно начать с неё. Она будет в Заключении.

    Характеристики технологий

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

    • 1.Скорость изучения. Сколько часов надо потратить на запуск первого бота, созданного по своему ТЗ.
    • 2.Стоимость использования.
    • 3.Поддержка. Количество и качество форумов на которых можно подсмотреть или попросить информацию.
    • 4.Возможные алгоритмы
    • a.основанные на свечах;
    • b.основанные на тиках;
    • c.основанные на стакане;
    • d.основанные на опционах;
    • e.основанные на ордер логе.
    • 5.Возможности тестирования
    • a.основанные на свечах;
    • b.основанные на тиках;
    • c.основанные на стакане;
    • d.основанные на опционах;
    • e.основанные на ордер логе.
    • f.оптимизация
    • g.машинное обучение
    • 6.Стабильность. При взгляде со стороны, этот пункт описывает количество внезапных падений программы при казалось бы стандартном её использовании. Для программистов занимающихся проектом он означает степень покрытости кода тестами, общую безопасность применяемых конструкций и прозрачность изначальной архитектуры.
    • 7.Кол-во возможных транзакций в секунду:
    • a.менее 10
    • b.более 10 и менее 50
    • c.50 и более
    • 8.Кол-во одновременно запущенных ботов. По чему можно определить качество инфраструктуры.
    • a.менее 10
    • b.более 10 и менее 50
    • c.50 и более
    • 9.Универсальность подключения к бирже. На сколько просто будет переподключить готового робота к другому терминалу/бирже.

    Quik Lua

    Quik — самый популярный терминал для доступа к бирже в России. Все мы с него начинали и он не нуждается в дополнительных представлениях. В рамках Quik развёрнут интерпретатор языка Lua, на котором можно писать роботов.

    • 1.Скорость изучения. Как и у любого другого скриптового языка, от 100 до 500 часов. В зависимости от первоначального качества серого вещества.
    • 2.Стоимость использования. Бесплатно.
    • 3.Поддержка. Отличная поддержка на форуме Quik и в интернете.
    • 4.Возможные алгоритмы.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе. НЕТ
    • 5.Возможности тестирования. Тут с оговоркой. В рамках Quik Lua не существует готовой инфраструктуры для тестирования стратегий на исторических данных. Можно создать самому какие-то костыли и попытаться оттестировать стратегию на них. Но для этого нужны совсем другие скилы и это совсем другая история.
    • a.основанные на свечах; НЕТ
    • b.основанные на тиках; НЕТ
    • c.основанные на стакане; НЕТ
    • d.основанные на опционах; НЕТ
    • e.основанные на ордер логе; НЕТ
    • f.оптимизация; НЕТ
    • g.машинное обучение; НЕТ
    • 6.Стабильность. Прекрасная, стабильная связка. Quik — стабильнейшая программа. Без единого нарицания. Интерпретатор Lua в ней — столь же крепок. При нахождении каких либо багов программистs Arqa оперативно исправляют ситуацию.
    • 7.Кол-во возможных транзакций в секунду:
    • менее 10. В противном случае транзакции начинают просто исчезать.
    • 8.Кол-во одновременно запущенных ботов.
    • Одновременно можно использовать до 200 стаканов в алгоритмах роботов для получения данных.
    • 9.Универсальность подключения к бирже.
    • Отсутствует.
    Цукерберг рекомендует:  Быстрые твиты с jquery.tweetable.js

    ТсЛаб

    ТсЛаб — «платформа для создания и запуска механических торговых систем». Популярнейшая программа для создания ботов. Завоевала свой кусок благодаря кубикам которые позволяют приобщиться к алготрейдингу за пару дней. В отличие от своих прямых конкурентов вроде Wealfh-Lab и Metastock, как и догоняющих Jatotrader и SoftAlgoTrade — является БЕСПЛАТНЫМ на этапе тестирования стратегий.

    • 1.Скорость изучения. От 30 до 1000 часов. Подобный разброс вызван наличием в программе нескольких способов создания ботов. При помощи Api и при помощи «кубиков». Кубики заманивают людей, а потом уже выясняется что надо учить Си Шарп до уровня Junior.
    • 2.Стоимость использования. От 1400 в месяц в режиме торговли. И бесплатно в режиме тестирования стратегий. Что, в общем, вполне себе бюджетно.
    • 3.Поддержка. Из-за существования сервисов по платной поддержке, сервис по поддержке обычных пользователей по умолчанию ущербен.
    • 4.Возможные алгоритмы.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе. НЕТ
    • 5.Возможности тестирования.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе; НЕТ
    • f.оптимизация; ДА
    • g.машинное обучение; НЕТ
    • 6.Стабильность. Хорошая. Ещё свежи раны от проблем с исполнением заявок и слежением за позицией. Но последнее время всё хорошо.
    • 7.Кол-во возможных транзакций в секунду:
    • зависит от точки подключения к бирже и количества запущенных ботов.
    • 8.Кол-во одновременно запущенных ботов.
    • от 10 до 50. Если запускать больше будут проблемы со скоростью работы.
    • 9.Универсальность подключения к бирже.
    • Имеется. Охвачены терминалы и шлюзы СНГ + Interactiv Brokers.

    ВелсЛаб

    ВелсЛаб — платформа для тестирования торговых систем. Для подключения к торговым системам российских брокеров существуют ряд костылей, разворачивающих определение до «платформа для тестирования и запуска механических торговых систем»

    • 1.Скорость изучения. От 30 до 1000 часов. Как и в ТсЛаб, здесь существуют несколько режимов создания ботов. Кубики и интерпретатор языка СиШарп.
    • 2.Стоимость использования. 800 ДОЛЛАРОВ. Помолимся небесам, за то, что мы в России.
    • 3.Поддержка. Многое на английских форумах. Но они есть и доступны.
    • 4.Возможные алгоритмы.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; НЕТ
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе. НЕТ
    • 5.Возможности тестирования.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; НЕТ
    • e.основанные на ордер логе; НЕТ
    • f.оптимизация; ДА
    • g.машинное обучение; ДА
    • 6.Стабильность. Прекрасная
    • 7.Кол-во возможных транзакций в секунду:
    • зависит от точки подключения к бирже. Тут основным ограничением будет конкретный костыль для подключения к бирже.
    • 8.Кол-во одновременно запущенных ботов.
    • 50 и более.
    • 9.Универсальность подключения к бирже.
    • Отсутствует вообще. Придётся изрядно попотеть с подключением. Есть вариант подключиться к Квик через транзакции из файла. Это лучше всего. Про остальное лучше вообще умолчать, не надо.

    Язык программирования «R»

    R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

    Используется в алготрейдинге для статистического анализа данных. Сложных вычислений. Оптимизации и обучения торговых алгоритмов.

    • 1.Скорость изучения. От 1000 часов. Это всё не просто.
    • 2.Стоимость использования. Бесплатно
    • 3.Поддержка. Скромная. Почти всё на английском.
    • 4.Возможные алгоритмы.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе. ДА
    • 5.Возможности тестирования.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе; ДА
    • f.оптимизация; ДА
    • g.машинное обучение; ДА
    • 6.Стабильность. Прекрасная
    • 7.Кол-во возможных транзакций в секунду:
    • 8.Кол-во одновременно запущенных ботов.
    • 9.Универсальность подключения к бирже.
    • Отсутствует как категория за бессмысленностью. Язык используется для тестов.

    СтокШарп

    S#.Api — платформа для создания торговых роботов.

    Множество разнообразных коннекторов.

    Исчерпывающая инфраструктура. Вот всё что может пригодиться в алготрейдинге здесь есть.

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

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

    Дикая стоимость HFT коннекторов. от 90 тыр.

    • 1.Скорость изучения. От 4000 часов. Чтобы править баги в библиотеке придётся выучить Си Шарп на уровне архитектора. Понимать какие данные куда идут. Паттерны проектирования. Разобрать паутины путей данных, которые идут через ссылки Все на всех.
    • 2.Стоимость использования. все быстрые коннекторы — от 90 тыс. руб.
    • 3.Поддержка. Есть. Хоть и частенько посылают в кассу. Надо признать всё же, что поддержка есть.
    • 4.Возможные алгоритмы.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе. ДА
    • 5.Возможности тестирования.
    • a.основанные на свечах; ДА
    • b.основанные на тиках; ДА
    • c.основанные на стакане; ДА
    • d.основанные на опционах; ДА
    • e.основанные на ордер логе; ДА
    • f.оптимизация; ДА
    • g.машинное обучение; ДА
    • 6.Стабильность. До недавних пор была ужасной. Но последний год парни так расстарались, что в последних версиях тяжело найти ошибку. А учитывая открытый код — стало возможным на лету самому поставить заплатку.
    • 7.Кол-во возможных транзакций в секунду:
    • ограничено подключением.
    • 8.Кол-во одновременно запущенных ботов.
    • 50 и более.
    • 9.Универсальность подключения к бирже.
    • Присутствует.

    Своя разработка

    Имеется ввиду разработка своей библиотеки, на одном из языков программирования. C#, Java, Delphi, C++ и т.д. Именно так побеждают на ЛЧИ. Никаких других вариантов нет.

    1) Ну вообще всё хорошо. Можно сделать все, что душе угодно. Бесплатно. Никаких падающих библиотек и тормозящих прослоек.


    2) Гигантские временные издержки на создание.

    Описывать преимущества и недостатки по пунктам не стану. И так всё понятно. Если Вы крутой программист на уровне Архитектора или хотите им стать, то надо писать свою библиотеку. Через пару лет у Вас будет возможность делать всё что душе угодно. И никакие ТсЛабы со СтокШарпами Вас не догонят.

    Заключение

    Какие выводы можно сделать из итоговой таблицы?

    Для тех кто хочет учить сам:

    1) Технологии для лентяев. Первые три. ВНЕЗАПНО! Почти по всем показателям держат удар хорошо.

    2) Сумасшедшим, которые хотят победить в ЛЧИ. Лучше выбрать R для тестирования и самописную библиотеку для реализации.

    Для тех кто хочет заказать бота:

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

    В этой статье мы рассмотрели популярные в СНГ способы создания роботов для трейдинга. Коллектив Old School Algo надеется что она была полезна.

    SavePearlHarbor

    Ещё одна копия хабора

    Как программист создал софт для отслеживания манипуляций на рынках и стал грозой бирж и HFT-торговцев

    В нашем блоге на Хабрахабре мы рассказывали о системе Nanex, которая используется для визуализации данных о биржевых торгах. Получающиеся графики позволяют наглядно видеть распределение объёмов торгов и выявлять аномалии в изменениях цен. Сегодня мы поговорим о создателе этой системы, ставшей настоящим хитом и грозой хедж-фондов и HFT-компаний.

    Из простого программиста из американской глубинки благодаря своим знаниям и жажде справедливости Эрик Скотт Хунсейдер превратился в настоящего борца с нечестной игрой на финансовом рынке и стал его настоящей звездой. Журналисты издания MarketWatch описали биографию создателя Nanex, а мы выбрали ее самые яркие моменты.

    Программист-самоучка, легкая школа

    Хунсейдер родился в 1963 году и вырос в городе Мэнати, штат Флорида. Рассказывая о своей юности, он с улыбкой вспоминает парусные прогулки вдоль побережья Мексиканского залива. Его отец был фермером и выращивал помидоры, а мать – домохозяйкой. Хунсейдер, второй по старшинству среди четырех братьев и сестер, был умным подростком, который с легкостью учился в школе. «Мне все давалось легко,» сказал он в интервью для Интернет-издания MarketWatch. Хунсейдер начал торговать акциями после окончания колледжа. Он пришел к выводу, что ему нужно автоматизировать заявки, чтобы преуспеть, поэтому решил самостоятельно выучить язык программирования C++. Его первая торговая программа, которая открывает длинные и короткие позиции по фьючерсам, когда их скользящие средние пересекаются, позволила ему сделать из 6000 долларов 36000 долларов в год.

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

    В 1995 году, будучи уверенным в том, что Интернет в корне изменит торговлю, он ушел с корпоративной работы, чтобы написать программу, которая отображает в режиме реального времени информацию по акциям и фьючерсам. В 1996 году он продал эту программу Quote.com, где запустил Livecharts, систему визуализации данных в режиме реального времени, и QCharts, автоматизированное торговое рабочее место для Windows. Когда в 1999 году Lycos купил Quote.com, Хунсейдер получил крупную сумму денег и построил дом в штате Иллинойс — там и сейчас живет вся его семья.
    А уже в 2000 году Хунсейдер основал Nanex. Компания из трех человек собирала информацию по торгам акциями, фьючерсами и опционами на Нью-Йоркской Фондовой бирже, Nasdaq, BATS и Чикагской товарной бирже.

    Nanex покупает биржевые данные — используюется как историческая информация, так и котировки в реальном времени. Система хранит около 4600 дней информации, начиная с 2003 года. «Мы постоянно покупаем новые сервера,» говорит Хунсейдер.

    «Я взглянул за кулисы и мне не понравилось то, что я увидел»

    Биржи стали осваивать электронные торги около трех десятилетий назад. Электронная торговля позволила некоторым компаниям использовать быстроменяющуюся ситуацию на рынке на миллисекунды быстрее, чем их это успевали сделать конкуренты, что спровоцировало технологическую гонку вооружений. За последние 15 лет мировой финансовый рынок стал куда более фрагментированным: там, где раньше были три основные биржи США, сейчас существует более 40 бирж и альтернативных торговых систем.

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

    6 мая 2010 года индекс Доу-Джонса упал почти на 1000 пунктов, что стало самым большим внутридневным падением за все время. Правительственное расследование назвало в качестве причины сбоя крупный ордер, спровоцировавший паническую распродажу финансовых инструментов, что привело к мгновенному обвалу фондового рынка. Однако структурная проблема, которая привела к резкому падению крупнейшего финансового рынка на 10% за 20 минут, так и не была выявлена.

    В своем исследовании, опубликованном в июне того же года, Хунсейдер предположил, что высокочастотные торговые компании отреагировали на тот самый крупный ордер огромным количеством своих заявок, которые были отменены еще до исполнения. Это привело к «забиванию» потока котировок, который необходим трейдерам для совершения сделок.

    По словам Хунсейдера, использование техник, наподобие этой, создает иллюзорную ликвидность, которая и привела к крушению фондового рынка и последующим драматическим событиям. Для описания проблемы он ввел новый термин «забивание котировок» («quote stuffing»). Хунсейдер сказал, что «это было чем-то схоже с сетевой атакой на веб-сайте, система просто не может с этим справиться и обваливается».

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

    «Я взглянул за кулисы и мне не понравилось то, что я увидел» — говорит Хунсейдер. В докладах и социальных медиа он критикует действующих не по правилам HFT-торговцев, биржи, которые избавлены от уголовного преследования; регулирующие структуры, которые не делают достаточно для защиты интересов инвесторов.

    Использование «забивания котировок» и других подобных тактик должно преследоваться по закно. Но до сих пор такие случаи единичны, и Хунсейдер объясняет это тем фактом, что сами биржи недостаточно активно расследуют манипуляции на своих торговых площадках — во многих из них могут быть повинны крупные клиенты, с которыми никто не хочет поссориться.

    В свою очередь, предсавители бирж, например BATS и Чикагской товарной биржи, уверяют, что их компании внимательно следят за возможными нарушениями правил торговли, поскольку их основной задачей остается защита интересов инвесторов. Кто-то из них, как например Нью-Йоркская фондовая биржа и Nasdaq, вообще отказываются комментировать обвинения Хунсейдера.

    Расследования Хунсейдера снискали ему славу борца с системой, чьего совета просят трейдеры, брокеры и ученые-экономисты. Когда происходят резкие падения на рынке вроде обвала 24 августа 2015 года, когда индекс Доу-Джонса снизился на 1000 пунктов за 30 минут, журналисты и инвесторы забрасывают его письмами и звонками. В диалог с ним пытаются вступить и представители государства – Хунсейдера приглашали на круглые столы и обсуждения в Федеральной резервной системе Чикаго.

    Хунсейдер стал небольшим СМИ о ситуации на финансовых рынков — он отправляет десятки твитов в день, число его подписчиков только в Twitter превышает 72000 человек, среди которых крупные биржи, банки, чиновники, трейдеры, портфельные менеджеры и журналисты. Он часто иллюстрирует свои посты графиками, прикрепляет ссылки на другие статьи и скриншоты сообщений других людей. Сам он называет свой профиль источником «чистых новостей без фильтра». «Хотят того или нет, у него есть голос в этой дискуссии,» говорит генеральный директор альтернативной торговой системы IEX Брэд Кацуяма.

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

    Журналисты MarketWatch пытались связаться с представителями финансовых компаний, которые часто критикует Хунсейдер. В Citadel и KCG отказались от комментариев для статьи о нем. Компания Virtu не ответила на несколько писем с запросом комментария. В ответ на просьбу высказаться по поводу мнения Хунсейдера Билл Хартс, генеральный директор группы Modern Markets Initiative, ответил по электронной почте, что группа «не знает, что Г-н Хунсейдер проводил какие-либо выдающиеся исследования» на тему высокочастотной торговли.

    Альтернатива привычным биржам

    Хунсейдер является сторонником торговой платформы IEX, принадлежащей распорядителям активов и венчурным инвесторам — мы писали об этой площадке в этом материале. В отличие от других бирж, организаторы IEX ввели задержку в 350 микросекунд для выполнения приказов, чтобы уравнять возможности всех участников торгов. По словам Хунсейдера, данные показывают, что биржа IEX имеет наибольший процент выполненных сделок в средней точке между ценами покупки и продажи, что говорит о честности и объективности.

    Компания IEX, которая выполняет около 2% сделок с ценными бумагами США, борется за получение регистрации в качестве национальной фондовой биржи. Компания подала заявление еще в сентябре 2015 года, но Комисся по ценным бумагам и биржам не спешит его удовлетворить — несмотря на большое количество высказываний в поддержку начинания со стороны трейдеров и инвесторов. Старые американские биржи и крупные HFT-компании вроде той же Citadel выступили против регистрации IEX.

    Главная угроза — потеря доверия к рынку

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

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

    Некоторые согласны с Хунсейдером. В сентябре 2015 года уполномоченная Комиссии Кара Штейн сказала, что «скорость и сложность стали почти непреодолимыми силами на рынке, эффективный надзор просто не может происходить без консолидированной системы финансовой аналитики». Соучредитель компании Themis Trading и, по совместительству, еще один критик HFT-торговцев Джо Салуцци заявил в разговоре с журналистам, что «рынки продвинулись на несколько световых лет вперед, в то время как система надзора сильно устарела».

    В 2012 году Комиссия по ценным бумагам и биржам распорядилась создать консолидированную систему финансовой аналитики, поручив это партнерству национальных фондовых бирж и ассоциаций, среди членов которого Нью-Йоркская фондовая биржа, Nasdaq, BATS, Чикагская товарная биржа и Агентство по регулированию деятельности финансовых институтов (независимая некоммерческая организация уполномоченная Конгрессом для регулирования участников рынка).

    Проект планировалось реализовать в 2015 году. По данным издания Financial Times, было проведено более 700 встреч для обсуждения параметров, издержек, поставщиков и т.д. В итоге, по состоянию на ноябрь 2015 года, был опубликован только короткий список потенциальных поставщиков данных, среди которых Агентство по регулированию деятельности финансовых институтов (Finra), SunGuard и Thesys, который до сих пор рассматривает Комиссия. Все это сильно расстраивает Хунсейдера, который называет поставленную задачу «до неприличия простой», так как он сам в состоянии собрать аналогичные данные свою систему, хотя в них и не будет идентифицирующих кодов участников торгов. Недавно он заявил у себя в Твиттере, что подобная аналитическая система для выявления манипуляций «никогда не будет создана». SEC не комментирует журналистам ход этого проекта.

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

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

    Хунсейдер всегда непреклонен в своих требованиях справедливости и верховенстве права. Как в интервью, так и в соцсетях он говорит, что опасается возможного подрыва доверия инвесторов к финансовой системе из-за проблем, которые он выявил. А это, в свою очередь, может повлечь за собой серьезные потрясения на самих рынках: «Как только люди поймут, что их обманывают, они перестанут в этом участвовать. Что же тогда станет с предметом гордости Соединенных Штатов?»

    Как обучиться программированию, работая в другой сфере — отвечают эксперты

    Нам в редакцию Tproger пришёл вопрос от подписчика, которым мы хотим поделиться с вами:

    «Как обучиться программированию, работая в другой сфере?»

    Мы обратились за разъяснениями к нашим экспертам, а полученные ответы представляем вашему вниманию.

    Евгений Картавец , руководитель отдела обучения GeekBrains, Mail.Ru Group

    Первое — нужно получать знания. Непринципиально, откуда вы их возьмёте: из книжек, лекций или вебинаров.

    Цукерберг рекомендует:  Роботы - Могут ли роботы уничтожить человечество

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

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

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

    Роман Репринцев , разработчик интернет-холдинга Банки.ру

    Научиться программированию легко! Как говорил один великий русский певец: «Невозможное — возможно!» Сам я в прошлом так себе звукорежиссёр.

    В своё время я скачал книгу по основам программирования, которая помогла мне определиться с направлением — веб-разработка. После этого я просмотрел много различных видеокурсов для «чайников» на темы: как работает сеть, HTML и CSS, JavaScript, PHP и Mysql.

    Изучение проходило по вечерам за компьютером, т. к. курсы сопровождались практикой. В дополнение читал книги при любом удобном случае: в метро, в электричке, в очереди в Дикси или ожидая девушку. Помимо книг очень полезны статьи на различных «гиковских» сайтах. Они хороши тем, что можно не вдаваясь в детали получить общее представление о любой желаемой теме, подкрепив примерами, и сэкономить время на изучение.

    Сделав пару сайтов по видеокурсам и несколько различных примеров по статьям, я написал письмо в одну из топовых веб-студий с таким примерно содержанием: «Мне нужна бесплатная стажировка, вам — бесплатная рабочая сила». Мы договорились. Около 3 месяцев я работал там в качестве стажёра, набираясь опыта у коллег. По истечении этого срока я был принят на работу в качестве junior-разработчика на оклад. Я был счастлив!

    За 3 года я многому научился, работал в различных компаниях – от Qsoft до Mail.ru. Получил бесценный опыт от коллег и научился командной работе, что очень важно в IT-индустрии. В программировании желательно быть «на волне», т. к. сфера очень быстро эволюционирует. Я не перестаю изучать всё, что делает из меня профессионала. Особенно всячески пытаюсь закрыть пробелы по базовым знаниям, а именно: математика старших классов на KhanAcademy, алгоритмы и структуры данных на портале MIT, различные парадигмы программирования, языки, администрирование Linux и многое другое.

    «Если очень захотеть, можно в космос полететь». Главное, что может дать плоды, — мотивация. Желание учиться и делать шаги, хоть какие-нибудь. Лично меня всегда вдохновляет успех других людей.

    Сергиус Офицеров , преподаватель HackerU

    (Ответ подготовлен совместно с Михаилом Субботиным, преподавателем израильской высшей школы IT и безопасности HackerU)

    Изучать книги, смотреть онлайн-курсы, решать задачи и участвовать в open-source projects. Откровенно говоря, либо никак, либо очень сложно. Можно быть управляющим проекта, а по вечерам штудировать его исходники. Конечно же, придётся забыть про сон, потому что у большинства программистов и разработчиков (и, возможно, у всех людей творческих профессий) мозговая деятельность более активна ночью.

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

    Олег Власенко , заместитель генерального директора СимбирСофт

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

    Самый простой способ обучиться программированию, не работая программистом, — учиться в вузе на ИТ-специальности. За 4 года, НЕ РАБОТАЯ ПРОГРАММИСТОМ, можно научиться программированию.

    Если вам уже не 18, или вы не попали на ИТ-специальность, то есть другие пути.

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

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

    1) Посмотрите на hh.ru, какие вакансии в программировании вам интересны. Выберите специализацию (например, «Веб-разработчик», «Java-программист» и т. п.).
    2) Найдите курсы (есть масса бесплатных) по этому направлению. Запишитесь на них. Честно пройдите 1-2-3 таких курса.
    3) Если у вас ничего не получается после 2-3 попыток — попробуйте другую специализацию.
    4) Если всё ок, значит, у вас уже есть базовые знания (после курсов), теперь надо получить опыт. Для этого найдите интересные вам задачи, которые можно решить при помощи этого языка. Это может быть что-то для вас или вашей семьи. Может быть реальная задача с вашей текущей не-программистской работы. Может быть идея стартапа. Это может быть ЧТО УГОДНО!
    5) Делайте эти задачи!
    6) Когда вы в общей сумме напишите 2000-3000, а лучше 5000 строк — вы уже что-то будете уметь, и можете претендовать на базовые вакансии программистов.
    7) Выбирайте те компании, где есть выстроенная система обучения. Где вами будут заниматься и будут прокачивать.

    Рустам Кильдиев , руководитель отдела разработки BigData компании «Иннодата»

    Сегодня сделать это очень просто. Существует практически бесконечное количество курсов, как онлайн так и офлайн, платных и бесплатных. Правда, есть большой шанс натолкнуться на курс, от которого будет крайне мало эффекта. Очень часто вижу рекламу: «Научим программированию за 21 день», даже видел объявление «за 7 дней». На самом деле, если покопаться в Интернете, поспрашивать у сообществ в профильных чатах, то вы точно найдёте отличный курс и не один. Можно сказать, что универсальная и одна из самых популярных и качественных площадок с курсами — это Coursera.

    Артем Литвиненко , координатор обучения, scrum-мастер REG.RU

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

    К основам относится базовый синтаксис языка, конструкции и встроенная библиотека, с которой язык поставляется. Это лучше всего изучать по книгам-учебникам, которые существуют в изобилии для каждого языка. Для быстрого старта рекомендую проходить туториалы с официальных сайтов языков (PHP, Python), online-курсы (pythontutor.ru, coursera.org) или смотреть видео. Понимание базовых конструкций и библиотеки языка обычно приходит на практике. Тут вам помогут задания, которые есть в каждой книге-учебнике, а также отлично помогают сайты-задачники: HackerRank, W3resource, Codewars, Checkio.

    Когда вы утолите жажду «начать уже программировать», решая простые задачки, следует приступить к изучению архитектуры ПК. Фаворитом тут является книга Эндрю Таненбаума «Архитектура компьютера». Это поможет понять, что же на самом деле делает язык программирования, когда вы запускаете ваш код. Параллельно надо продолжать практику, переходя к написанию более сложных программ. Например, написать парсер, который конвертирует лекции с вашего любимого Youtube-канала в звуковые файлы для прослушивания с телефона, или парсер погодных сайтов для вычисления наиболее вероятной погоды, или игру «Змейка». В завершении этого этапа будет не лишним получить опыт работы за деньги. На сайтах freelance.com, upwork.com сконцентрировано большое количество задач, преимущественно несложных, за выполнение которых вам заплатят.

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

    Такие задачи можно найти в opensource-проектах, которые разрабатываются сообществами программистов во главе с профессионалами. Тут ваш код обязательно будет проходить code review. Более опытные коллеги будут направлять вас на поиск оптимальных решений для поставленной задачи. Обычно у таких проектов есть баг-трекеры, которые содержат перечень проблем, подлежащих решению. Найти такие проекты в интернете несложно, вот например — medium.mybridge.co. Почти всегда они хранятся на github.com, что также способствует изучению систем контроля версий, таких как Git или Mercurial. Этот этап, кстати, наиболее качественно можно пройти на стажировке в крупных компаниях. Мы часто набираем на стажировку тех, кто уже умеет программировать и в дальнейшем хочет получить предложение работать у нас.

    Александр Толмачев , специалист группы поддержки мобильного приложения Link компании «Аэроклуб ИТ»

    Составляющие успеха можно разбить на 4 блока. Самую важную роль играет мотивация — желание и предрасположенность. На мой взгляд, именно мотивация обеспечивает 40% успеха. Следующий блок — непосредственно работа, а именно ежедневное планирование последующего дня и реализация плана, только таким образом можно приобрести и усвоить новые навыки. Это — второй по значимости блок, и я бы отвёл на него 30% успеха. Немаловажную роль в процессе обучения играют программы самообучения, на них приходится 20% успеха реализации. Причём обязательным критерием в отборе программ должно быть наличие чекпоинтов, контроля и статистики. Ну, и, можно сказать, вишенкой на торте (10%) является tacit knowledge, которое вы приобретаете при взаимодействии с профессионалами ИТ-сферы. Работа в ИТ, причём не важно, какую позицию вы занимаете, обеспечивает возможность учиться изо дня в день различным способам решения задач, а также даёт поддержку и свежий взгляд на вопросы, которые стоят перед вами.

    Эльдар Мингалиев , разработчик 1С, компания Neti

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

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

    Придумайте какой-то простой, но интересный мини-проект. Тут всё уже зависит от области: мини-браузер, калькулятор, аркадную игру на смартфон и т. д. И дайте себе обещание: ни в коем случае не сворачивать с пути, пока не дошёл до конца своего плана. Это очень важно! Стоит понимать, что мир программирования, каким бы разнообразным он ни был, работает по одним и тем же правилам. Если вы изучите фундаментальные законы на примере одного языка или одной технологии, то понять, как работает другой язык или технология, будет в разы проще. Поэтому так важно не бросать начатое на полпути. Даже если путь в итоге окажется ошибочным, он позволит без проблем в краткий срок изучить что-то другое.

    Алена Батицкая , frontend-разработчик, преподаватель курса «Профессия frontend-разработчик» университета онлайн-профессий «Нетология»

    Если случилось так, что в один момент вы решили сменить профессию и обучиться программированию, то я советую вам запастись терпением. Несмотря на то, что многие курсы и школы заверяют, что «программирование — это просто», на самом деле это, в некоторой степени, лукавство.

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

    Время на учёбу. Для того, чтобы стать востребованным специалистом, вам потребуется уделить ощутимое время на освоение новой профессии. Я не до конца согласна с теорией 10 000 часов, но эта цифра очень удобна для понимания того, сколько времени вам потребуется. Возьмите 10 000 и поделите на то количество часов в день, которое вы готовы уделять изучению программирования. В итоге вы получите количество дней, нужных для освоения профессии. Прибавьте к ним выходные, поделите на количество дней в месяце и перед вашими глазами будет срок, после которого вы сможете конкурировать на рынке трудоустройства. Хотите быстрее? Уделяйте больше времени!

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

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

    Ещё один способ эффективного обучения — персональный наставник. Он выступает в роли репетитора, корректирует ваш план обучения, останавливается и разъясняет непонятные моменты, проверяет ваши практические задания. Но лично я бы советовала идти к наставнику с уже имеющейся базой. Так вы сможете взять от подобного формата максимум. Искать наставника можно среди знакомых и коллег, стучаться в профессиональные чаты и искать «своего» человека или нанять специалиста за деньги.

    Начало карьеры. Если вы прошли обучение и готовы выйти на рынок труда, то мне хотелось бы вас предостеречь. Интерес к программированию в последние пару лет очень высок, и на рынке прямо сейчас очень много начинающих разработчиков, на профессиональном сленге называемых джуниорами. Это низкоквалифицированные специалисты. Из-за большого предложения и низкого спроса найти первую работу будет не так-то просто. Всё будет решать ваш опыт. Поэтому никогда не останавливайтесь в развитии. Вплоть до первого дня своей первой работы программистом уделяйте свободное время самообучению и пополнению своего портфолио. Читайте webref.ru, learn.javascript.js, документацию на сайте MDN и изучайте веб-стандарты. Если у вас есть финансовые обязательства, то не стоит увольняться с работы сразу после окончания курсов. Хотя кого-то подобные действия стимулируют и заставляют искать работу в 100 раз усерднее.

    Юлия Романова , head of marketing @ Driveback

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

    Во-первых, меняются требования к известным профессиям, и знание программирования становится нормой. Если раньше круто было прочитать в резюме «уверенный пользователь ПК, Microsoft Office», то сегодня мы спокойно реагируем на «опыт программирования на PHP, Python».

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

    Казалось бы, я — типичный не-программист, занимаюсь маркетингом и пиаром. Но дело касается IT-продукта. Хорошим специалистом я была бы, если бы не понимала, как работает продукт.

    Я учусь по-разному.
    1. Бесплатные и платные онлайн-курсы. Выбор огромный: Coursera, Stepik, Codecademy, GeekBrains и многие другие. Потому я всегда опираюсь на опыт тех, кто может оценить качество контента. Из последнего рекомендованного — курс по JS на Codecademy, например. Собираюсь пройти.
    2. Блоги и тематические порталы. Качество публикации тоже валидирую — отправляю ссылку на статью и задаю вопросы. Даже если они кажутся глупыми и доходят до «расскажи-ка подробнее, зачем выпустили третью версию Python». Следующим шагом уточняю, что ещё почитать по теме.
    3. Офлайн-мероприятия для «новичков». Открытые лекции, семинары, хакатоны — возможность попрактиковаться, задать вопрос и получить обратную связь в моменте. А еще познакомиться с теми, у кого позднее можно валидировать п.1 и п.2. Недавно, например, открыла для себя DjangoGirls, которые делают такие ивенты в Москве.

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

    Подборка полезных сайтов для программистов

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

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

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

    Популярный сайт в формате коллективного блога с элементами новостного сайта. Используется для публикации статей и новостей связанных с информационными технологиями и бизнесом в интернете. Ресурс включает в себя отдельные проекты: Geektimes, Тостер, Мой круг, Фрилансим.

    • Публикации от крупнейших международных IT компаний: Microsoft, Google, Яндекс, Mail.ru и т.д.
    • Много полезной информации, инструкций и советов о программировании.
    • Удобные фильтры позволяют настроить отображение статей только из интересующих категорий.
    • Есть англоязычная версия сайта.
    • Большие ограничения на аккаунты пользователей.
    • Новые пользователи могут добавлять статьи только в раздел «Песочница», где статья будет долго висеть до момента одобрения модератором или опытными пользователями.
    • Свои блоги могут вести только компании на платной основе.
    • Много новостного мусора и холиварного срача, вплоть до политики в IT.
    • Непродуманный механизм кармы и рейтинга.
    • Упоминание аналогов Хабра встречает негативную реакцию. Считают, что аналогов Хабра нет.
    • Не трезвость аудитории сайта. За не понравившуюся статью или отличающееся от других мнение, могут наложить отрицательную карму, что накладывает серьезные ограничения на аккаунт.

    Unetway

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


    • Добавлять статьи без ограничений могут как обычные пользователи, так и IT компании.
    • На сайте есть полезные туториалы и инструкции по программированию.
    • Для пользовательских аккаунтов нет никаких ограничений.
    • В правилах прописан запрет на публикации с обсуждением политики.
    • Небольшое количество публикаций. Статьи пишут несколько авторов.
    • Многие разделы сырые и не доработанные.
    • Нельзя отфильтровать интересующие статьи по категориям.

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

    • Масса полезных статей и интервью на русском и украинском языках.
    • Исследования зарплат по разным языкам программирования и профессиям.
    • Проводят опросы среди пользователей, на основе которых ведут статистику и рейтинги об IT-компаниях.
    • Календарь событий и мероприятий.
    • Каталог вакансий.
    • Удобная система комментирования.
    • Нет регистрации по email

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

    • Качественные обзоры об аппаратном обеспечении компьютеров.
    • Корпоративные блоги компаний.
    • Множество проектов компьютерной тематики.
    • Простая система комментирования.
    • Есть англоязычная версия сайта.
    • Не современный дизайн.
    • Страницы сайта перегружены ненужной информацией.
    • Англоязычная версия не обновляется с 2013 года.

    DevBy

    Белорусское сообщество программистов представляющее коллективные блоги с публикациями об IT-индустрии в Беларуси и мире. На сайте размещаются новости, интервью, репортажи, аналитика.

    • Каталог белорусских IT-компаний и отзывы.
    • Календарь IT-событий и статистика зарплат.
    • Список вакансий компаний.
    • Для регистрации необходим номер телефона.

    Tproger

    Интернет издание о разработке, публикуют актуальные новости, авторские статьи и переводы.

    • Много полезных статей по программированию.
    • Размещают анонсы конференций и других событий.
    • Эксперты компаний отвечают на популярные вопросы читателей.
    • Каталог с вакансиями от компаний.
    • Обычные пользователи не могут бесплатно публиковать статьи.
    • Нет регистрации через email (только соцсети).
    • Комментирование статей только через ВКонтакте.

    Материал опубликован пользователем.
    Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

    Хабр надо вычеркнуть — на виси сейчас намного больше интересного.
    Хабр сейчас — это сплошная копипаста от Ализара и Ко, короче, хабр мертв.
    А еще момент — вас там обложат шпалами, если против будете комментировать.
    Я удалил там акк, на хабре делать нечего.

    Цукерберг рекомендует:  Трансформации CSS3 с использованием медиа запросов

    Теперь, про ixbt, он же хобот. Обычный новостной ресурс по железкам. Так, конечно, можно почитать, но что там делать программисту? Это же железный ресурс. Сисадмину будет интересно, но программисту — нет.

    Остальные даже не знаю, посмотрю, спасибо.

    Юнетвей — абсолютно кривая мобильная версия. На этом можно закончить.

    Доу.уа — мову я не разумею. Пусть и дальше варятся в своем котелке.

    Дев.бай — почитаем, спасибо.

    Тпрогер — я его и так читаю, чет подзабыл. Хороший ресурс.

    Но список в целом так себе, не хватает иностранных ресурсов.

    Зачем учиться программировать непрограммистам

    Зачем изучать программирование, если вы не будущий разработчик? Рассказываем, почему сегодня это нужно практически всем.

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

    Увеличивающийся спрос на программистов отражается на всех сферах жизни, в том числе образовании. Например, в Японии решено с 2020 года ввести обязательные уроки программирования в начальной школе. В некоторых государственных колледжах США уже появился учебный курс «Разработка приложений на Swift», а власти выделят на программирование в американских школах $200 млн в год.

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

    CEO компании Apple

    И мы с ним согласны. Программирование постепенно становится базовым навыком в современном мире, и дальше объясним, в чем его польза.

    Программирование — фундаментальный навык

    Известный автор-фантаст ХХ века Артур Кларк сказал, что «любая достаточно развитая технология неотличима от магии». Программирование действительно можно сравнить с волшебством, но только пока не научишься творить его сам.

    Если говорить серьезно, то программирование — фундаментальный навык по той простой причине, что оно заставляет мыслить абстрактно. В его основе лежат принципы анализа и синтеза, или композиции и декомпозиции — это одно и то же по своей сути. В английском языке существует понятие “computational thinking”, которое можно определить как совокупность умений мыслить абстрактно, критически и разделять задачу на небольшие части. Именно этому может научить программирование, по мнению экспертов.

    Но не только теория помогает в жизни и работе. Писать код для развития логического мышления — это здорово, но на этом польза не заканчивается.

    Кто должен заняться программированием

    Рассмотрим несколько сфер, помимо разработки, где применяют технические инструменты на базовом уровне. От конкретных задач зависит, какое направление программирования вам выбрать.

    Контент-менеджер и бильд-редактор

    Задачи контент-менеджера находятся на стыке гуманитарных и технических знаний. Он может не только наполнять сайт контентом и верстать статьи в редакторах, но и создавать тексты — зависит от требований конкретного работодателя. При этом ему нужно обладать развитым чувством вкуса и пониманием интерфейсов, чтобы правильно управлять визуальным контентом.

    В любом случае знания языка разметки HTML для контент-менеджера обязательны. Некоторые начинающие изучать HTML и CSS в итоге идут дальше и становятся полноценными frontend-разработчиками.

    SEO-специалист

    Поисковая оптимизация — это точка экстремума, место встречи веб-разработчиков и SEO-специалистов. Ошибки первых могут сильно мешать работе вторых, поэтому нормальное взаимодействие между этими отделами на понятном друг другу языке очень важно, если проект хочет появляться в поиске «Яндекса» и Google.

    Понимание устройства сайта изнутри необходимо в работе по оптимизации. Здесь важны знания HTML и CSS, препроцессоров, а также востребованных на сегодняшний день фреймворков. В общем, обязанности и задачи SEO-специалиста тесно связаны с программированием, хотя он и не пишет код.

    Менеджер проектов

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

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

    Интернет-маркетолог

    Если программирование и маркетинг кажутся вам вещами несовместными, вы удивитесь. Здесь тоже всем заправляет аналитика, а для решения ее задач в последнее время активно применяется язык программирования Python. Специально для этих целей созданы библиотеки NumPy, Matplotlib, Pandas, Jupyter и другие.

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

    Как учиться программировать неразработчику

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

    В интернете можно найти массу учебных пособий «для чайников», где информация изложена очень подробно и доступным языком. Ищите книги конкретно под ваши задачи. Например, для изучения SQL — «Семь баз данных за семь недель».

    Хорошим стартом и дополнительной мотивацией к овладению новыми навыками станет прохождение онлайн-курсов. Например, «Аналитик данных на Python» для тех, кто желает прокачать себя как маркетолога. Новичкам рекомендуем взглянуть на курс «Профессия frontend-разработчик», где вы освоите базовые навыки HTML и CSS, полезные в работе маркетологов, менеджеров и других специалистов.

    • Живая обратная связь с преподавателями
    • Неограниченный доступ к материалам курса
    • Стажировка в компаниях-партнёрах
    • Дипломный проект от реального заказчика
    • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

    Заключение

    Мысль о том, что программирование — вторая грамотность, озвучил еще в 1981 году на конференции ЮНЕСКО академик А.П. Ершов. В 2020 году мы видим, что эта идея воплощается в жизнь, хотя в докладе Ершова содержался несколько иной смысл — соответственно этапу развития компьютеров того времени.

    Споры о том, нужно ли изучать программирование всем, в интернете по-прежнему не утихают. Можно найти массу аргументов за и против. Но если вы планируете попасть в сферу digital или уже работаете в ней, то владение базовыми навыками совершенно точно повысит вашу ценность как специалиста на рынке.

    116 инструментов для разработчиков

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

    Оригинальный пост был опубликован на портале DailyTekk. И хотя появился он достаточно давно, список по-прежнему актуален. Инструменты разделены на разные категории: платформы для разработки, обучение программированию, багтрекинг, API и прочее. Не все инструменты бесплатные, но за удобство и новые функции приходится платить. Надеемся, вы найдёте что-то полезное для себя.

    HFT для программистов

    Данный вебинар состоялся 3-го мая 2011 года при содействии компании АЛОР.

    В процессе вебинара создатель известной библиотеки Stock# (S#) Михаил Сухов рассказал о создании торговых роботов и о том, какую роль играет С# в создании этих торговых роботов.

    Сегодня выкладываю краткий обзор первой теоретической части данного вебинара. Чтобы не пропустиить продолжение – подписывайтесь по RSS на обновление нашего блога и ждите продолжения.

    Существуют два основных метода разработки торговых роботов:

    Самый популярный метод создания торговых роботов — использование среды, которую предоставляют программы технического анализа (ТА). Речь идет о таких программах, как: Wealth Lab, TSLab, AmiBroker, Ninja Trader , OpenQuant и другие.

    Второй, не менее популярный метод разработки торговых роботов – это когда робот программируются в среде программирования. При этом используется API предоставляемый брокером или биржей (например Plaza 2 у РТС или Micex Gateway у ММВБ). Речь идет о таких средах программирования, как Visual Studio, Delphi, Java.

    Во всех этих двух подходах используется C#.

    Этот язык программирования стал стандартом для разработки приложений для трейдинга. C# можно использовать и при работе с программами технического анализа и писать на нем автономных торговых роботов с использованием API.

    Используют язык С# такие программы как ВелсЛаб, ТСЛаб, Ninja Trader , Open Quant, RightEdge (http://www.rightedgesystems.com). Возможное еще есть что-нибудь интересное, но мы пока этого, к сожалению, не знаем.

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

    Плюсы разработки торговых роботов в среде программ для технического анализа:

    Во-первых, уже проделана работа с подключением. Нам не нужно заботиться о том, как соединиться с Квиком, как получить сделки, как работать со стаканом и т.д. Это всё входит в стандартную поставку.

    Во-вторых, во всех таких программах есть графика (свечи, таблицы, отчеты по тестированию). Все эти программы “user friendly”. Когда пользователь открывает окно, то сразу видит среду, в которой он привык работать. Там есть инструменты, заявки, лента сделок. То есть присутствует всё, что пользователю знакомо «с пеленок», т.е. с тех пор, как трейдер начал торговать на рынке.

    В-третьих, помимо привычной графики (свечки, бары, линии…) есть отчеты по тестированию.

    В четвертых — есть наработанная база стандартных решений в виде индикаторов. Есть стандартные решения, которые не нужно выдумывать, пытаться найти – как они реализуются.

    Минусы разработки торговых роботов в среде программ для технического анализа:

    Во-первых, минус в том, что в основном это западные программы и они не работают стандартно с российским рынком, с российскими терминалами.

    Во-вторых, среда для программирования – чуждая для трейдеров среда. Здесь в своей тарелке себя чувствуют только профессионалы программисты. Здесь нет стандартных терминов, которыми оперируют трейдеры.

    В-третьих, существующие решения поставляются без исходников.

    В-четвертых, все решения в таких программах носят массовый характер (нет уникальности). Создать что-то на базе стандартных вещей и чтобы это хотя бы не торговало в минус – для этого надо проделать немалую работу. А чтобы это работало даже в плюс – нужно очень сильно постараться. Со стандартными вещами это проблематично. Нужно создавать все-таки что-то уникальное. А как уже упоминалось — без исходников это сделать проблематично.

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

    Рассмотрим Плюсы и минусы роботов под API:

    Первый плюс создания роботов под API – возможность создания HFT роботов.

    Аббревиатура HFT (High Frequency Trading) обозначает высокочастотный робот. Критерием здесь является скорость работы робота с биржей. Другими словами, все что работает с биржей выше определенной частоты это HFT робот. Стратегиями для HFT робота может быть скальпинг, арбитраж, парный трейдинг и т.п.

    В то же время, если арбитражная стратегия не предполагает часто выставлять заявки, то это арбитражная стратегия, но не HFT робот.

    Второй плюс – возможность создания собственного интерфейса. В самописных роботах всегда можно сделать свой собственный график.

    Наличие графика в стандартных программах технического анализа для HFT робота – это не плюс, а минус. Ведь из-за большого количества заявок и сделок на графике будет «мешанина». Графики будут непонятными и только бесполезно отнимать память. Ведь даже в пределах минуты будет очень много сигналов.

    Сейчас я работаю с роботом под опционы. В этом роботе графики совсем не такие, к каким привыкли обычные трейдеры. На моем графике нет не свечек нет линий. Этот график отображает профиль позиции. У меня всего три кнопочки: подключиться, торговля и пересчет позиции. В целях оптимизации работы он не постоянно обновляется.

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

    Поэтому еще раз подчеркну, что наличие графики в программах технического анализа иногда полезно, а иногда и нет.

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

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

    Роботу же, который работает с API доступны все возможности того API, с которыми он работает. Например, квик не предоставляет никакой работы с историческими данными, а вот Алор Аттентис и Смартком — предоставляют.

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

    В четвертых, построение торгового робота с использованием API позволяет работать с такими специфичными транзакциями, как Move Orders, адресные заявки, маркетмейкерские операции.

    В программах ТА есть 4 основные транзакции – Buy At Market, Sell At Market, Buy At Close, Sell At Close. Естественно, стандартные программы технического анализа не позволяют работать с такими транзакциями.

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

    В-пятых, построение робота позволяет творить уникальные возможности.

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

    Программы технического анализа всегда опираются на популярные известные алгоритмы, на те алгоритмы, которые являются «попсовыми». Никто не будет делать для Вас уникальные решения Только Вы сами можете это реализовать. Либо же можете приобрести робот, сделанный под API.

    Такой робот сделанный под АPI, имеет больше шансов принести прибыль, чем робот построенный на стандартных индикаторах. Конечно главное – идея, но и техническая реализация идеи тоже очень важна. Я бы сказал, что это даже равноценные вещи.

    Теперь о самой библиотеке Stock#. Что такое библиотека Stock#. Библиотека S# — это наработка для тех, кто собирается делать роботов под API.

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

    В чем я мог остальных превосходить? В технике. Именно поэтому я создал техническое решение в виде библиотеки Stock#. Это решение, конечно, сложнее, чем использование программ технического анализа. Оно рассчитано на профессионалов и использует напрямую API.

    Разработка робота на Stock# — это тоже самое, что создание робота под API. Естественно, здесь есть свои «плюшки», которые упрощают работу по созданию робота.

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

    Не забудьте подписываться на RSS. Продолжение следует…

    В следующей части:

    — примеры торгового кода на C# с использованием библиотеки S# и без неё.

    — демонстрация простейшего торгового робота;

    — рассказ о том, как можно научиться делать торговых роботов самостоятельно.

    — ответы на самые популярные вопросы по Stock#;

    Советы рекрутерами как успешно собеседовать программистов

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

    Анонимный бэкенд, в индустрии 5 лет

    Часто сталкиваюсь с тем, что рекрутер не читает резюме. И рекрутер, и эйчар, и техспециалист. Это уже избитая тема, которая поднималась кучу раз, но лучше не становится. Ты пишешь свой стек, описываешь, что и как делал. А потом по телефону или при личной встрече спрашивают о том, что уже описано.

    «Расскажите, плиз, чем вы занимались?» или «Вы работаете в студии и, помимо питончика, ещё и докером увлекались. Расскажите, что решали с его помощью?»

    Временами это доходит до крайности: меня два раза рекрутеры звали пособеседоваться в мою же компанию. Да, дважды. Может, это был намёк, что мне пора сменить команду или продукт? Прочитать резюме — это уважение к человеку. Ведь любое собеседование — это двухсторонка. Эйчар и соискатель собеседуют друг друга.

    Часто слышу про хамство и надменность, даже напыщенность эйчаров многих крупных компаний.

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

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

    Михаил Чернобров, ранее Senior Frontend Engineer в Rambler&Co

    Однажды мне позвонила эйчар и предложила место в отличной компании, с хорошей зарплатой и новым стеком, включая Angular 3.0. Но вот беда, Angular 2.0 только-только вышел из альфа-версии. Незнание матчасти — основная проблема.

    Был случай, когда приглашали на работу, описывая одно, а по факту оказалось совершенно другое. Речь идет о сервисе, в котором не было написано ни строчки кода. С дедлайном через две недели. Наведите справки — потом предлагайте.

    И еще рекрутеры часто заваливают письмами, иногда пишут «Здравствуйте, Максим». Хотя я Михаил.

    Руслан Каймаков, Руководитель отдела разработки фронтальных систем, Газпромбанк

    Больше всего раздражает невнимательность рекрутеров при просмотре резюме.

    Чтобы охватить больше кандидатов, рекрутер собеседует всех людей, у которых в резюме есть похожие слова. Вершина проблемы — предложение о собеседовании Java-разработчику на вакансию JavaScript-разработчика.

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

    Третье место — полная отстраненность на интервью. Все просто: рекрутер назначил встречу, привел кандидата в переговорную комнату и сидит все собеседование в телефоне или ноутбуке, никак не участвуя в беседе.

    Виталик Самигуллин, руководитель группы разработки технологий Рамблер/ТОП-100

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

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

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

    Мы выделили главное и попросили Надежду Недорезову, Head of Recruitment в Rambler&Co, дать советы рекрутерам.

    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих