В данной статье будем обсуждать проблемы, с которыми Вы наверняка столкнётесь, если решите торговать валютный арбитраж. Это - HFT, как оно есть. Из-за этого в коде придётся применять некоторые типы упрощения для скорости, и могут быть совершенно разные проблемы.
Брать объёмы, доступные по валюте из портфеля биржи во время валютного арбитража, в большинстве случаев представляется невозможным.
Поэтому нужен способ расчёта объёмов, которые бы изначально проходили.
Так во время расчёта последовательности и прибыльности по ней округления объёмов происходят в последний момент. В этот момент могут возникнуть различного рода проблемы из-за округлений в не ту сторону, и связка не закроется.
Решение.
Всегда указывать в общих настройках комиссию и её принудительное вычитание из объёмов, которые будут выставлены в последовательности на втором и третьем шаге:
Данные настройки, даже если Вы платите комиссию в валюте биржи, или её вовсе нет, помогут отрезать от объёмов на втором и третьем шаге небольшую часть. Они будут оставаться у Вас на счету, но при этом проблем с кол-вом исполняемых объёмов не будет.
Самая большая проблема, которая возникнет почти везде, кроме бирж криптовалют третьего эшелона. Скорее всего на любой бирже из ТОП 10 уже есть несколько роботов, написанных на С++, которые забирают всю прибыль. И в лоб использовать стратегию валютного арбитража нельзя. С выходом и возвратом из USDT.
Решение.
Использовать стратегии, ориентированные на предоставление ликвидности существенно ниже или выше рынка, для роботов совершающих ошибки, торгующих медленно или Маркет заявками.
Почитать об этом можно здесь: https://o-s-a.net/posts/currency-arbitrage-theory-frond-running.html
Может быть так, что Вам нужен только лишь один сигнал о прибыльности по источнику для валютных арбитражей, но его стандартная торговая логика Вам не подходит.
В таком случае Вам нужно брать сигнал о прибыльности по последовательности в BotTabPolygon, а торговать в скринерах, реализуя свою торговую логику внутри вашего бота.
Концептуально архитектура такого решения может выглядеть так:
Это может быть по совершенно разным причинам. Основная описана в главе один, данной статьи.
Итак:
1) Вы послали в последовательность сигнал о том, что надо сделать сделку.
2) Первая сделка открылась.
3) Вторая сделка выдала Fail и не прошла.
4) Что делать?
Для начала открыть общий журнал:
И далее:
1) По очереди открыть сначала список открытых позиций, потом закрытых.
2) И поудалять из них все записи.
Далее Вам придётся пойти в вёб-терминал биржи и закрыть все позиции, если они открылись вручную.
Здесь можно задать вопросы и поделиться своими мыслями по поводу данной стратегии: https://t.me/o_s_a_chat
Os Engine поддержка терминала: https://t.me/osengine_official_support
Комментарии