Since then however, I have completely wiped my PC, installed a clean copy of 32-bit XP Home, and tweaked it to be completely set up for performance (i.e, no extra graphics, indexing disabled, etc.). I have even launched NT as a realtime priority process, and used a CPU affinity program to assign anything else that might be running to one of the other cores on my quad-core CPU (so NT has 3 cores all to itself, not that it's taking advantage of that anyways). I also created a 1 Gig RAM Drive and put my pagefile.sys on there to reduce disk swapping.
My system is a Core i7 920 with 12 gigs of RAM, although at the moment obviously only 3 Gigs are addressable with a 32 bit OS on there. Currently Windows reports 1 Gig of ram still free with the above-mentioned settings.
Here is my issue, which occurs with the simulator:
Whenever the volume is very heavy, the actual processing of trades is usually delayed by a sometimes significant margin. For example, today in heavy volume I pressed the market buy key, and while the Red X appeared immediately in the SuperDOM, the system just hung for about 5 full seconds before I finally heard the "order filled" message - at whatever the price had already spiked to.
I have the following charts open:
A 1-minute candle chart with bollinger bands, volume, stochastics, and inverse fisher transform. (CalculateOnBarClose is set to false for volume/stochs/fisher, true for bollinger. The look-back period is set to 100 bars.)
A 3-minute candle chart with exactly the same settings as above.
A 4-Range chart with no indicators at all (price only), set to 1-day lookback period.
A 4-Range chart with 3 moving averages and 3 linear regression lines, set to CalculateOnBarClose = true, lookback period of 1000 bars (around 1 day or so on YM which is what I was trading)
A 2-Range chart with 2 linear regression lines set to CalcOnBarClose = true, lookback period of 350 bars.
A 20-second chart with bollinger bands, set to calcOnBarClose = true, simple volume indicator with calcOnBarClose = false, lookback period = 200 bars.
Time and Sales window (91 rows)
SuperDOM
That's it. 6 relatively simple charts, with very small lookback periods, using mostly off-the-shelf indicators, plus one T&S and one DOM... I do have a bit of custom code in an indicator that uses about 4-5 very simple if/then statements in C# to decide which color to paint the bars, but that can't be causing this issue since the processing time for that is negligible.
Also, my database file is brand-new, as I just renamed the old one this morning - so that's not the issue either. I have set Enforce Immediate Fills in the simulator options section to true, although the issue happens whether that is checked or not.
This is the most simple setup I can come up with that allows me to trade my style, and basically at the moment NT is making it very hard for me to do that, at least in demo mode.... I need to be sure that when I click the market order button that my order gets sent to the exchange right then, and not after NT is finished doing something else first.
So here are my questions:
1. Does the setup I described sound like it should be causing NT this many problems on my machine? (The 6 charts are pretty simple and my CPU is powerful... this shouldn't be happening, no matter what.)
2. Have you ever heard of a situation where an order can take up to 5 seconds to be placed for real at the exchange, even if the system is overburdened with too many charts? I can't imagine that this would be the case, or else nobody would be using NT.
3. Is anyone running with a setup that is at least as complicated or more complicated than this, and what is your real-world performance like? How long between the time you click the market order button and the time you hear the confirmation come back, best-case and worst-case? How many charts do you have open, and what type of calculations are being done?
Even if this is only a demo issue (and I suspect that it probably is), you guys still need to make sure that you fix it, because it makes simulated trading act very differently from real trading during heavy volume periods, if that is the case. (I might also add that it makes your software look very bad to someone who is just trying it out before they place real trades - not everyone is going to go to the lengths I have to figure this out.)
My main concern obviously is that this doesn't occur during live trading - I would like an answer to this before I attempt to try it out with real trades...
Thanks!
Comment