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)
Thanks for reading my blog here and this is a great question. As you mentioned this would be incredibly complex to dig into if you were trying to use level 2 data. So I built something a little more basic using level 1 data. Here is an example of the basic logic to quantify this in NT:
So this example is to measure a Long Position (You can run the logic backwards for Shorts). Here we are taking the first bar printed after the order was filled. In NT the status will flip from Flat to Long. I wrote a little code logic to identify the first bar of the long position. In this bar we can quantify if the price significantly changed from the Entry Price or not. There are a couple ways of looking at this. If you go with the conservative approach you can use the Low in the case of long positions or the High in the case of Short positions, or if you want to be less pessimistic you could flip this to the Open. But the action on this bar can tell us the following:
1. If you come out of this bar flat or better vs the Entry price this was just a touch and not a pass through.
2. If you come out of this bar upside down, this was one of two things: (A. A pass through that had to occur to fill your order, or B. A touch fill, but price went against you almost immediately.)
The finer the time frame you run this on the more you could make assumptions about touch vs. pass-through, the larger the time frame the more this just becomes quantifying the action on the first bar. But run this on 1 tick and you have it.
From this I have been able to extrapolate the following:
1. How well different price points for entries work to hit a touch vs. only getting filled on pass through. For example enter at current price, current price +- .25, .5,.75,1,1.25, etc
2. How well different rests work to hit to a touch vs. only getting filled on pass through: For example place an order 1 full point from current price, then wait X number of bars before canceling and resubmitting.
3. And finally how well a trade performs overall if it starts from a touch vs. a pass through.
The correlation studies I have done on all 3 of these are in line with what you might expect. The further away you are from the action the more likely you will get filled on touch, the longer you rest, the more likely you will get filled on touch, and the touch orders tend to be far more profitable whereas the pass through orders can be a mixed bag since these often have strength going against you from the start.
Hope this helps. Let me know if you have other questions and I can try to elaborate more.
Your post is very helpful. I know you are hinting a lot of good stuff to trade from but I can not use them since I only can use ninjatrader strategy builder. It took long time to come up with my current strategy. Nothing near your result but mine seems to be profitable. I have been testing it for a few month and begun the real trading on ES.
Just curious. What kind of back up plan do you have in case of power outage or internet goes down?
Thanks for reading my blog and for inquiring. You raise a great question about power, and internet. For this particular reason I recommend renting a server and running your NT script from there.
There are lots of great ones that out there that are fairly cheap and reliable.
Here is one that I have used in the past that specializes in working with traders. They have servers near most of the exchanges, so depending on what you are trading and where you are located you can reduce your latency as well.
One of the keys to building a strong system is to constantly look for flaws, to embrace failure as a teacher and to learn from any and all mistakes. When I first started out, if I got a system even close to being profitable, I almost refused to believe that anything could be wrong with it. I was afraid to kick the tires, because this could expose me. So mediocre systems stayed mediocre.
Fast forward to today, and my attitude has done a 360 degree change. I am constantly looking for weakness, or failure or
any flaw I can find, because I know that this is the only true way to learn. Without finding weakness in a system there is no need to improve it. And every system always has a degree of weakness to it, even it you break it down to nothing more than the house edge of the market.
The reason I thought of this is because I recently started migrated my code base to NT 8 and started testing and redefining some of my strategies that have beat NT 7's market replay handily. The differences between 8 and 7 regarding the SIM engine are considerable. What works in 7 may not always work in 8 and vice versa. This obviously presenting me a whole new host of opportunities to optimize, refine and tweak my already decent strategies to prepare for the real market (Which I will likely be rolling the dice with soon).
I am enclosing a couple of screen grabs from today to illustrate the point of how you need to constantly kick your tires and look for flaws. The first pic is of a daily net profit chart running Jan 2016 to Mar 2016. At first glance this looks pretty solid, mostly all winners, decent profits, etc. But I started kicking the tires, and if you look at the second picture you can see the weakness. This system is very optimized to crush it during the normal US trading hours, but during the overnight hours the system needs a new set of rules bad! If i just never traded anything but 9-5 I would increase my profits significantly because this is a HFT system and the commissions kill me taking trades that don't pan out overnight. So now I get to bifurcate my system into 2 sets of rules.
1. The existing set of rules that work great during 9-5.
2. The new set of rules that target the low volume overnight session. I just simply need to add new variables and optimize for the typical volumes that are found overnight.
When I run this as a two step smart system, I will likely seen an increase by 20%- 30%. It was already a good system, but now I can make it even better by looking for any and every opportunity to find weakness.
It's been a while.... Approximately 7 years ago I had a live trading account. I only traded a few days, and only lost around $300 bucks total. Looking back, I realized that at the time, I had no real rules, no discipline, had no concept of money management, and no real business doing it. About the only thing I got right was knowing when to call it a day and stop.
Fast forward a few years later, I got introduced to NinjaTrader and the concept of Automated trading and I have been hooked ever since. Over the last 3 years I have developed hundreds of strategies, and I have found 50 or so that generate some decent profit in SIM / Market Replay. From this pool of 50 strategies I narrowed it down to just a handful maybe 10 or so to focus on. Over the last year I have really polished these up to the point that they are nearly too good to be true in SIM / Market Replay. I have noticed that some work extremely well in NT 8 and others work extremely well in NT 7. Some work on both, but I have learned the subtle differences of the SIM engine on both 7 and 8 and they can be considerable at times. I am inclined to believe that the live market will behave more like the SIM engine on 8, so I am taking my top strategies I have developed and I am plugging these into the Live market in the coming days.
I have posted quite a bit of trade stats on here from SIM / Market Replay over the last year, and for anyone wondering... "Yeah but, can he hit these figures in a live market?" I have been wondering this too. It's time to put my money where my mouth is and jump in the deep end of the pool.
I'll post back next week sometime once I have some statistics!
So today was a big day for me. I finally got to test out some of my ideas that I have been working on for a long time on the real market. While I can't share everything obviously, I will share some of the statistics and some interesting observations about the day.
1. First the bad.... I totally expected to logon, and turn on my strategy and see it run through around 100 trades. Regardless of how it performed, I at least expected to get off the ground. Everything started fine for about 20 minutes, and then I noticed that the live data feed seemed kinda slow, like suspiciously slow. After checking a few modules, I confirmed that NinjaTrader had frozen and become unresponsive. I was able to close my strategy and exit any position I was currently in, but that was a bit scary and unforeseen. i reached out to NinjaTrader and asked them about it, and they couldn't find any smoking gun. I got some tech support from the guy that runs the server hosting and he confirmed that NinjaTrader showed as unresponsive on the server logs but it didn't do a hard crash, instead it just kinda stopped working. After I closed it, I tried to fire it back up to check my account and make sure my positions were closed but I was instead met with the attached error message. I couldn't get it to restart from there. The guy that runs the server helped me eventually resolve it and get it back up and running, but I decided to spend the rest of the day just doing Live SIM instead of cash trading just to be safe.
2. Statistics: I had 14 trades overall from 9:30 to about 9:50. I have often wondered how some of my entry and exit systems would do in a fast moving market, so this was a good chance to see how they held up. Here are some figures.
Entries:
1. 10 of the 14 trades got filled with the bid or ask price on the signal bar prior, while for of the trades got filled on from the ask or bid price on the next bar.
2. 9 of the trades stayed flat on the first entry bar meaning they were filled on touch, while 4 of the trades had the price pass through it to get filled, so I ended up down 1 tick at some point on the first bar of the trade.
3. Attempts to get filled: Here are the number of attempts it took to get filled on each trade:
I counted the number of times an entry would be attempted but not filled. Overall I was averaging around 1.5 attempts per trade. Most of these attempts were milliseconds or seconds apart. So I don't anticipate that the few times I had multiple attempts to enter would be material.
Exits:
1. Touches / Getting Out: I averaged 3.5 touches on exits to get out of my trades. This was in line with about what I expected, though the very first trade right at 9:30 on the dot, took 9 touches to get out. I expected this though, since it was the open of the day.
2. Slippage: Because I only got to trade from 9:30 to 9:50 I was in the largest rush of the day, and therefore experienced mad slippage. 4 winning trades each lost 1 tick, and 1 losing trade had 1 tick of positive slippage in my favor. The rest were in line with my original targets. I replayed the day later in market replay for the same 15-20 minute window using the same strategy and got roughly the same slippage. I typically see both positive and negative slippage during fast times in my testing, so I wasn't surprised by this.
Obviously I don't have enough trades to tell me much at this point, but so far things seem in line with my market replay / SIM results. I will take another stab at it Monday and see how it goes.... Hopefully I can get in a full day next time!
Cool to see this progress. I'm strictly discretionary (and not very at that LOL) but it's quite interesting to see this sort of systemic process at work... gives a little insight into what I and other manual traders are up against
Looking forward to seeing how your first full day goes. Good luck!