Tweeting a question I was asked/ response regarding MM:
(me adding bonus resources):
A great example of C++ HFT MM algorithms. An improvement idea I have suggested to the author but can also be attempted by interested algotraders is that a fast model like XGBOOST (there is a C++
library) is used alongside some alphas to make spreads asymmetric before traders can trade against you and you get negative edge in those trades. A large part of market making is cheaply executing alphas by trying to get inventory on the side of your predictions and also by
getting out the way of adverse conditions by making your spreads asymmetrically wide (traders with alpha against you). github.com/hello2all/gamm…
(The question):
Regarding @TerribleQuant note :
Due to the very fine granularity of data (hidden orders,cancellations,imbalance,orders arrival rate etc),
dont you think its an overkill to label optimal actionable circumstances (setting the spreads for example),
Lets say I want to have 3 labels
1)Spread width
2)Skew of the spread
3)Signal for market or Limit order
Dont you think unsupervised algos(like RL,genetic algos) better for this type of problem as opposed to supervised ML ?
because you can just slap a reward function that reflects what I care about and its good to go.
For eg reward function would be a complex function that looks at
standard deviations
profits and drawdowns and homogeneity of trades, and many, many different things.
Love to hear your thoughts about it?
it's a tradeoff obviously. Like you can know you have people hitting you that are putting edge against you, but you may also know that there are 20x as many noise traders in the VPIN so it doesn't make sense to make it asymmetric because the marginal gain from removing those
negative alpha trades don't beat the loss of the flow from the noise traders (which inherently are always positive, since BAS is always >0, and adverse ==0 so + - 0 = +). It's a little more complex than just making it wide and frankly it's kind of an art layering
the strategies with your inventory. I gave XGBOOST as a basic example because I was assuming there was some sort of HFT MM strat running. On this note, there is a lot more you can do with order types not just limits. You should ideally be hiding your flow especially in crypto
markets and also attempt to stay one ahead using complex order types to run things like 0+ strategies where you are inherently trying to move the price up before you provide liquidity. (It's not manipulation just selective provision... or that's what the SEC gets told at least).
Yes you want to provide liquidity but if you can engineer a better price whilst not hurting the marginal response function then that is obviously something to do
There's a few elements. Fast updating of orders. Naughty order types (i.e. I send 1k buy, 200 get filled it sits
stale, price moves up 25 cents 400 fills, then price goes another 50 cents, and it all fills at that price. Suddenly at this jacked up price I find loads of liquidity, THIS IS EQUITIES!!!), removing adverse conditions, creating some cheap alpha with your inventory
dealing with the VPIN balancing act that I discussed earlier where you can know as a MM that you are having traders trade against you adversely, but you let them because you make more from the BAS of the idiots without edge.
If your order sticks out in the order flow even if it is only 1k shares or something the price gets jacked up. You can break up 50k shares into 1k pieces and it will still get jacked up each time. 200 shares (thin liquidity that exists instantly, 200-400 more shares after the
price is jacked up then actual liquidity pops out after jacking up the price even more) and that is why complex order types exist. Limit orders get killed Read the light reading section for HFT in roadmap it gives a kind of overview of this although there is a lot more to it.
Apologies for the terrible formatting, as usual, a quick note on adverse trading, sometimes it makes sense if you know those traders will have a negative edge on their whole timeframe and won't just hit your other side and get out.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I think you can probably classify modeling and feature engineering into a few areas: ML, Statistics, Time Series, Microstructural, some fun extras like entropy which are super weird to work with TA, data-mined alphas, and signal processing.
1/who knows lol
I'll probably speak on each of these eventually, but today I think it'd be good to get some publicity on signal processing. It's underhyped compared to ML and just as deserving.
2/
A lot of the literature is exclusive to electrical engineering and CS, but I can tell you there is lots of alpha in the area. As the story usually goes NN models like LSTMs get a bad rap performance-wise bc of their terrible application
3/