Execution performance stuff.

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
 

Keep Current with Robot James

Robot James Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @therobotjames

2 Dec
I see discussion about entries and exits in systematic trading. I don't really think like that.

I trade when:
1) I can get a good price
2) I have to.

1) is dependent on others. You can't force people to trade with you at bad prices.

It needs patience.
Let's say you wait and you take an opportunity to buy cheap.

Now you are long.

The market moves and now it's trading at a price you think is fair.

What do you do?
You would like to reduce your exposure because you have no edge anymore.

Carrying positions with no edge costs you in pnl variance, with no expected returns.

But reducing the position involves trading. And trading at a fair price is an immediate loss. It costs you money.
Read 6 tweets
1 Dec
USDTBULL on FTX is up over 50% in a year.

It holds USDT-PERP rebalanced to 3x leverage.

A long USDT-PERP position only paid funding at an average of about 5% p.a. over that period.

So where did the rest of those returns come from?

What am I missing?

Seems... wrong. 🤔
Most likely what @factorialzeros and @ArchipCapital have pointed out.

The token would be buying more and more USDT-PERP as it rebalanced.

And the cashflows would be relatively consistent and USDT-PERP v low vol, it would compound very effectively.
As my man @IDrawCharts said in the comments, you could DIY this much better yourself.

- Long USDT-PERP
- Re-invest funding received back in by buying more USDT-PERP.

Obviously, there's a reason people are pushing those perps down (it's tether innit) so do your own research.
Read 4 tweets
26 Nov
"how do you know when something is cheap?" 👇
@KrisAbdelmessih better at explaining this than me 🙏
And @bennpeifert too.

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.

A really beautiful description of the art.
Read 4 tweets
26 Nov
You see a lot of trade theses that look like sell-side research.

"We think this will happen, which will cause this to happen, which will cause this..."

"This company/project is better than this one, so I think it will outperform.."

You don't need to play such unreliable games.
Most reliable approaches to trading don't involve grand predictions of the future.

Just...

What's being over-offered now?
What's being over-bid now?

I spend most of my time trading the crypto markets at the moment.

I'm spectacularly uninformed about the projects.
I have no idea what the future looks like.

But sometimes I can buy an asset at $100 and sell a future on it for $110.

Sometimes people place limit orders and leave them alone. And I can take them if the market moves and they become attractive.
Read 6 tweets
16 Nov
"Ask questions now? Or ask questions later?"

Imagine you are trading a futures product.

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
Read 15 tweets
14 Nov
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
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(