I notice MultiCharts makes many posts on Big Mike's Trading Forum. They are pretty good about answering simple questions. And they are quick to thank posters who write complimentary posts about them.
Why won't they put their thoughts in on this thread ? And if you do want to comment, MultiCharts, also please tell me why all day long I see my strategy signals being 'inserted' 40, 50, 60 seconds and more LATER than when they should have been inserted. And not only that, but they are then inserted several bars back in time, to where they should have been inserted in the first place.
It could be that Stan has not seen the thread. You might PM him and give him the URL if you want to be sure.
Due to time constraints, please do not PM me if your question can be resolved or answered on the forum.
Need help? 1) Stop changing things. No new indicators, charts, or methods. Be consistent with what is in front of you first. 2) Start a journal and post to it daily with the trades you made to show your strengths and weaknesses. 3) Set goals for yourself to reach daily. Make them about how you trade, not how much money you make. 4) Accept responsibility for your actions. Stop looking elsewhere to explain away poor performance. 5) Where to start as a trader? Watch this webinar and read this thread for hundreds of questions and answers. 6) Help using the forum? Watch this video to learn general tips on using the site.
If you want to support our community, become an Elite Member.
So, took me a while to read every post. A number of issues were discussed, including optimistic backtesting while losing money in real-time, and different ways to improve the live results by optimizing several things - minimizing slippage (using limits for instance instead of market orders), reducing latency, and avoiding high-frequency trading at the retail level.
A short novel can be written about each one of those points, so I'll talk about each one a little. This post will focus on making backtesting more accurate and giving you a more accurate picture of what to expect during live trading.
Backtesting will always differ from real trading, it's only an assumption of what 'would have' happened given certain assumptions. The goal of MultiCharts is to minimize these assumptions and to make backtesting as realistic as possible, and the two may get pretty close, but you should still be aware of the differences. For instance, backtesting assumes all of your orders are filled instantly, which may not happen during real trading - there may be a line up of people in front of you, or not enough liquidity. The broker may reject your order because the market moved, your internet connection may go down, there could be a number of other possibilities in real trading that prevent your order from getting filled. You should be aware of this possibility.
Some traders complain that trades that 'should have happened' according to backtesting don't happen in real life, and when they turn off autotrading, the trades appear. That may be due to the difficulties I described above, but it also may be due to the fact that backtesting is not precise enough. In real trading, scripts are evaluated on a tick-by-tick level, and not every single point between high and low of a bar may be available. Trades also get filled at ask and bid, while most backtesting takes place on Trade prices. When backtesting is not fine-tuned enough, it will give you more optimistic results, and may show you arrows where they would not happen in real life. Here are some things you can do to improve your backtesting results (by improve I mean make them more accurate, and less optimistic).
First, there is the Bar Magnifier (as Mike described previously). Conventional backtesting on minute, hourly or daily bars will only take into account the OHLC values and it will ignore the price movements within the bar. Bar Magnifier will load up more precise data behind the scenes (to the degree you specify, 1 tick for instance) and even though you may be looking at 1 min bars, the strategy will actually calculate on a tick-by-tick level. You need tick data for the period, or else there is no data for MC to use. If you are on higher resolutions such as a day, you may want to magnify your bars to the minute. If you are just backtesting without the magnifier the backtesting engine will assume that if Open is higher than the Close then price fist moved to the high then the low and then to the close O-H-L-C. If the close is higher then the open, backtesting will assume the following movement O-L-H-C. If there is no magnifier, every point within the bar is considered viable for purchasing.
During live trading IntrabarOrderGeneration mode in your study will allow you to place orders inside the bar, as soon as your condition is met. You can turn it off if you want to match your backtesting without the Bar Magnifier.
You can also load up Ask and Bid series, add them to your chart, and use Extended Backtesting to get filled at the more realistic ask and bid prices. This will make your results much less optimistic.
There are also other assumptions that you can specify in the Strategy Properties, such as expected slippage and commissions. It's usually a good idea to set them as much or higher that you expect in real-life, to give you less optimistic results.
Finally there is an assumption for backtesting for limit orders, you can assume that your limits will not get filled instantly.
MultiCharts - Raising the Trading Standard.
Please send me a private message if you have any further questions about MultiCharts
The following 3 users say Thank You to MultiCharts for this post:
Thank you for your response, Stan. But it really didn't answer the problems I have mentioned.
I do use Bar Magnifier. I do use IntraBar Order Generation. I have tried the Bid/Ask stuff. And there is still the humongous difference between 'live' backtesting results and re-compiled backtesting results. I make a small change in the program (like removing a semicolon and then replacing it), then re-compile it, and then get immensely better results in the backtesting summary. Trades after this re-compilation are now shown at much better prices, and many trades that were shown during 'live' that were losers have now been completely eliminated.
Why does this happen, when all that was done was to re-compile the exact same code? If Bar Magnifier and IntraBar Order Generation truly work, then there should be NO CHANGE. This really bothers me. It should not happen and I believe it can be 'fixed' (by MultiCharts).
Thanks again for your time.
-- Bob Baker
Last edited by bobbakerr; July 7th, 2011 at 11:41 AM.
Reason: typing mistake
I think the problem is a limitation of multicharts that many other institutional backtesting platform don't have.
If it would be possible trade on data2 and data 3 it will be more easy, because you need to set
in the strategy code only this input data1=ask data2=bid data3=trade and plot on workspace data1,data2 data3.
When you want to BUY you should plot only data1 = ASK
When you want to SELL you should plot only data1 = ASK
To check trade that really go using DATA3=trade
Now to have more realistic results you have
to divide your strategy in 3 part:
ong code strategy only for buy set on data1=ask backtest it and recorde the value
short code strategy only for short set on data1=bid
backtest it and recorde the value.
Rebuilt code 1A, and 1B using data1=trade and take only trade done on this database.
All outliners are in slippage so you shoul check value of data1=ask or data2=bid where are touch.
It will be nice if multichart permit trade on data1,2, and use data3 value of trade to built a internal engine that works,
and not an option to change the limit order to market after 10 seconds..these is prehistoric way to do....
I give a very good advice to improve backtesting of multicharts, I hope they go...
The difference will be when
When you want to BUY you should plot only data1 = ASK
When you want to SHORT you should plot only data2 = BID
Engine check on data3=trade.
These are only my 2 cents...
The following user says Thank You to bomberone1 for this post:
Is this the same code you sent me a few weeks back? I thought it must be looking ahead to the end of the bar of data2 in the backtest. In real time it doesn't have that luxury...
The strategy made unbelievable profits even when fed with the SAME data in both series (the logical basis of the trading idea was that one contract leads the other in given conditions). I'm sorry to have to say this and don't want to let you down, but this is just one of those things. You would have to use other technology to make a profit from trading the difference between a new contract and an expiring one, this is surely the realm of high speed algos, not retail traders. Yes you are right the backtest is most misleading, but, for me, it failed at the first reality check.
Yes, it's basically the same code. I have tried minor changes. And I have tried time-based charts and tick-based charts. All 3 (including the original Range charts), give the same misleading results between 'live' backtesting results and then re-compiling the same programs.
If the backtesting does indeed 'look ahead to the end of the bar in data2', then that is wrong and that is cheating. Why is Bar Magnifier then advertised as looking at each tick as it occurs? It's evidently NOT happening. This NEEDS TO BE CORRECTED AND CHANGED by MultiCharts. [TradeStation I have already given up on.]
You haven't 'let me down', Paul. The backtesting differences had already let me down. And it should NOT be 'just one of those things'. The results are misleading and cause naive, believing idiots like me to lose real money. I'm sure that TradeStation and MultiCharts know of these inconsistencies, errors, and limitations. Yet they still continue to advertise (or imply) that they don't happen. They should come out with strong disclaimers that 'Bar Magnifier', etc., only work occasionally. They should state that Backtesting code really doesn't mean anything. Sure, it gives you a 'start' in finding a program that just might work better than others, but to try to trade Automatically off of it should never be done. And that is really what is behind all the hype in this programming and backtesting. I think most people that have done this for awhile and have finally reached their stress limits would love to have a program that over time just makes money -- and by doing it in an automated mode.
I truly believe that changes CAN be made in the way data is received and stored (by MultiCharts). They are way above TradeStation in what their technology allows. But to really be THE BEST, they need to fix this 'Bar Magnifier' problem. If each trade is received Tick by Tick, then it should and can be analysed by their software absolutely correctly. I have been hurt financially (and hurt even more by continually getting my hopes crashed), and this is ethically not right.
Please, MultiCharts, address this flaw. Make Backtesting equal the results of the signals generated by the Live data feed. Then simple people like me will know if they honestly stand a chance in developing an Automated trading program.
As an update, I have been working on ES with basically the same program, using Range bars. I get the same backtesting problems. But because ES has so much more volume than CL and because it is much less volatile, I don't think I'll be hurt as much in Live Trading (in an automated mode) as I was with CL.
The backtested results so far show +37,102 Net for 1 contract on only 296 R.T.'s with an 86.2% Success Ratio in 22 trading days. The Longest Losing Streak has been -$1158. The last 20 trading days have each shown positive net results. The Commission was figured at a high $4.47 per R.T. with Slippage at $12.50 per R.T.