- Повернутися до менюЦіни
- Повернутися до менюДослідження
- Повернутися до менюКонсенсус
- Повернутися до менюСпонсорський матеріал
- Повернутися до меню
- Повернутися до меню
- Повернутися до меню
- Повернутися до менюВебінари та Заходи
Високочастотна торгівля на біржі Coinbase
Прочитавши про високочастотну торгівлю у Flash Boys Майкла Льюїса, Ендрю Баріссер створив власного бота для торгівлі Bitcoin . Ось його знахідки.

Ендрю Баріссер — інженер із програмного забезпечення та Криптовалюта в Assembly. Раніше він був аспірантом факультету біофізики в Каліфорнійському університеті університету, де, за його словами, «страшне захоплення» Bitcoin привело його до програмного забезпечення. У цій статті він ділиться уроками, отриманими під час створення власного бота для торгівлі Bitcoin в «заражених акулами водах» нової біржі Coinbase.
Нещодавно я почав алгоритмічно торгувати біткойнами на новій біржі Coinbase. Прочитавши в книзі про високочастотний трейдинг Flash Boys Майкла Льюїса, я вирішив спробувати сам, хоч і в більш незграбний, більш аматорський спосіб.
Цей досвід був захоплюючим як на технічному рівні, так і в стратегічному сенсі. Писати логіку, яка сама контролює гроші, — дивна річ. Випустити його вперше, знаючи, що будь-який жучок може буквально викинути готівку, було жахливо.
Bitcoin — це неймовірно відкрита система, яка особливо дружня до невідомих розробників. Біржі мають відкриті API, які дозволяють будь-кому, буквально будь-кому, торгувати. Немає преміум-доступу, немає дорогих облікових даних торгового майданчика. Це абсолютно відкрито – мені це подобається.
Води, заражені акулами
Розробляючи свого торгового бота, я зрозумів, наскільки стратегічною є глибина таких ігор. Обміни вже є поширений з торговими ботами; ці води кишать акулами. Боти танцюють один навколо одного в хаотичному вирі. Вони використовують так багато різноманітних стратегій. Це схоже на таку кількість мікробів, які змагаються в первісному мулі.
Потрапляючи в це середовище, я повинен був відразу знати про інших ботів.
Алгоритмічні трейдери повинні зайняти певну нішу. Вони наживаються на неефективності ринку. На ідеальному ринку те, що вони роблять, не буде прибутковим.
Саме тому, що Ринки, у своїй рідній державі, є ні ідеально гладко, безперервно та добре функціонує, щоб алгоритмічні трейдери могли отримати будь-яку цінність. Виправляючи невеликі помилки, невеликі випадки прослизання, які трапляються на Ринки, ONE отримати невеликі прибутки.
Якщо велика акула є неперевершеною силою самого ринку, то маленькі рибки-присоски, які слідують за нею, прибирають залишки, підтримують порядок, є алгоритмічними трейдерами. Вони теж мають своє місце.

Ще один парадокс полягає в тому, що я не можу розкрити свою торгову стратегію, не скомпрометувавши її.
Певною мірою пояснення моєї стратегії означало б запрошення до конкурентів, для яких граничні витрати на встановлення програмного забезпечення дуже низькі. Набагато більш загрозливо, якби була відома точна стратегія мого бота можна було знищити.
Якби ви завжди могли передбачити кожен його крок, ви могли б змусити його знову і знову відмовлятися від грошей. Це щось інше, що підтримує мою параною, страх, що хтось там буде спостерігати за моїм ботом і, виконуючи його накази, вирішуватиме його стратегію.
Я уявляю, як повертаюся до свого бота і бачу, що його баланс порожній, тому що якийсь натхненник обіграв його алгоритмічно, зливаючи пенні з кожним циклом.

