Size: a a a

Алкотрейдинг

2017 January 21
Алкотрейдинг
Прекрасный Bitmex обладает следующими фантастически удобными (сарказм / без сарказма) качествами для написания трейдеров:

1) В приходящих order book updates есть не только add order или remove order, но и change price/amount. Пришлось добавить везде поддержку этой штуки.

2) Объём контрактов квотируется в долларах, а не в биткойнах, как везде. Можно поделить на цену и получить в биткойнах, конечно, но тогда весь ордербук состоит из весьма некруглых офферов.

3) В отличие от GDAX, ордера выполняются: а) через HTTP, а не FIX protocol, б) крайне желательно не фигачить их по одному, а делать bulk order, выставляя весь новый список ордеров в одном запросе. Переписал всю ивент-систему.

В общем, две недели работы, а воз и ныне там.
источник
Алкотрейдинг
Все китайские биржи одним махом отключили margin trading из-за наезда китайского центробанка. Испокон веков люди задавались вопросом — какой на самом деле объём трейдинга на китайских площадках — теперь это видно наглядно. Около 300 тысяч BTC в день (раньше было 2-3 миллиона).
источник
Алкотрейдинг
HFT ещё даже нигде не начинался, кстати: почти все стратегии видны на ордер буке невооружённым глазом (т.е. все по старинке постят  ордера по HTTP, а FIX и вебсокеты — это космос). Оно и понятно — flow везде небольшой, чего стараться. А в китайских площадках всё глючит по любым протоколам.
источник
Алкотрейдинг
Тут мне нажаловались, что ничего не понятно, поэтому давайте начнём сначала. Главная трейдерская мудрость, из которой долгими медитациями выводится всё остальное — это то, что покупать нужно дёшево, а продавать — дорого. Сей коан звучит, во-первых, малость капитански, а во-вторых, как издевательство: ведь если купить на любой бирже биткойну по рыночной цене, а потом тут же его продать, то получается строго наоборот — спред и комиссии сразу съедают немножко кровных грошей.

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

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

Наконец, третий тип хочет покупать дёшево, а продавать дорого прям так, не отходя от кассы. Это маркет-мейкеры, к коим я и отношусь. Потому что я слишком туп, чтобы предсказывать будущее, и слишком ленив, чтобы выстраивать арбитраж.
источник
2017 January 22
Алкотрейдинг
"Если вы заблудились в лесу, найдите достаточно толстое дерево или старый пень и посмотрите, с какой стороны у него лох. Это вы!"

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

На самом деле, я, конечно, утрирую. Во-первых, вместо "лох" следует политкорректно говорить "трейдер с отличающимися от наших целями и горизонтами" (наша цель, напомним, это заработать денег с минимальным риском, а горизонт — прямо сейчас). Как правило, это directional трейдер из пункта 1, с горящими глазами и даром предвидения. Вот он уже точно знает, что через неделю биткойн вырастет до предыдущего максимума и пойдёт дальше, собирает все свои капиталы и нажимает в интерфейсе биржи кнопку "купить по рыночной цене" (market order / buy). А второй трейдер, напротив, уверен, что послезавтра китайский центробанк поперезакрывает все эти шарашкины конторы с биткойном, а тех, кто останется, заставит заплатить налог за пять лет и сдать всех миллионеров корейко китайской компартии — и биткойн, соответственно, рухнет. И вот он бежит к кнопочке "продать по рыночной цене" (market order / sell) и, соответственно продаёт. Кто же продаёт биткойны тому, кто покупает, и покупает у тех, кто продаёт? Мы, маркет-мейкеры. И, как клерк в обменном пункте, продаём мы чуть дороже, чем покупаем.

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

Стать маркет-мейкером очень просто. Нужно забыть как страшный сон кнопку market order и использовать вместо неё limit order — с ценой, чуть худшей, чем лучшее предложение (выше в случае продажи, ниже в случае покупки). Такой ордер не исполняется немедленно, а попадает в order book, русскими трейдерами часто называемым "стаканом". См. название канала. Все ордера в буке отсортированы по цене, и ждут, пока к ним не придёт лох^W трейдер с маркет-ордером, который хочет купить или продать по цене рынка (рынок теперь — это вы). Если такой трейдер хочет что-то купить, то сначала продажу обеспечивает ордер маркет-мейкера с самой низкой (самой лучшей) ценой, потом, если его не хватило, следующий, и т.д.; если продать, то наоборот (всё по чесноку). Где-то среди них должен затесаться и ваш.

