If you mean the trading methodology, absolutely true. Conditionally false. IB does have a simulator, and I use it all the time. But at some point, I feel I need to trade the smallest amount of real money to continue to learn and develop the system. I believe as long as a trader is trading a system according to fixed rules, follows them, analyzes and learns from the results, then he profits. That's what I'm doing now. But you bring up a good point and remind me that I need to work out the current issue in the methodology before expanding to three markets. Thank you for that.
(1) So, what are your criteria for trading with the smallest amount of real money? (2) Then, what are your criteria for increasing the size? Those two questions are about the trading methodology, not the software. On to the software, including writing code for a commercial platform: (3) What are your criteria for trading with the smallest amount of real money? These are not new questions. They've been asked over and over again, and they'll continue to be asked.
Yes. For starters, you mentioned you test all of your ideas on a simulator before trading real money. So what are your criteria for switching over to real money? Personally, I don't test for P/L on a simulator. I only use the simulator for one day, each time there is a significant change in the software or methodology. This is just to ensure everything is functioning correctly, and follows many automated static tests with canned market data. I get my P/L distributions from forward testing. I get my risk analysis from the forward-tested distribution. I also do edge verification separately from P/L, and I don't know anyone else who does this or has even considered the concept. I use entries and exits from forward testing for edge verification.
Testing on a simulator IS forward testing.... First, let's define an edge in it's most simplest of terms. An edge is the ability of a system to consistently recover from drawdowns. There are gradations of edges as indicated by the standard profile statistics (i.e., mathematical expectation, sharpe, avg win/avg loss, etc), but in it's most basic form the edge needs to have the ability to withstand drawdowns. Therefore, you should start with analyzing the size of both past and forward testing period drawdowns via it's mean and standard deviation. The more drawdowns that you can capture the more confidence you will have in the edge. For example, a system that has recovered from 30 drawdowns during a forward period is more reliable than a system that has recovered from only 5 drawdowns during a forward period or even 30 drawdowns from a backtested period for that matter (depending on the quality of your data and the method used for conducting the backtest experiment). An additional criteria is the length of the forward test period. I personally like to see a forward test of at least 3 months (to encompass different market environments) and 30 drawdowns and at least 100 trades before I make a decision of whether to go live with the system. What have I risked with this procedure? Zero dollars. What have I gained with this procedure? A more clear answer on the viability of the edge. If you can enter the system when the drawdowns are statistically stable and build profits with small position sizes, you have just taken from the "house". Then all you have to do is grow your account out of the house's money while being very careful not to dip deep into your risk stake. Finally, you can use the drawdown statistics gathered during the forward testing period to determine when the edge might be eroding or disappearing. For example, if you encounter a drawdown after going live that exceeds 4-5 standard deviations of the mean then this is a clear warning indication to step aside and re-evaluate. This is a simplification of my entire methodology but I think you get the drift.
Thanks for posting that Hurricane. I'm always comparing various distributions from my methodologies to that from random trades. I do a lot of Monte-carlo with the distributions I get to figure where my P/L should be and what the drawdowns should look like. However I have found it very useful to look at things more fundamental than P/L. In fact, I once stopped trading a particular methodology after two bad trades because the effectiveness of the entries fell completely outside the distribution I was expecting. Thus I can't imagine waiting until my cumulative P/L has fallen 3 or 4 std dev's from the expected mean. To me that's like checking the health of a patient by inspecting for rigor mortis.
After thinking about Friday's losses over the weekend, I conclude the problem is general to trading a support and resistance model. After a breakout, let's say an upwards breakout, resistance can become support. So if you are selling that resistance, you're going to have to deal with the price dropping back into the top of your zone, then back up again. That's what happened to me on Friday. So what I'm going to try first is adding another pre-condition to a support/resistance pullback trade: require the price to be in the band for a certain amount of time, or a certain number of ticks. It doesn't have to be (and certainly can't be) perfect. We just have to filter out some really bad entries. The analogy is what I described earlier about breakouts. If you trade breakouts by setting a stop order, you'll be burned here and there for some big losses when the price just pokes over and crashes back down. To filter these out, just add a time delay before placing the order. Of course, that requires you to buy the pullback after the breakout, so you miss out on some price explosions. It's the price to pay for "insurance". To figure out how much time or how many ticks, I'm going to look at the past week a do a little market characterization. Then I'm going to write the new condition modules, put them under automated tests with canned data, and trade one day on the simulator to make sure nothing blows up. Then I'm going live again with 1 contract. In other news, I wrote a nifty little python program to process my XML output files and tally up lots of neat information, in a form I can pass to and graph up with R. So in a few days I should have some nice graphics to post. (Why graphing in R? Well, I used to do it in Python, but R saves a lot of time since it's made for statistical analyses, while Python is of course a more general purpose tool.)
Well, by my reading of your procedure, you could (in principle, your software permitting) accomplish the same thing by: (1) Using data from up 3 months ago for modeling/fitting/calibrating your methodology (2) Simulating from 3 months ago to the present. You end up in the same place as if 3 months ago, you used all available data and then forward tested on a simulator for 3 months. Again, software permitting. Thus, I disagree with the statement that you have risked zero dollars with your procedure. You have lost the opportunity for 3 months of trading a profitable system. That's a real $ loss.
Did you compare waiting for some time vs buying the breakout immediately on historical data? For how many years, you mind posting the results if you compared the two choices? My testing on a particular breakout strategy on ES showed that if I miss explosive moves by waiting, returns become lower and DD increases. I will try to find out the results and post, but that won't prove anything. Because, different kinds of breakouts in different markets can have different results.
You probably could do it your way...but I prefer my method in order to reduce the risks of selection bias and/or inaccurate backtest data (i.e., the data may not look the same when loaded during a backtest as it would've looked during a real-time session depending on how it's timestamped in the software)...