20 Comments

Trend following strategies famously do well if you exclude trading costs. What happens when you add something like 5bps costs to your calculations?

Expand full comment

The strategy will obviously have a worse performance the higher.

Anyway, 5 bps looks insanely high for an instrument with a bid-ask spread of 1/10th of a basis point

Expand full comment

I think that’s reasonable. And in cases where you take out leverage your borrowing cost will be hefty. I can’t imagine commissions cheaper than 5bps.

Expand full comment

Thanks! So far, I've been trading only stocks... futures are something new. I will try something with fewer trades to accommodate higher trading costs...

Cheers!

Expand full comment

Why do you choose the 1 minute time frame? Isn't that noisy to begin with? And why so many trades in one day?

Expand full comment

I'm actually just working on a 1h system, which is much better. 1min was the first exercise, as I mentioned in the article.

A 1h-system has a much lower frequency, can accommodate trading costs better, and thus delivers much better results

Expand full comment

Ah, I see. This is so interesting getting to know how you guys think. You certainly take your game to the next level.

Expand full comment

Be very careful using the spread to estimate your fills. Best Bid/Ask is an illusion in today's HFT dominated market. Empirically, Adds and Cancellations are ~90% of the orderflow on any given day. Currently on NQ it is quite normal to experience 3-5 ticks of slippage even on an order of just 2-4 contracts. Just last week I had the latter part of a 6 contract market order get slipped by 12 ticks(IBKR).

Expand full comment

Thanks! I’ll work on decreasing the frequency… it should allow for 3-5 ticks of slippage :)

Expand full comment

Very insightful article! Would you mind elaborating what choice of R for KF1 and KF2 you have chosen? I am trying to replicate the expirement. Cheers!

Expand full comment

Hi! Thanks! Try a few different powers of 10; you will get what I used fairly easily ;)

Expand full comment

For KF1 and KF2, do you change the length of the moving average or measurement noise R to get different results or both? How do you fit differeces between 2 KFs in a percentage distribution without introducing future data? Thanks!

Expand full comment

The only difference between both KFs is the parameter R.

The 2nd question is a great one. When applying the rank function in Python (what computes the percentile rank), you should apply it only to the past values (rolling or expanding). If you are curious, though, you will see that the 3 scenarios (rolling, expanding, or applying at once with all values) will produce almost exact same results :)

Expand full comment

Was the choice of ma length and parameter R, Q also optimized/fitted using test data?

Expand full comment

Good job. Intraday BO is a good strat. Try on 1 hr timeframe, hold overnight to minimize costs

Expand full comment

Great article. Would be interesting to test 15 minutes and above.

Expand full comment

Great read!

Expand full comment

excellent piece of work

Expand full comment

Great job. How would it look like on a daily timeframe?

Expand full comment
Comment removed
Dec 11Edited
Comment removed
Expand full comment

As I mentioned, this is a first study on NQ, as a lot of people ask me to. My live systems are on stocks, not futures.

Expand full comment