Домашнее задание: заработать первую копеечку маркет-мейкингом вручную. В отличие от направленного трейдинга, это получится у вас с вероятностью 90% (в чём подвох, я расскажу позднее). Для этого купите где-нибудь немного биткойна (0.1 BTC хватит), переведите их на понравившуюся вам площадку, которая даст вам открыть аккаунт (рекомендую GDAX, или BitMex), и продайте 0.02 BTC посредством лимит-ордера по цене чуть выше, чем лучшее предложение — дождитесь, пока кто-то (см. выше) у вас их не купит. А потом купите их обратно, но уже по цене чуть ниже, чем лучшее предложение покупки (тоже дождитесь). Туда-обратно, туда-обратно. Лучше всего это делать при отсутствии заметных движений цены в последние пять минут (движения вас больше не интересуют, юные падаваны).

У вас всё получится.
источник
Алкотрейдинг
Дзен маркет-мейкинга освобождает от многих экзистенциальных вопросов. Вам всё равно, есть ли у биткойна внутренняя ценность, или это фикция. Всё равно, будет ли через два года он стоить 10 долларов или 10 тысяч. Вам всё равно, что думает центральный банк Китая или администрация Трампа. Всё, что вам нужно — это чтобы его покупали и продавали.
источник
2017 January 24
Алкотрейдинг
Если вы сделали домашнее задание (кстати, отпишитесь в личку, кто сделал) — вы наверняка подумали, что что-то это слишком легко, и вам непременно захочется этот процесс автоматизировать. (Так в своё время сел за баранку этого пылесоса и я). Не торопитесь — то, что сей гешефт получается в 90% случаев, создаёт излишнюю эйфорию и мешает сосредоточиться на остающихся 10% и как с ними бороться. Маркет-мейкинг — игра с открытой информацией, в ней нет ничего непредсказуемого (кроме потока входящих ордеров, в каковом вы должны учесть все возможные варианты). Ордер-бук виден всем. Предсказывать будущее не нужно — нужно лишь быстро реагировать на происходящее в реальном времени.

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

Да, ещё вы могли заметить, что отдали бирже многовато комиссии. Это не дело — комиссию платят [см. выше], а ваша задача — зарабатывать деньги. Ищите площадки с нулевой комиссией на пассивные (лимит) ордера. Активными (маркет) ордерами пользуются [см. выше], а значит, им-то и комиссию платить.
источник
2017 January 25
Алкотрейдинг
Если говорить о конкретных результатах, то сейчас на счетах в GDAX лежит 1830 евро, вчера было 1780, а позавчера — 1715. Примерно 70% дней — такие, 20% — нейтральные, и 10% проигрывают (тоже около 30–50 евро).

Подвохов несколько. Во-первых, туда нельзя положить в 10 раз больше денег и тем самым в 10 раз увеличить прибыль — масштабирование маркет-мейкинга это задача с двумя звёздочками. Во-вторых, деньгами управляет некая страшно сложная стратегия (сложнее чем мне бы хотелось), написанная на Scala, на которую я убил непозволительно много времени (а 50 евро в день — не то чтобы прекрасный от этого выхлоп). Тупо работая на работе, я зарабатываю много больше, тратя меньше усилий. Да, стратегия работает теперь сама, но частенько нужно следить и за ней и решать возникающие операционные проблемы.

Поиски продолжаются.
источник
2017 January 26
Алкотрейдинг
(1876 евро)
источник
2017 January 29
Алкотрейдинг
Кто-то спрашивал, почему сложно программировать алготрейдерские системы, если торговать так просто. (Если торговать с прибылью не просто или хотя бы не очевидно как — программировать ещё рано). Отвечаем: приходится уметь делать вот что:

