You want to get into $100k of SHIT-PERP within the next 5 minutes.
How do you know if you did a good job?
Here is one way of thinking about it... 👇👇👇
At the time you declare your intent to trade, you want to take a snapshot price to benchmark your execution performance against.
We'll call that the "Arrival Price".
Let's say it's the weighted midpoint (microprice) of SHIT-PERP at the point you decide we want to trade.
Now we'd start trading.
Maybe we just YOLO a market buy for the full amount in one go?
Maybe we split it into bits, and run a simple TWAP algo?
Maybe we do a more sophisticated thing: a mixture of opportunistic quoting and taking liquidity when it's available?
Now, once we're fully filled on our $100k, we can compare the value we traded at (before or after commission) to the arrival price.
This tells us the headline amount we "slipped" in this trade vs the arrival price.
Let's go through two simple examples to discuss some nuances.
Take the first example where we YOLO into the full $100k on a single market order.
- the x axis is time / y-axis price
- the purple dotted line is arrival price
- the black line is midpoint
- the green and red lines are best bid and offer
- green triangle is a fill.
Our total shortfall vs arrival price is the price we traded at and the arrival price - and any fees we paid.
But we can break it down further:
- Slippage (time): price moves between deciding to trade and order hitting book
- Bid/ask spread: price we pay to take any liquidity
- Market impact: price we pay to take lots of liquidity.
In this case, because we traded the whole lot in one go - our price impact would be considerable because we'll have blown through a few of levels on the ask side of the book.
Now let's look at a dumb TWAP algo.
Instead of trading in one go, we're going to split it into 4 trades and buy a quarter at market each time.
Now we've reduced our market impact. (In all but one case in the example we traded at the best offer.)
But we added more uncertainty to our execution result because we took longer to complete the order.
This meant that the price had time to drift around.
We got a bit unlucky here, cos price drifted upwards when we were trying to buy.
If you consider the price process to be a driftless random walk, then you expect price to go in your favour as often as it goes against you.
So you *might* think of this only as a variance cost.
However:
- your own trading will have an impact on prices that tends to push them away from you (even if tiny)
- you probably wouldn't be trying to buy it if you didn't think it was gonna go up
And a good alpha tends to decay quick. The juice tends to be at the start.
So you expect time to cost you in expected returns as well as variance in execution performance.
(BTW That variance has an impact on how you analyze trade performance. The longer you take to get into a trade, the more it becomes a necessity to analyze many trades in aggregate.)
You wanna trade quick with no impact, of course, but that ain't available.
So here's yer trade-off:
- Trade quicker: More alpha capture (before cost), more market impact, less variance
- Trade slower: Less alpha capture, less market impact, more variance.
Almgren and Criss's Optimal Execution of Portfolio Transactions is a good thing to read if you are interested in this: quantitativebrokers.com/s/Optimal-Exec…
• • •
Missing some Tweet in this thread? You can try to
force a refresh
There's a podcast he did with @choffstein where he talks about "disturbances in the force" and how traders get paid to provide liquidity where its needed and offset it elsewhere.
The prices of the futures as a function of their time to expiry looks like below.
You step away from the desk to make some tea.
And, upon your return, you see a different picture...
1/n
What happened to the Feb expiry?
It kinda sticks up.
The curve looks kinky now.
Why?
2/n
Could be many things:
1. Random large demand for that expiry has created temporary price impact, likely to revert 2. New info impacting that month is being priced efficiently 3. Somebody knows something and you're likely to see more demand come in behind in that expiry
3/n
People say a lot of things about trading, and most of it is worthless.
So it's useful to be able to quickly discard ideas.
Let's take an example...
Many in crypto, including @zhusu, will tell you that buying new highs is a good plan.
Is it? Let's have a look...
1/n
It's important to understand that discarding ideas is a lot easier and quicker than verifying ideas.
Your mission is not to do the most perfect simulation of reality from the offset. You'll waste a lot of time doing that.
You want to do very quick data analysis.
2/n
Plenty of time to go deep later.
We: 1. pull daily price data for all FTX spot contracts 3. for each asset for each day, calculate the 20d high 4. calculate the distance in days from the 20d high 5. calculate next day log returns
3/n