Home › Forums › Trading System Mentor Course Community › Progress Journal › Julian’s Journal
- This topic is empty.
-
AuthorPosts
-
December 11, 2019 at 1:21 am #110681JulianCohenParticipant
I think it might be the $1 min that’s causing me the issues. The system on the SP1500 has a $10 min and that is very stable.
I’ll try again with a $10 min and see what happens.
Thanks for the feedback chaps
December 11, 2019 at 3:28 am #110682ScottMcNabParticipantOr maybe keep the $1 min to get exposure to the larger % moves but compensate with turnover filter ?
December 11, 2019 at 3:40 am #110683LEONARDZIRParticipantJulian,
I couldn’t get any MOC or MR system to make any good profits this year. I heard speculation that the hedge funds have been playing in the 3-5 day return playground for years and their trading has taken away the edges for mean reversion. For example RSI(2) and Connors(RSI) don’t seem to work in realtime.
As far as missing fills I noticed that with some of the low liquidity stocks I trade ,when you put your limit order in the market sometimes somebody will front run your order knowing your buy order is in there as a backstop.Other missed fills occur when your limit order is the low of the day.
Also there doesn’t seem to be a lot of money chasing stocks under 20 bucks in the R3000
Be interested to see how you fare.December 11, 2019 at 4:29 am #110685JulianCohenParticipantLen Zir wrote:Julian,
I couldn’t get any MOC or MR system to make any good profits this year. I heard speculation that the hedge funds have been playing in the 3-5 day return playground for years and their trading has taken away the edges for mean reversion. For example RSI(2) and Connors(RSI) don’t seem to work in realtime.
As far as missing fills I noticed that with some of the low liquidity stocks I trade ,when you put your limit order in the market sometimes somebody will front run your order knowing your buy order is in there as a backstop.Other missed fills occur when your limit order is the low of the day.
Also there doesn’t seem to be a lot of money chasing stocks under 20 bucks in the R3000
Be interested to see how you fare.I’ll let you know how I go Len. I have written two more MOC systems, none of them rely on any of Larry’s indicators as I believe they are pretty much traded out. Seeing as he is now pushing Quantamentals I’m guessing he thinks they are traded out too.
December 11, 2019 at 4:30 am #110684JulianCohenParticipantScott McNab wrote:Or maybe keep the $1 min to get exposure to the larger % moves but compensate with turnover filter ?I went back and retested and found $10 min gave just as good results, if not slightly better, so I’ll probably stick with it.
I’ll bear the turnover filter in mind though
December 11, 2019 at 10:01 am #110686AnonymousInactiveWhat did the distribution look like? Was there more meat in the +/- 5’s and less in the tails?
December 11, 2019 at 11:52 pm #110687JulianCohenParticipantMatthew O’Keefe wrote:What did the distribution look like? Was there more meat in the +/- 5’s and less in the tails?The distribution for $1 and $10 is actually quite similar.
December 12, 2019 at 11:09 am #110688AnonymousInactiveThat looks beautiful!
If there aren’t a large amount of additional trades, if the distributions are largely similar, then I would definitely default to the $10+ if this is what the distribution looks like.
Do you do an exhaustive optimisation over a realistic period in which you are NOT going to withdraw funds from the system, and with starting starting capital, say, 100,000 going up to 10,000,000 with increments of 100,000 and in the Backtester Settings Portfolio tab, Limit trade size as % of entry bar volume to something like 5%? I do this, then see what the results of things like the Ulcer performance index, or the Sharpe ratio look like as the capital grows in size and see at what point these stats start dropping off. For example I do it over a three year period, because it is highly unlikely that I will run a system for three full years and not withdraw a single cent from it. Hell I will probably withdraw funds after 12 months, or reallocate etc.. Perhaps in three years, on the first increment of 100,000 plus the profit over three years might be 60,000 (therefore a total of 160K capital in the system at end of year three). As the test starts along, perhaps 100,000 and 200,000 and 300,000 let’s say your Sharpe stays at 0.90 each and every time it should stay steady at 0.90 like a plateau up until a certain point where you are hitting that 5% entry bar limit you set in the backtest settings. Let’s say it happens at the 900,000 mark, where after three years you have 250,000 in profit on top of that. Your sharpe might drop to 0.87 and then at the next increment it drops to 0.83 and then after that it is 0.79. Pretty quickly you will see the only answer for the drop is that you are running into the 5% limit by having too much capital in the system and expecting to buy too many units on each trade. If the drop started at 900,000 + 250,000 this tells you that if you are going to start to use say 1,150,000 USD in capital or more within this system then you are already at its effective limit without bumping into 5% cap issues. This cap issue may be why you may not get quick or immediate fills. In this example, where you are obviously hitting the ceiling at 1,150,000 I probably would only ever trade perhaps 5, 6, 700K in this type of system and no more. If I had more money I wanted to allocate, I would need to go back to the drawing board and be willing to raise the $ minimum to 15 or $20 or the max positions to 60, 70, 80 positions. The only way the ceiling is going to raise is with needing less units to be bought on each position.
Regardless of the amounts I have used here as examples, the concept should work for any amount on any system. There is obviously going to be a magic tipping point that you can’t just keep adding capital and scaling it up. I use this method towards the end of my system building to make sure I have not built something that will be impossible to trade in real time.
Is 5% limit a good number to use? Maybe. That’s what I use for this part of testing. I think the default in Amibroker is 10%. Some people don’t even like to exceed 1% of the daily volume.
I was having this problem earlier in the year before I had my lightbulb moment. I was very stupidly trying to buy 40,000 units on some trades, and then getting the shits when I didn’t get my fills. Even though the daily volume traded was 30 mil units and my trade was only a fraction of the daily volume (and there I was thinking “My order is only a fraction of one percent of what is trading, why wont they fill it instantly????”), this didn’t matter, because TWS couldn’t fill it all in one hit. It would take about 60 seconds to fill across multiple trades and the price target was well and truly gone by then. Only since I have been targeting trades of say 500, 1,000 or 2,000 units at a time can I get immediate or very responsive fills at my target price. If 2,000 units is the limit (not saying it is, just an example) then if you have a $10 minimum it is likely you are buying positions worth $20,000. If you have a 50 position system then the total capital is 1 Mil. If you are at 4x leverage then already you are going to run into the limits if you have 250,000 in funds allocated to this system. If you want to allocate more than 250k then you are going to have decide where the compromise is. Don’t use so much leverage. Use more positions. Raise the $10 limit. Or be willing to lose some trades every now and then. And of course it is just the low priced symbols that have the problem. With 250k capital, 4x leverage to 1 Mil, 50 positions, you’d be buying $20,000 positions. On the $50 stocks you will only need to be ordering 400 units which is super easy to get a fill. So yeah it’s those annoying low priced ones causing the issue of needing to get fills on high quantities in short periods of time.
December 12, 2019 at 10:35 pm #110690JulianCohenParticipantYou raise a lot of very good points here Matthew, most of which I have considered but not thought my way through yet. I need to digest this post a little
December 12, 2019 at 11:24 pm #110691ScottMcNabParticipantMatthew O’Keefe wrote:Is 5% limit a good number to use? Maybe. That’s what I use for this part of testing. I think the default in Amibroker is 10%. Some people don’t even like to exceed 1% of the daily volume.
No doubt varies for systems, market and the orders using with it…issues that have been raised multiple times…how large can the orders be before live results deviate sig from backtest ?
might be helpful to start a new post where people (if comfortable) can post the results of live systems with respect to position size..ie what they have traded successfully….is a sensitive topic tho as introduces element of personal finances….in a mature private forum like this people may be comfortable sharing ? Break down into
MOC
MRV
Rotn (buy on mkt open?)
TF (buy stop, MOC etc)December 17, 2019 at 8:33 am #110693AnonymousInactiveHi Matthew, thanks for your thoughts on this. A quick follow-up question – where have you been informed that TWS can’t fill a 40k share order (for example) in a short period of time? I wouldn’t have imagined this to be a constraint of TWS.
As I have commented elsewhere, this has been an issue for me at times. I have used a filter to limit my trade size to less than 1% of daily turnover but my issue may be exactly what you are highlighting here – i.e. the limiting factor to receiving good fills is actually the number of shares per trade rather than only a % of daily turnover.
Thanks again.
December 17, 2019 at 11:57 am #110699AnonymousInactiveDustin,
It has just been my experience from earlier in the year when I was trying to get fills on such large quantities as this. I haven’t had any specific confirmation from IB or anywhere else, that they can’t or won’t or are unable to. It is just a real world experience.
You can very easily see the constraints in how the orders get filled within TWS at these sorts of volumes. I cannot say what the exact science is nor how’s and why’s, however it is very clear that even though volume for a particular symbol may be massive within the day ( I mean 20 Mil units traded within the day) that even though you may place a 40,000 unit order (just 0.2 of a percentage point of the daily volume) it still never seems to execute all as one lot and instead is always seemingly broken up into smaller lots. I don’t think I have ever seen a single 40,000 unit order executed all in one lump, instantly. It is usually something rather random looking, like a 600 unit lot, and then a 2,312 unit lot, and then a 1,800 unit lot and then a 6,770 unit lot and then a 300 unit lot and then a 1,000 unit lot and so on. I am obviously plucking these numbers out of the air, however it only ever seems to be in the hundreds or the thousands in the lot size. Maybe a few times I have seen a 10,000 or a 15,000 unit fill all in one lot, however I don’t think I have ever seen a 40,000 unit order filled all in one hit. You can easily see the lot size in TWS trade history.
I am not overly complaining about it. I have learned my lesson and I guess it is logical too. Just because a market price is available right now doesn’t mean it is openly available as a price for any volume I wish to trade, even when the daily volume is seemingly high.
So in the end the only solution I have come up with is to not trade a system that asks for anything more than about a 5, 6, 7,000 unit order as the maximum, but this is not a hard and fast rule. A crude and brute force solution I know, but what else can I do? And it only really becomes an issue on the 10, 15, 20 dollar symbols. Once I am playing/trading in the 30, 40, 50 dollar plus symbols my systems are only needing hundreds or low thousands in the volume which can mostly be instantly filled in one lot, or broken up into just two or three lots.
And its not perfect either. For example last night I had an order for LL at 10.01 for 6,709 units and only got a partial fill of 1,979 units all in one lot and after that the price disappeared and I missed the rest of the order. As there was a +10 cent difference between my fill and the close price I missed out on $473 profit for the day. I am not saying I am happy to lose 473 profit on one trade, however it is swings and roundabouts and also works against my favour at times as well. Have a 473 win here, suffer a 473 loss there, all for the same reason.
So again this is another time when if a system in a 12 month period is going to have perhaps 10,000 orders and 1,500 fills, then if you lose 100 of them or get partial fills on another 100 of them, then so long as the system is designed to only be making money in the guts of the +/- 5% trades and not only depending on a handful of long tail trades to make the money and avoid the losses, then really who cares when this stuff happens? Or who cares if I miss a night of trade because I was on a plane? If this stuff is changing my backtested expectation of 17% CAR to an actual of 16% or backtested drawdown of 15% to real drawdown of 16%, then it doesn’t really make much of a difference. This view can only come as a result of a system with many trades, many positions in the system, and small allocation per trade.
Also for this reason I don’t use the “Limit trade size as % of entry bar volume” setting in the backtester when I am first building my systems in order to see if they are worthy ideas or not (I set it to 0). I only use this setting at say 5% as a last step in the process to see what limits there may be in total maximum capital that I can allocate to the system before it starts to have an affect over a short period of time (say two or three years at most). This is because of this reason we are discussing here. I find that even if I set a really grossly small number in this setting like 1% for trade size limit, that this leads you into a false sense of security that “Amibroker is handling that part and I’ve been really conservative with my 1% setting” when really, as discussed, the daily trade size limit as a percentage of the daily volume is not the bottleneck, it is the speed at which TWS can execute a large lot order in the small amount of time it has to catch your limit order price. It is this false sense of security that led me to my woes earlier in the year. I would wrack my brain for hours… “But I have set the trade size limit to 1% and the daily volume is 10 Mil, so what is wrong with my order of 35,000 units? what am I doing wrong? why can’t it work? why can’t I get the fills?”.
For me, I know that in my systems I am not going to build them today, fund them today, trade them today and let them run for the next 10 to 15 years without any withdrawals or fund reallocation or position size changes or total number of positions traded whatsoever. I’ll easily take profits or redistribute funds or have entirely different systems to trade in a few years from now. So I think it is quite ok to use zero trade size limit for a 15 year backtest (Even though by 15th year your backtest may show you are purchasing 50% of the daily traded volume on some symbols) so long as at the end of my build/test I do set a limit of say 5%, and then within a reasonable period of say the first two or three years of trade and within a reasonably accurate amount of money that I know I am going to allocate to this system as a maximum and so long as within these first two or three years I am still not hitting a 5% trade size limit, and so long as within those two or three years I am still ending up with order quantities that are not exceeding perhaps 5, 6, 7,000 units at most within those first two or three years, then I’m fine with it and would trade it. I am never going to run this system into the 15th year when I need to place an order for 1.5 Mil units on a single order/symbol, but I do still want to know if my system holds water throughout the entire backtest period in terms of my settings, criteria, the concepts in play in the system etc. For me, for systems like this, there is no point robbing myself or lying to myself about a system which “doesn’t work because I am hitting a daily trade size limit in years 10 to 15” when I know that this condition of needing to place a 1.5 mil unit order in 15 years time is just absolutely never going to be met in real trade. The only thing this will do is stop you from trading a system today because you believe it wont work in the 15th year. Or it will fool you into setting a certain number of positions with really low volumes TODAY, so that you still don’t run into the 5% daily trade size limit after the account grows into the 15th year, which is nonsense. What is the point of setting a system parameter today because you believe you can only set it at a maximum of 500 units to order today because “anything more than this, today, means I’ll need to order 20,000 units in year 15 when my capital grows, and I thought Matt said he couldn’t get fills on 20,000 unit orders. Ok, I better set the limit today to just 500 units”. This is a fallacy and will only stop you from setting your parameters to what you know you need them to be, today, for today’s practicalities. Worry about year 15 daily trade size volume exceeding practical limits in year 15. For the next two or three years these are the only periods (in my opinion) that you need to worry about exceeding daily trade size limits and TWS order/volume execution practicalities. All the years after that need to hold water and work as a system only for the important parts of your system for things like the entry/exit criteria, indicators etc.
December 17, 2019 at 8:16 pm #110700Nick RadgeKeymasterQuote:I don’t think I have ever seen a single 40,000 unit order executed all in one lumpThe reason is because there isn’t a single exchange as such – unlike Australia. In Australia there is a single exchange where there is only one place that all volume sits.
That’s not the case in the US. The US has ‘one exchange’ but uses ‘venues’ operated by market makers. This is what the IB Smart Routing does – sends your orders to the best venue at any given point in time. These venues need to follow the SEC NBBO rules, but it means larger orders get broken up to get filled at the most efficient venue at that time. As market makers may not be providing the wanted size, it means the orders have to move around several venues.
Have you guys used Scale Orders yet?
December 18, 2019 at 12:22 pm #110701AnonymousInactiveThanks a lot guys – appreciate your thoughts and experience on this.
December 18, 2019 at 12:37 pm #110703AnonymousInactiveI’ve not used a scale order before. I get the feeling, from the link you provided Nick, that this may still not allow for large order execution within a short frame of time to catch a low market price in real time. My comments/concerns on this issue are only related to the intraday reversion, MOC system where you buy at the ATR stretch low and sell MOC end of day. For other systems like buy at open, trend, swing, holding for a few days/weeks/months etc I don’t mind so much if pricing shifts by cents or order is executed in 10 lots or takes 60 seconds to fill. It’s the “needing it to fill within 1 second” type of orders that are the ones I am trying to catch.
-
AuthorPosts
- You must be logged in to reply to this topic.