1) Stream processing. Данные о новых предложения в ордербуке поступают в реальном времени через соответствующий API (Websocket или FIX protocol). Да, некоторые горе-программисты тупо запрашивают состояние ордер-бука целиком, допустим, раз в секунду, но пока они (не будем в этот раз произносить слова на букву «л») ждут следующую секунду, нормальные посоны успевают многое сделать. Например, отреагировать на это изменение и свободно выставить свои ордера повыгоднее.

2) Стрессоустойчивость при работе с предельно глючными и слабодокументированными API, при взгляде на которые иногда вспоминается тысячерукая и тысячеликая богиня глубокого разочарования в людях. Что-то работает не так, как сказано в документации? Норма. Завтра внесли изменения в API без предупреждений, и у вас всё отвалилось? Тоже норма. Весь API тупо упал целиком на пару часов? Бывает и такое. Про пропадающие обновления цен я и вовсе молчу, пустяки, дело житейское.

3) Стоит ли говорить, что многопоточное программирование и принципы работы с основными сетевыми протоколами (как минимум HTTP и Websocket, а часто ещё и FIX) вы должны знать на отличненько. Попытка в одном потоке получить изменение цены и отправить новые ордера обычно закончится провалом.

4) 0.2 * 0.2 у вас равно 0.04000000000000001? Садитесь, два. Выбросите ваш double в помойку и считайте нормально.

5) Вы будете программистом, дата сайентистом, трейдером, девопсом и психоаналитиком самому себе, и никто за это вам не заплатит ни копейки денег. А зарабатывать трейдингом вы начнёте ой как не сразу.

Что хорошо — на рынке в изобилии присутствуют горе-программисты, допускающие эти и другие ошибки, а значит, их можно и нужно за это наказывать!
источник
Алкотрейдинг
(Кто пропиарит канал, тот молодец. Не жадничайте, дайте и другим заработать!) :)
источник
2017 January 31
Алкотрейдинг
Всё вышесказанное, разумеется, работает и для всех остальных рыночных инструментов (акций-шмакций, форекса-шморекса, фьючерсов-[censored] — в общем, всё сгодится, где есть ордер бук с бидами и офферами). Но есть несколько но:

1) вся информация, которую биткойн-биржи от душевных щедрот давали бесплатно, теперь, оказывается, стоит денег, и немалых. На форексе, даже институциональном, никто вам не даст фид с уже совершёнными сделками — тут не принято; да и доступ к полному содержимому бука с его апдейтами и, самое главное, вывод ваших лимит-ордеров на внешний рынок — только для солидных клиентов с setup fee и ежемесячными взносами. С американскими биржами всё дают, и трейды, и ордера в буке, но за совершенно астрономические уже деньги. А за деньги небольшие — всегда пожалуйста ритейл-доступ для предсказателей будущего.

Кроме того, допустим, деньги у вас есть. Чтобы успевать к раздаче и не отдавать возможности другим маркет-мейкерам (коих накопилось уже просто девать некуда), вам надо быть с ними на одном уровне скорости. Это означает колокейшн вашего сервера в одном датацентре с биржей (деньги), прямое оптоволоконное соединение с серверами оной (ещё деньги), специальные решения для минимизации latency — спец. сетевые карты, FPGA-раздатчики потоков котировок (ещё много денег), и программисты, которые умеют с этим обращаться (лучше даже не спрашивайте сколько денег). В общем, всё то, что вы читали в статьях про HFT.

А в биткойне всё это бесплатно. Пока. И конкуренции немного. Carpe diem, или, как сейчас говорят — #yolo.
источник
2017 February 05
Алкотрейдинг
Немного жаргона. Ордер, сразу исполняющийся на рынке, даже частично, называется «агрессивным», а тот, который попадает в бук и ждёт своего часа — «пассивным». Например: если сейчас лучшие цены покупки/продажи [best bid/offer] на BTC/USD 990.55 и 990.80, то ордер на покупку (buy limit) по цене 990.50 или 990.75 будет пассивным, а 990.81 уже агрессивным. Ордер на продажу (sell limit) по 990.60 — пассивный, а 990.55 — агрессивный (потому что сразу сработает ордер с противоположной стороны). Маркет-ордер «купи/продай по лучшей цене» всегда максимально агрессивный.

