Home › Forums › Trading System Mentor Course Community › Performance Metrics & Brag Mat › MOC System Missed Entry Orders
- This topic is empty.
-
AuthorPosts
-
May 5, 2019 at 1:35 pm #101872AnonymousInactive
Hi All,
I wanted to start a quick discussion on MOC systems and the “slippage” that you are realizing relative to your AmiBroker results.
Specifically, the issue that I have noticed is that I am not getting filled on some of the most profitable trades. While the Norgate data is not wrong, I have noticed that occasionally a share price will spike down for the first seconds of the day on very little volume and then return to a more normal price. Correctly, Norgate recognizes the low, however, I am not actually filled in Interactive Brokers due to the small volume “traded” at those low levels. Coincidentally, these trades represent some of the most profitable trades in my MOC backtests. I am running most of my MOC systems on a trial basis on the Russell 1000 index and include a liquidity filter such that my trade volume is less than 1% of the average daily trade volume for the last 5 days. I am also testing a MOC system on the S&P500 constituent list to see if this type of slippage is reduced but still had the same issue this past week with the ticker HAS. HAS on May 3rd is a perfect example of what I am referring to, although I find it usually happens on the open (whereas in this case it happened intraday).
For those of you who have been running these MOC systems for an extended period of time, how have you found this type of “slippage” to impact your returns vs. the returns indicated to your backtests? I have been reconciling my trades on a weekly basis to see how much I am off relative to the backtest but I really don’t have a long enough sample to give me any confidence that it is relevant.
I question if this doesn’t significantly impact some of the seemingly very attractive MOC systems, given the slim alpha that MOC systems typically have. If you miss a good portion of what should have been your best trades, I’m not sure if the strategies would still hold up. One would need minutely data to actually test this though. Or alternatively have years of reconciliations between Amibroker backtests and actually trading results in order to see how much “slippage” there is in the system.
Happy to hear opinions or thoughts from those of you who have been doing this longer than I have.
Best,
DustinMay 5, 2019 at 5:55 pm #109983SaidBitarMemberactually regarding the topic of missing entries i modified my MOC recently so the entry condition is not Low <= Limit price but L +0.01 < Limit price
this will eliminate from my backtest all the trades that i bought on the low of the day or 1 cent away from the lowthis way my backtest is more pessimist but i know what to expect, regarding slippage i believe over time they balance out sometimes it is with you and sometimes it is against. Honestly i do not check them
May 5, 2019 at 7:17 pm #109986AnonymousInactiveGood idea Said. I will try that and see how it impacts my systems. I do find that often it isn’t a matter of 1 cent though… you can have these large moves in the first seconds of the day that aren’t practically tradable. Good to note that you haven’t noticed this type of slippage to be a major concern though. Thanks.
May 6, 2019 at 12:54 am #109989JulianCohenParticipantI get them and it is frustrating when they occur. I have found that once in a while I do get a fill on these, but pretty much always a partial fill, so there is a small glimmer of hope there. I count it as part of doing business.
May 6, 2019 at 3:59 am #109990Nick RadgeKeymasterI think you’ll find these are off market trades and they’re officially recognised by the exchange they appear in Norgate data.
I suggest you review Time & Sales function on the IB platform to see the exact reason.
May 6, 2019 at 8:47 pm #109993AnonymousInactiveYa, I generally compare the theoretical fill price with a minutely chart and find they almost always happen in the first minute of the day, on an intraminute basis. So its just like a flash trade on no volume. It isn’t incorrect that it appears in Norgate data, it just isn’t possible to get these fills. Anyway, I will keep tracking the slippage to see what the impact is longer term.
Thanks for the thoughts and suggestions guys.
November 4, 2019 at 12:14 am #109999TerryDunneParticipantI’m slowly catching up on the thought processes of the smart people here…when I first read this thread I mentally shrugged my shoulders. However, now that I’m near finalizing my mean reversion system, this has become a much bigger issue in my mind.
Not only is there the risk of slippage in the way Dustin highlighted, but also there is the issue of slippage on exiting, whether a MOC exit or next day open.
Has anybody been able to accumulate any stats on these types of slippage? I had data from many years ago on the differences between the open and my fills for entries and exits, but that was for a trend following system and in any case is probably out of date now.
Without slippage, my system makes on average about 1.4% per trade. But it wouldn’t take much slippage to turn a very healthy system into something that isn’t tradeable…
Best wishes,
Terry
November 4, 2019 at 1:28 am #110527JulianCohenParticipantThey happen about once maybe twice a month for me so I didn’t bother to record them. To put that into perspective I did 55 trades on my MOC last month, and that was a slow month. I had one of those issues. I’m trading the Russell 1000, and I chose not to trade the 2000 nor the 3000 as the number of missed trades would exponentially increase.
November 4, 2019 at 3:25 am #110528ScottMcNabParticipantHi Terry
I have a separate afl I use now when both testing and monitoring my mrv systems to try and estimate the impact of these missed trades (ie miss getting a fill either because off market trade or because trade happened at one of the exchanges other than the primary exchange prior to first trade on primary exchange or just wasn’t liquidity at the low such that only got a partial fill…etc)
…was idea of Said’s I think from a while ago..its not exact but it has given me a reasonably accurate live result so far…I change the code so that the low of the day needs to be a tick lower than my actual buylimit to get a fill….doesn’t replicate what going on exactly of course
This change results in worse backtest metrics but as long as:
1. these results are still acceptable when doing system design/testing and
2. the live results are as good or better than results of this modified afl
then I feel comfortableEdit: just saw Said posted same thing in May…apologies
November 4, 2019 at 4:58 am #110529AnonymousInactiveI see trading a larger universe and having a larger number of positions as a good way to combat this by helping to not have a system that depends on profits from ‘long tail’ trades (especially if these large quantity orders to be filled in a short amount of time at the open are the long tails).
You want your system to be making profits in a large number of trades right in the meat of the distribution curve, not have it only become profitable if the long tail gains/losses are included. I see the long tail gains/losses as an artifact I need to accept in ensuring the meaty part of the curve is where I make the money. I would much rather a system that performs 10,000 trades in ten years across smaller positions and makes the core profits from a boring, low return on 9,800 of those trades in the meaty part of the distribution and put up with 200 trades in long tail wins/losses along the way that don’t end up skewing the results much, as compared to say, a 1,500 trades in 10 years system that might be making a little more profit every trade or in fact depending on the profits of the 200 long tail trades to be viable.
Losing/skipping/missing trades in a high volume environment where each and every trade becoming absolutely, critically, accurately, correctly filled (or not) becomes more of a “whatever” moment when they do get missed. High volume and a 50 dollar problem as opposed to low volume and a 2000 dollar problem so to speak. This also helps if you were out too late tonight having dinner and drank too much and forgot to put your trades on or you were in a plane and had no access for 24 hours.
Julian, understood that you don’t wish to trade a broader universe as the likelihood of these slippage/missed fills increasing, however I think it does not exponentially increase as a problem at the same rate the universe broadens (or at least my experience hasn’t seen an explosion in these errors with a broader universe). If anything, a broader universe and more positions helps combat this problem to the point where if you do miss a trade, it is much less relevant and you care less.
For example, perhaps a 20 position system (forgetting leverage for a minute), in addition to the amount of funds you are using (let’s say 200,000 USD) and also what you have set for minimum share price (Let’s say 10 USD), this would see each position at 10K USD and on a 10 USD minimum that’s 1,000 units to buy at open.
Now assume 50 positions and everything else the same (10 USD min, 200K funds) this would see you needing to buy each position at 4K USD and therefore just 400 units to buy at most at open.
Obviously needing a quick fill on 400 positions is going to have a much better chance of happening than needing a 1000 unit fill.
Earlier in the year I was facing the same problem. I was telling myself (and trading) systems with a smaller number of positions (e.g. 15 positions) and thought this was preferable to systems with 50 positions. Along with the leverage my systems were hoping to try and get fills on 5,000 to 20,000 units at the open on one symbol. This was a real nightmare because as we know you get the fill in buckets. You might get a 600 unit fill, then another 380 units, then another 1600 units then 850 units (etc etc with seemingly random bucket size until the full 15,000 unit order is filled at which point 60 seconds has passed and the price is no where near the open and your average fill price does not reflect your target).
Since then I have learned my lesson and now trade two systems with 60 positions each and half the funds each and I’m now needing a fill on about 3,000 units at the absolute most on the very lowest price symbols, and usually it is more like a few hundred units on average that I need to fill so usually I’ll get an instant fill in one bucket. On the occasions where I now get a partial fill (or a missed fill altogether) I am not too worried about it as it is only a small miss in a much larger pool of tens of thousands of trades over time. In the hundreds of trades I’ve done since redesigning the system, I’ve probably missed altogether or had partial fill five or six times. And they are only a few hundred dollars missed here and there, and some helped me and some to my detriment, as compared to missing perhaps thousands of dollars missed here and there before, and on a much more frequent basis (before, in a month of 300 orders and 30 fills I would miss a fill or get a partial fill perhaps 5 to 10 times and the damage was horrible. Now, in a month of 2000 orders and 250 fills I would get a partial fill or a missed fill altogether maybe five or six times and the damage is negligible).
Something else I have done to reduce slippage and give myself the best possible chance of getting rapid fills is by running TWS and API on my server in New York which performs my trades (I trade only US markets, no AU markets). I don’t use a VPS, I use a bare metal dedicated server because I believe this is better for a few different reasons (which I’ll share if you are interested).
November 4, 2019 at 5:46 am #110532JulianCohenParticipantInteresting Matthew. Righto I’m off down the rabbit hole for a while. Be back soon
November 4, 2019 at 6:03 am #110534AnonymousInactiveHey by the way, I’m sorry but I realise now I probably shouldn’t write the way I do here in the forum. Me saying things like “You want your system to be….” and “This is better than that….” is probably sending the wrong message like I’m an expert, know it all, telling you what to do etc.
I’m not trying to preach or state any of my ways are better, just trying to give an angle from my perspective. I guess my brain dump onto paper doesn’t work well sometimes.
I’ll be more careful to express my opinions as opinions only next time…
Cheers,
MattNovember 4, 2019 at 6:22 am #110535JulianCohenParticipantNah didn’t take it that way at all mate. I took it in the manner you intended and I’m already testing my systems to see what happens.
November 4, 2019 at 1:45 pm #110536SaidBitarMemberi also trade R1000 for MOC and slippage is rare thing and can be ignored.
regarding trading R2000 or R3000 i agree it provides larger universe and higher number of fills but there is one main issue for me, during backtest i assume i am hitting 4 times leverage 40*10 while in reality not all stocks can be leveraged 4 times some are only 2x some 1x some 1.5x
since these data are not found in the backtesting stage this is why i avoid these two groups.November 4, 2019 at 1:48 pm #110537SaidBitarMemberanother thing the above problem exits in R1000 but the number of stocks that can not be leveraged 4:1 is smaller
-
AuthorPosts
- You must be logged in to reply to this topic.