Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
limit orders, fill rate, algotrading, backtesting, IOC orders.
Please advise on how to measure and increase one's fill rate of limit orders?
I've recently implemented a relatively high frequency intraday trading strategy (30 -50 trades a day) on e-mini S&P500 futures. During backtest it showed impressive results, however during live trading not all of my orders were filled and performannce deteriorated significantly.
Ofcourse this was a backtesting mistake - I didn't take into account market liquidity and my position in the queue. I learned this the hard way.
I've read that one way to go about this issue is to use good infrastructure and IOC orders, however I do not understand how good infrastructure will increase my fill rate. If i trade e-minis, there is allways around 400 to 500 contracts sitting on each price level during the RTH session, so no matter how fast my execution is (even if its less than 1 msec.) I won't be able to get first in the queue to guaranty my fill as soon as price touches my price level and few trades go off at that level.
So could someone please leaborate on this issue a bit more - how good infrastructure and instant execution may help increase the fill rate? May be someone could point out some research in this field? I would apreciate any info on this matter.
Can you help answer these questions from other members on NexusFi?
This is an issue I ran into a couple months ago with developing a strategy that trades roughly the same number of contracts you are targeting. I can't help you much with picking up execution speeds (you are still bound by FIFO rules), but what helped me was incorporating "anticipation" into my program. Are you calculating on bar close or waiting until a statement is = true before sending your orders? If so, try figuring out what price from the current price would cause your order conditions to return true and place pending orders at those levels. If your orders are unidirectional (you only place buy stops and not also buy limits, for example), there really isn't much of a downside to this approach. Hope this helps.
Unfortunately, almost no matter what you do, you likely will not be able to make the strategy profitable. The idea of the previous reply from @elynt - try to anticipate signals and place them sooner - is a neat idea, but even then you'll likely still be joining a big queue (and of course, you will be at the end of the line, albeit shorter one).
One sure way to get your backtest to match real time trading is to change your code (most trading platforms have options to do this) to fill limit orders only when your limit price is exceeded by a tick. Then, in the real world you are guaranteed a fill, and your backtest will match this.
This approach is a little conservative (you will sometimes be filled without exceeding limit price), and your backtest will not show those profitable trades. But then you'll be pleasantly surprised, as opposed to what you have now, where you are unpleasantly surprised.
The downside is that this approach makes developing trading strategies about 100x harder. But it is closer to reality.
I found that market replay give more accurate results ni comparison with live trade then with pure backtesting. Lucky me that i did not just start live on my profiatable backtested, walkforward tested strategies which i found was pure losers in sim and market replay. Something with ninjatraders tick timestamp order is not right.
Trading: Primarily Energy but also a little Equities, Fixed Income, Metals and Crypto.
Frequency: Many times daily
Duration: Never
Posts: 5,041 since Dec 2013
Thanks Given: 4,375
Thanks Received: 10,192
Another strategy, and one employed by lots of market makers, is to enter a ladder of orders, purely to maintain your position in the queue. Then as the price gets to your level you have the option to leave it in and hopefully get a quicker fill, or to remove it, normally changing the price so that it drops to the bottom of your ladder. You will get better fills but you also open yourself up to get filled on orders you do not want in fast markets.