(«Пассивно-агрессивные» ордера тоже есть, но мы их так не называем).

Как вы уже поняли, маркет-мейкеры в 99.9% случаев используют только пассивные ордера — агрессоры платят не только спред, но и, как правило, бОльшую комиссию. Агрессивные ордера нужны в редких случаях (для разгона мелких конкурентов, например).

Пассивные ордера исполняются не сразу, а ждут у моря погоды — то есть у них есть некоторая вероятность исполнения (она же скорость закрытия), которая зависит от цены, времени суток, настроений на рынке, состояния бука, нахождения Луны в Стрельце, да и просто от рандома. Тем не менее, как-то моделировать эту вероятность можно и нужно — хошь стохастическими (можно и обычными) дифференциальными уравнениями, хошь hidden Markov models, а хошь просто на глаз подбирай. В начале пути подбирать на глаз обычно вполне достаточно.
источник
Алкотрейдинг
(Для любителей стоя и в гамаке сразу переходить к математике — уважаю вашу суровую аскезу, поэтому вот вам например: https://arxiv.org/pdf/1105.3115.pdf . Метод простенький, но работает, я проверял. Главное параметры подобрать) ;)
источник
2017 February 06
Алкотрейдинг
GDAX понимают в программировании, но не понимают в финансах (API отличный, особенности исполнения ордеров вызывают fffrustration).

BitMEX понимают в финансах, но не понимают в программировании (автогенерируемый плохо документированный Swagger HTTP API — фу же!)

OKCoin вообще китайцы.

Нет в мире совершенства.
источник
2017 February 09
Алкотрейдинг
Битва с битмексом продолжается. Вчера более или менее разобрался в их недокументированном API (вот вам вебсокет, вот вам подписки, что в ответ на них приходит -- разбирайте методом научного тыка сами). Ладно, мы опытные самураи, фразами типа ParticipateNotInitate или Bulk processing нас не напугаешь. Но лимит на 300 запросов за 5 минут (работающий не так, как в документации) — это ж вообще ни о чём, невозможно торговать в таких условиях!

Буду опять писать в саппорт.
источник
2017 February 10
Алкотрейдинг
Оккойн и хуоби (две главные китайские биткойн-биржи, где-то 60% рынка — глобального, не китайского) немного ёк (запретили выводить биткойны в течение месяца). Это большая проблема, которую рынок, на мой взгляд, недооценил (упал всего на 10 процентов, хотя дела-то нешуточные). Надо бы ему ещё немного упасть.

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

Нормальные же посоны только радуются: больше волатильность — больше спред! (Не забудьте подкрутить в соответствующую сторону свои коэффициенты).
источник
2017 February 13
Алкотрейдинг
Bitmex побеждён! API работает! Вот завтра запущу в продакшн и разбогатею!
источник
Алкотрейдинг
Запустил на Bitmex в пробном режиме. Трейдер наторговал 0.1 BTC за полчаса (I'm rich! Riiiiich!) Плохая новость в том, что баги то тут, то там, ордера отменяются неправильно, приходилось сидеть за монитором и поправлять вручную.

Остановил машинку, буду разбираться дальше. Но вообще Bitmex — очень многообещающая площадка.
источник
2017 February 20
Алкотрейдинг
Если вы вдруг, как и я, пишете на Scala, то, во-первых, сочувствую, а во-вторых, вот вам для разгона мой заопенсорсенный наборчик юного алготрейдера (без документации, разумеется, чтобы вам было не так скучно): https://github.com/atemerev/FXCore

Например, реализация иммутабельного ордербука (ордербук -- это первое, что вы должны написать, если хотите заниматься этим ужасным занятием): https://github.com/atemerev/FXCore/blob/master/shared/src/main/scala/com/miriamlaurel/fxcore/market/OrderBook.scala

Есть и на джаве, но на джаве я уже писать почти разучился, так что не обессудьте: https://github.com/atemerev/jcarb/blob/master/src/main/java/com/miriamlaurel/jcarb/model/order/OrderBook.java
источник