Хабрахабр

[Перевод] Как по заказу: история о том, как строка кода превратилась в килотонны угля

Телефон Брэда разразился знакомой трелью внутриофисного звонка.

— Да? – рявкнул он, поднимая трубку. – Чего вам?

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

— Эээ, — отозвалась явно нервничающая секретарша, — тут вам… эээ… доставка. Они…

— Пф, — фыркнул Брэд, обрывая ее на полуслове. – Ну так распишитесь за нее! Или это так сложно? Сами не справитесь?

— Видите ли, — поёжилась секретарша, — они просят объяснить, как им пришвартоваться. И ещё нам нужно оплатить причальный сбор. Они говорят, что вы в курсе. Я ничего не понимаю.

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

— Ну, вот он я! – сердито объявил он, едва переступив порог холла. – Давайте, выкладывайте. Что я должен…

Брэд осёкся, не закончив фразу. Его взгляд тут же переместился на зрелище на причале возле офиса Æxecor, которое открывалось через высокие, от пола до потолка, окна. Там стояла чудовищных размеров баржа – нет, целая армада надёжно скреплённых барж, до краёв наполненных грудами угля. Вся эта армада намеревалась пришвартоваться у причала.

— Какого хре…

— А вы, наверное, Брэд, — раздался бодрый голос. Брэд перевёл глаза на потёртого вида мужичка в какой-то рабочей спецовке, который сидел на одном из стульев в приёмной. – Ну, для начала, как нам швартоваться-то? У меня два стопора, но тут никак не зацепишь. И для разгрузки у вас вообще что-нибудь готово?

В кои-то веки Брэд потерял дар речи. Он не имел ни малейшего представления о том, кто этот человек, и почти ни слова не понимал из того, что он говорит. Да ещё эта громада, понемногу надвигающаяся на здание.

— Эээ… — пробормотал он, — погодите… вы привезли… уголь? И… нам?

— Ну да! Двадцать восемь тысяч тонн старого доброго чёрного золота! – рабочий насмешливо наморщил лоб и добавил: — Ну, если, конечно, адресом не ошиблись, ха-ха. Это же Æxecor? Причал номер пятьдесят три? А вы Брэд, тот самый парень, который его заказал?

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

Краткий курс торговли товарными фьючерсами

Если вы когда-нибудь смотрели ставший классикой фильм «Поменяться местами» 1983 года с Эдди Мёрфи и Дэном Экройдом в главных ролях, то немного уже представляете, как происходит сбыт сырья. В самых общих чертах, сырьевые товары – например, золото, шерсть, соя – продаются производителями и, в конечном итоге, попадают к покупателям. Но Билли Рэй Валентайн сколотил себе капитал и разорил братьев Дьюк не просто продавая замороженный концентрированный апельсиновый сок с лотка. Он сумел пробиться на рынке за счет того, что продавал и скупал фьючерсные контракты. На самом деле, только так торговля сырьевыми товарами и осуществляется.

Фьючерсные контракты – вещь довольно прозрачная: вы соглашаетесь приобрести товар в количестве Х по цене Y за единицу в определенный момент в будущем. Конечно, может показаться странноватым, что человек решает купить двадцать тонн грудинки за 34 420 $ в апреле (даже если он очень любит грудинку), но суть тут в том, что он намерен распродать эту поставку задолго до начала апреля и за сумму, значительно превышающую 34 420 $. Практически любой товар, который вы можете себе представить, продаётся и покупается подобным образом ещё до начала производства. Смысл такой схемы торговли в том, что риски (и выгоды), вызванные колебаниями цен на сырьё, достаются уже не производителям (фермерам, шахтёрам и так далее), а трейдерам.

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

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

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

Как по маслу

Компания Æxecor осуществляла торговлю углём только на одной бирже (WTFSE), и сделки, связанные с углём, у неё проходили не слишком часто. Соответственно, когда WTFSE внедрила новый API, обращенный к пользователю и основанный на веб-сервисах, внутренняя трейдинговая система оказалась неспособна с ним взаимодействовать. На горизонте маячила пара сделок по углю, так что у компании вырисовывалась небольшая проблема.