Створення ринку 101
З іншого боку, стратегія мого бота є надзвичайно консервативною, і її було б важко використовувати. По суті, це складний маркет- Maker. Він забезпечує ліквідність біржі Coinbase. Це означає, що він LOOKS книгу замовлень і спостерігає, де замовлення є незначними. Можливо, на стороні покупки дуже невелика глибина замовлення.
Він може розміщувати лімітні замовлення, як маленькі пастки, на різній глибині на сторонах купівлі та продажу. Він змінює точний спосіб, у який це робиться, залежно від останніх ринкових умов. Якщо потім раптово здійсниться велика угода, це може перевищити доступність пропозицій за найкращою ціною. Така велика пропозиція може викликати ONE з моїх пропозицій, що чекають, за більш вигідною ціною.
Це ринкова стратегія 101. Це майже найменш самовпевнена стратегія з усіх, хоча я пом’якшив свою власну реалізацію деякою додатковою логікою прогнозування ціни. Загалом це надзвичайно нудна стратегія.
Створення ринку також забезпечує реальну соціальну корисність. Чим глибшу ліквідність забезпечують маркет-мейкери, тим важче викликати непостійні стрибки ціни. Маркет-мейкери також зменшують спред між пропозиціями та пропозиціями, про що більшість людей навіть T підозрюють: це свідчення успішних практиків на Уолл-стріт.
Інші бот-стратегії
Інші боти використовують різноманітні стратегії. Деякі виправляють розрив між окремими біржами, стратегія повністю залежить від швидкості. Якщо хтось скидає 1000 BTC на Bitfinex, ціна на Coinbase падає синхронно, тому що хтось поспішає виконати ринковий ордер.
Інші стратегії крутяться навколо обману інших ботів, для чого існують нескінченні тактики. Вони часто включають вигадливу позу, вводячи логіку інших у фатальну помилку. Ще інші призначені для залякування Human масовими замовленнями на купівлю чи продаж. Я впевнений, що ще багато інших, про які я навіть не підозрюю.
На практичному рівні мій бот має бути дуже QUICK. Якщо між скасуванням і розміщенням замовлень відбувається затримка навіть на кілька секунд, ринкові умови можуть призвести до того, що нові замовлення стануть невідповідними.
Замовлення, які я розміщую, Соціальні мережі здорової логіки припускаючи, що бот правильно розуміє стан книги замовлень. Це припущення триває недовго. Протягом секунди шквал значних замовлень міг спотворити фактичний книгу замовлень, так що нові замовлення, які я розробив, тепер просто неправильні.
Я також повинен стежити за ворожими ботами, які можуть розміщувати та швидко видаляти великі замовлення з наміром обдурити інших ботів. Чим швидше мій бот зможе підтримувати інформацію про книгу замовлень, тим менш сприйнятливим він буде до такої тактики. Мій бот навіть має додаткову логіку, щоб запобігти його обману фальшивими стінами томів від інших ботів.
Швидкість Human проти швидкості бота
У гонитві за швидкістю мені довелося подумати про технічні деталі, з якими я був не дуже знайомий. Мені довелося розпаралелювати багато буденних, нудних функцій. Я T можу скасувати застарілі замовлення в серійному режимі, моїм JSON-запитам потрібно було б надто багато часу, щоб відправлятися вперед і FORTH через Інтернет.
Тому що Coinbase не пропонує жодної кінцевої точки API для одночасного скасування всіх замовлень, те, про що я просив, я скасовую їх з багатьма окремими запитами паралельно. Так само Coinbase не має кінцевої точки для створення кількох замовлень одночасно. Тому я повинен надсилати кілька запитів одночасно. Синхронне рішення займе кілька секунд, що надто довго.
Дивно, як Human відчуття часу зовсім не відповідає значенню ботів. Навіть частка секунди може бути безнадійно довгою. Намагаючись наполовину менше або рухаючись наполовину швидше, ви T гарантуєте половини прибутку; вони дають нуль (або гірше). Заглиблюючись у алгоритмічний трейдинг, ONE жити в життєвому циклі бота, розтягуючи власну концепцію часу до мілісекунд. Саме в цьому масштабі я все ще бачу свого бота тупим і повільним.
Принаймні бот дізнається книгу замовлень дуже швидко. Він транслює канал websocket нових замовлень. Кожен елемент є перестановкою книги замовлень, тому я повинен підтримувати стан книги та вносити невеликі зміни, коли вони надходять.
Цей процес також паралелізований. Насправді дивовижно, наскільки це швидко, є близько 20 перестановок порядку в секунду.
Тому мій бот в основному забезпечує ліквідність. На цьому він заробляє невелику, але стабільну суму. Він містить приблизно однакову кількість біткойнів і доларів, тому різкі зміни ціни можуть призвести до збитків у певному номіналі. Але в цілому він приносить пристойний прибуток порівняно з кошиком 50/50 біткойнів/дол. США.
[пост-цитата]
Мій бот працює найкраще, коли обсяг великий, але коливання ціни невеликі. Як постачальник ліквідності, він згладжує нестабільні хвилі, які інакше виникли б без маркет-мейкерів. У цьому він забезпечує корисну функцію, тому періоди великого обсягу є найприбутковішими. У деяких випадках різкі коливання вперед- FORTH можуть призвести до того, що мій бот продовжує тримати неправильний актив. Таким чином можна втратити гроші.
Я виявив, що режими малого обсягу є найнебезпечнішими. Мій бот намагається оцінити швидкість торгівлі та відповідно модерувати глибину своїх ордерів. Це обмежує ризик бути спійманим у великих коливаннях, ціною того, що його замовлення виконуються рідше.
Я також виявив, що навколо мого балансу є значна кількість шуму. Оскільки ціна коливається, мій бот періодично втрачає гроші. Це може бути втратою грошей у 45% випадків. Але якщо він набирає інших 55%, то в довгостроковій перспективі він значно WIN .
Враховуючи ці шанси, вимірювання бота на a частий підставі ONE спостерігати більше випадків втрати протинечасті спостереження.
Це як перевірка вашого портфеля акцій. Якби у вас була гарантована стратегія, яка приносила б 10% прибутку на рік, але з нормальною кількістю шуму, ви б спостерігали збитки майже в 50% випадків, якщо спостерігали за своїм балансом досить часто, навіть якщо використовували успішну стратегію. Закон великих чисел діє лише … у більш тривалих часових масштабах.
Хоча спочатку цей бот був лише відволіканням, я зрозумів, що те, що він робить, хоч і спрощено, дійсно необхідно. ONE з найбільших проблем Bitcoin є спосіб торгівлі. Величезною проблемою є неліквідність бірж.
Порівняйте торгівлю Bitcoin з торгівлею будь-яким реальним фінансовим активом, і ви побачите цілу різницю. Фінансисти отримують величезну цінність у підтримці ефективних Ринки інших активів.
Це відбувається не просто чарівним шляхом. Bitcoin потрібні краще функціонуючі Ринки , якщо він хоче залучити серйозних гравців. Це також можливість отримати прибуток.
Навіть за поточних обсягів торгів можна отримати значну цінність, згладжуючи ринкові коливання. Якщо Bitcoin зростатиме, потреба в ліквідності також зросте. Я дізнався, що інфраструктура — це T лише сервери та сховища github. Крім того, фінансові посередники змушують Ринки працювати. Сам факт того, що я міг займатися цим, як ніхто, ілюструє чудову відкритість Bitcoin.
Ця публікація спочатку з'явилася на Середній. Його було перепубліковано тут з дозволу.
Зображення ботів через Shutterstock
Відмова від відповідальності: Цю статтю не слід розглядати як фінансову пораду чи інвестиційну рекомендацію. Перш ніж приймати інвестиційні рішення, проведіть власне детальне дослідження.
Note: The views expressed in this column are those of the author and do not necessarily reflect those of CoinDesk, Inc. or its owners and affiliates.
Andrew Barisser
Ендрю Баріссер — інженер із програмного забезпечення та Криптовалюта в Assembly. Раніше він був аспірантом біофізики в UCSB, де жахливе захоплення Bitcoin привело його до програмного забезпечення. Він також служив у Корпусі Миру в Африці. Окрім науки та Bitcoin, він любить іноземні мови, писати і споглядати непостійність.
