ROBO_Trading

Охота на антикомиссию

ROBO_Trading Обновлено   
BITMEX:XBTUSD.P   Bitcoin
Krokodilushka
bands 1.4 дня 3 у меня работает, пока в плюсик, с начала января показывает что могло бы быть ~100%. радостно. лучше чем я криворучка


Пост может быть интересен только алготрейдерам/программистам. Торговая идея состоит в том как же всё-таки поймать эту антикомиссию у BitMEX. Чем я последние пару суток и занимался, скушав несколько собачек, могу поделиться опытом. Сведениями о расположении подводных камней.

На первый взгляд всё просто: надо просто выставить лимитный ордер в стакан как можно ближе к цене и просто подождать. Но не тут то было. Ничего удивительного в том что такой подход работает примерно в половине случаев :) В другой половине случаев цена улетает подальше от твоего лимитника и возвращаться что-то не хотит. И это казалось бы тоже просто - надо просто постоянно пододвигать ордер поближе к спреду и рано или поздно он сработает. И это оказалось тоже не правда :) Сдвигая ордер постоянно происходит противная штука - выставляешь ордер, а спред то двигается, в итоге очень частое явление что ордер то переместил, но ты уже не мейкер, а тейкер, следовательно платишь комиссию 0.075%, и халява на -0.025% уже убежала. То есть не так то просто эту самую халяву поймать :) Ну это ладно если надо один ордер только выставить, а вот мне то надо выставлять более 100 ордеров одновременно, что кратно ухудшает все шансы на получение вожделенной.

Начал пробовать разные подходы в деле ловли халявы. Лучше всего сработала вот такая идея: перед тем как выставится ордер надо получить orderbook (стаканы), а делается оно так (нужна авторизация по ключу):

www.bitmex.com/...v1/orderBook/L2?symbol=XBT...

Список выглядит примерно так:

{"symbol":"XBTUSD","id":8798927750,"side":"Sell","size":118313,"price":10722.5},
{"symbol":"XBTUSD","id":8798927800,"side":"Buy","size":2773,"price":10722},

Оттуда выдираем самую высокую цену для Buy и самую низкую цену для Sell. Это и есть крайние ордеры в стакане. К лучшей Sell-цене прибавляем 5 баксов, у лучшей Buy-цене убавляем 5 баксов - и вот по этим ценам должны выставляться ордеры нашим ботом. Но... этого мало. Так как спред то двигается постоянно, поэтому выставленные таким образом ордеры сработают с шансом в 50%. А что это значит? А значит что в половине случаев будет халява на -0.025%, и в половине комиссия 0.075%. В среднем получается мы платим комиссию 0.05%. Так цель не достигнута.

Решение в том чтобы софт постоянно двигал наш ордер на расстоянии 5 баксов от спреда. Скажем раз в секунду пусть передвигает ордер. Так с шансом более чем в 90% срабатывает лимитный ордер. Иногда всё равно получается маркет-ордер, так как спред может двигаться слишком быстро и наш софт просто не успеет обновить данные о стакане. Но впрочем, в 90% случаев входить лимиткой это уже антикомиссия в итоге. Ведь тогда на 9 лимитных входов будет лишь 1 маркет-вход. Или 9 * -0.025% + 1 * 0.075% = -0.15% за 10 ордеров. То есть биржа нам заплатит :)

Но без подводных камней было бы не интересно. Можно именно изменять цену в ордере (API имеют такую функцию), а можно более тупо отменять ордер и выставлять новый. Но во втором варианте важно сначала именно отменять ордер, а уже потом выставлять новый. Не наоборот. Если действовать наоборот, сначала выставлять новый, а потом отменять старый, то из-за какой-то миллисекундой задержки софт просто не успеет отменить старый ордер, и его накроют. То есть сработают оба ордера. Вот поэтому надо сначала отменять старый.

И далее еще один камень под водой. Периодически биржа бывает перегружена и на несколько секунд API отваливаются, что не страшно. И возникает такая трабла: сначала сделана команда на отмену старого ордера, и она не проходит из-за перегруженности API биржи, а потом выставляется новый. Но так как старый то не отменился, то в итоге на бирже висит уже 2 ордера, вместо планируемого одного, ну и с шансом в 50% сработают оба опять :)
Комментарий:
У этого камня решение тоже очевидно и простое - нельзя выставлять новый ордер, пока от биржи не получено подтверждение что старый она отменила.

Ну вот с этими камнями я уже разобрался. Теперь вот новых жду :) Робот сутки бегает по BitMEXу, пока стабильно вроде плюсуюет там. Причем чуть ли не половина прибыли получается от ловли этой антикомиссии, а не от самих прогнозов. Так что у меня даже мысль возникла попробовать создать какого-нибудь робота-лудомана, который вообще без прогнозов будет на авось просто антикомиссию ловить постоянно :) Вдруг сработает? )))

Отказ от ответственности

Все виды контента, которые вы можете увидеть на TradingView, не являются финансовыми, инвестиционными, торговыми или любыми другими рекомендациями. Мы не предоставляем советы по покупке и продаже активов. Подробнее — в Условиях использования TradingView.