К счастью, в штате Æxecor нашлась пара программистов-самоучек и им удалось сколотить решение, которое нормально уживалось с новым API WTFSE. По сути, программист добавил немного кода XML к трейдинговым запросам. В частности, там был такой фрагмент:

<AdditionalProperties> <PhysicallyDeliver> <value>False</value> </PhysicallyDeliver></AdditionalProperties>

Ничего не находите странного в этом коде XML? Если вы ответили: «Значение должно быть не False, а 0», можете похлопать себя по плечу. Как выяснилось, система WTFSE воспринимала только 1 и 0 для обозначения True и False соответственно; любое другое значение просто автоматически приравнивалось к единице. Упс!

Конечно, в обычных обстоятельствах большой беды из этого бы не получилось. Чтобы удостовериться, что в транзакции всё точно, WTFSE (да и любая другая биржа) отсылает клиенту подтверждение сделки, где вся исходная информация прописана на XML. Таким образом, обе стороны имеют доступ к данным. На стороне Æxecor всё выглядело совершенно благополучно, в первую очередь благодаря следующим строкам в коде:

bool physicallyDeliver = (getNodeVal("PhysicallyDeliver").toLower() == "true");

Разработчик молодец, что провел верификацию… вот только строка может давать куда больше значений, чем true или false. Скажем, 1 или 0. Упс.

Но даже то, что неправильная сделка по ошибке прошла верификацию, по идее, ещё не катастрофа, ведь в клиринговой палате заметили бы, что с ней что-то основательно не так. Нельзя же просто позвонить в службу доставки FedEx и попросить отвезти несколько тысяч тонн сырья в какое-нибудь офисное здание в деловом центре. Список точек, куда можно доставлять сырьевые товары, сильно ограничен – обычно это склады возле депо или портов. Однако резиденция Æxecor была расположена возле причала пятьдесят три в прибрежном районе со складскими помещениями, который недавно прошел реновацию – на первый взгляд, вполне разумное место для доставки целой кучи угля, особенно с точки зрения машины. Упс.

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

Раз столько народу просматривает транзакции, логично было бы предположить, что хоть кто-то заметил, что торговый гигант Æxecor просит физически доставить им груз угля на полтора миллиона долларов. Да кто-нибудь наверняка и заметил, но сделкой занимался Брэд, а значит, и помыслить было невозможно, что здесь кроется какое-то недоразумение.

Как Главный Трейдер компании Æxecor, Брэд донёс до всех с предельной ясностью: никто, «даже Его Святейшество Папа Римский» не смеет ставить под сомнение его действия. В конце концов, Брэду приходится принимать сложнейшие решения по торгам, которые никому другому осмыслить не дано. Иногда он покупает задорого, а продаёт задёшево. Иногда придерживает товар, хотя цена падает. Иногда вообще отказывается его сбывать независимо от цены. Пути Брэда неисповедимы, и если он говорит: «Исполняйте!», то лучше исполнить.

Раннее Рождество

— Вот только не говорите мне, что это не ваш уголь, — чувствуя, что дело нечисто, рабочий занял оборонительную позицию. – Нужен он вам, не нужен – сами разбирайтесь. Но уголь ваш, мистер Брэд.

Брэд и рад бы был возразить, но он сам понимал: уголь его. Хуже того, он раз за разом самоуверенно подтверждал это перед операционным отделом Æxecor. Он просто предполагал, как ему вообще было свойственно, что эти туповатые перекладыватели бумажек читать толком не умеют. Он мысленно вернулся к своему последнему разговору с сотрудником отдела по поводу закупки угля («Я сказал провести грёбаную сделку, какое слово вам непонятно?») и погрузился в размышления о том, что делать с пятьюдесятью шестью миллионами фунтов угля в его физическом воплощении.

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

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

После этой «грандиозной закупки» гору угля Брэду так никогда и не забыли. Каждый раз, проходя мимо коллег в коридоре, он знал, что они помнят про уголь, а они знали, что он это понимает. Никто над ним особенно не издевался и не потешался, но это не имело значения. Брэда больше не воспринимали как Главного Трейдера компании Æxecor, он стал тем парнем, который по ошибке купил целую прорву угля.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»