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. קרא עוד בתנאים וההגבלות.