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)
I wish to apologies for the direction this thread took after I started posting.
I was not trying to start a war between camps, just giving my two cents worth based on my experience with both programs.
I will bow out of this thread and leave it to others.
There is nothing wrong with debate and disagreeing with one another. The reason he was banned was because he was being rude in his posts, name calling, etc. That is simply uncalled for and not tolerated, and has no place here.
I see that I missed a lot. Dang. Truly unfortunate that it came to this... Such a discussion really should be civil and respectful. I suppose if I was fully engaged with a platform, with much time invested into it, I'd have some passion too. But, I'd like to think that I'd conduct myself in a way that was not rude though. Oh well...
After searching on "multicharts amibroker backtesting", I found quite a few discussions on other forums. AmiBroker definitely has quite a few users, and does seem to offer a lot. A platform poll on one forum thought they were the most desirable...
i did find some commentary that was critical though, and if still true (a bit dated), that would be an issue for some... Here's one I found on the MC board:
"Amibroker does not have a true dynamic portfolio like MultiCharts does. Amibroker tests each symbol independently and then by hindsight simply deletes those trades that could not have occurred due to the capital limitations. Their program does not understand that next day there can be capital available to open a position. However, there will be no signal to open this position for it has been deleted. At the same time, a new order hasn’t been generated because the system does not know about the previous day’s deletion.
The result of what Amibroker calls backtesting is nothing more than an advanced batch-testing, which has nothing to do with portfolio trading. Neither does this model have anything to do with the reality."
I am Tomasz Janeczko, the author of AmiBroker. I spent 17 years of my life writing every single line of code in AmiBroker.
I don't want to enter any debate here because everyone has its own preferences, so it is just up to everyone to test free trials of various softwares and make his/her mind by him/herself.
I came here just for one reason - to correct false statements that were posted in this thread.
@TonyB - I understand that you are Multicharts user and you probably have minimum knowledge about AmiBroker and that is fine.
But making judgements and copying misinformation on AmiBroker posted on MultiCharts own forum sent by MC employee is not the best idea and not fair. Mrs Marina Pashkova (MC employee) post on Multicharts forum is an example of our competitor practice of spreading simply false information. I don't know if they do this just because they don't know Amibroker, or for the purpose of making their software selling better. It is not surprising that they are not happy with our software being more capable than theirs yet 10x less expensive.
So, to the matter, AmiBroker FULLY supports true dynamic portfolio. In fact it was supporting portfolio backtesting YEARS BEFORE Multicharts did. Whats more - Multicharts COPIED some of our portfolio backtester features when we pointed out their limitations. AmiBroker DOES NOT remove any trades in hindsight. And AmiBroker has complete knowledge that next day capital can be available and will open the trade if today it can't because of no funds. This mode in AmiBroker talk is called backtestRegularRaw. See amibroker.com/guide/h_portfolio.html
for more details.
The only excuse for Mrs Marina Pashkova may be that she could have checked AmiBroker back in 2000 (12 years ago). But since 2004 (way before Multicharts existed) AmiBroker has FULL TRUE DYNAMIC PORTFOLIO backtester,
with several backtest modes in many ways superior to MC.
What is superior you may ask? AmiBroker allows you to implement scoring and ranking systems , it allows you to implement your own backtesters (custom backtester), it allows dynamic rebalancing (modifying position on symbol A based on symbol B positions), custom smart optimizers (3 of them coming with AmiBroker as open source), etc, etc.
I have no desire to convince anyone to buy AmiBroker - my software sells great and I am happy and I don't need to prove anything to anyone.
But one thing hurts - when someone (like Mrs Marina Pashkova in the mentioned thread) deliberately lies about your work.
Someone said "If you tell a lie big enough and keep repeating it, people will eventually come to believe it". It is sad that nowadays no-one checks the facts.
Tomasz, welcome to the forum. I noticed a few minutes ago that "amibroker" was viewing this thread was hoping you would post. Thank you for doing so.
First, I'm sorry if you feel what I posted was inappropriate. Clearly (I hope to most, at least), it was not my intent to supply misinformation. I am a guy simply doing his best to learn all that I can about trading platforms, and these two are now receiving most of my interest... I'd like to know the pros and cons of these systems, and I value the input of others who have more experience than me in both back-testing and trading, as well as these programs in particular. Basically, people who are best able or equipped to ask the right questions and understand what is being said. An internet search found that information from the MC board and while I would have gladly replied to that discussion, I'm unable to do so as it is for MC subscribers only. I have just the free version (MCDT). So, I posted it here for feedback and hopefully to spur some constructive discussion... I hope you can appreciate my position.
With 17 years invested into AB, I truly understand your position. This is your baby and you are proud of it. From what little I've experienced and read thus far, you should be. If you haven't already done so, you might want to consider contacting that poster (Marina)...
From all that I have learned and experienced, the capability, speed, repeatability (back-test results) and price of AB, make it a legitimate contender. The two things that are holding me back at the moment are the limited broker relationships and the uncertainty of the AFL learning curve's steepness.
Toward that end, member NW27 has several posts in this thread of interest. I realize that you might have better things to do, but to have those factually addressed would be fantastic.
AmiBroker portfolio backtester maintains the LIST of positions (not just one variable as TS/MC), as it can open multiple positions on multiple symbols and tracks all of them. The list of open positions is accessible from the formula level via GetFirstOpenPos/GetNextOpenPos as shown in the code above. This way you get the access to the Trade object that has IsLong/IsShort methods to detect whenever you are currently long or short on given position, you can query current position value, size (number of shares/contracts), you can scale positions up/down and do everything imaginable.
AmiBroker backtester interface is object oriented and what may initially look as a little more complex stuff to write gives you infinite flexibility at the end of the day. The problem with Tradestation/MC Easylanguage is that it is "easy" only at the beginning, at some point you hit the wall of either something being not realizable or running way too slow to be usable or simply blowing up entire app because you run out of resources. Try running backtest on whole universe of US markets (8000+ symbols) or do some advanced sorting/ranking/rebalancing systems and then you will know what I am talking about. But of course there are many traders out there and different trading methodologies. For traders who trade 1 or 2 instruments only and some simple strategies Easylanguage may look good. AmiBroker serves different purpose - it is mainly advanced system development platform for quantitative system traders.
If you have any future questions/comments please contact our technical support : support at amibroker dot com because quite frankly I am very busy and I don't have time to spend on forums as I would rather spend free time with my family or improving the software that I use by myself for trading and system design.
I think time has come for you and I to answer users’ questions and provide information from primary sources, so that there are no myths floating about. To calm the emotions a little bit, I’d like to begin by saying that our statements several years ago were made with intention of presenting objective information, although we did allow inaccuracies and that must be admitted. I don’t know where the accusation comes from that Marina was trying to “deliberately” state false information; that is hearsay since it’s just your conjecture without any proof.
We simply took a demo of your program, got backtesting results, and published them. Later we found out that Amibroker can be used correctly only after reading the help from A to Z. We apologize for that. In the past we made two statements regarding the backtesting speed, and capabilities of portfolio backtesting. Our test results are objective and can be recreated. Another question is that we did not expect for your program to behave drastically differently after changing some obscure parameters that are not obvious to a new user.
In the first instance, we used your backtester and it was slower than MultiCharts. You explained it by saying that portfolio backtesting is by definition slower than individual backtesting, which we were not aware of. In MultiCharts the individual and portfolio backtesting work with essentially the same speed, so we didn’t know that a good program could work like you described. We are ready to conduct new objective speed tests with you to show users that, with all other things equal, the speed of our programs is comparable. I am not sure who will have the slightly better numbers, but it’s obvious that the difference will not be drastic.
Regarding portfolio backtesting. Marina based her thought process on standard working procedures, where you do two sets of calculations and then filter out trades. In this case, her statements are correct in saying that portfolio logic did not enter into the trade creation process, and only filtered out redundant ones. One result of using such logic is the increased speed, which can be seen in the link you published.
To obtain correct calculations, it’s necessary to use Raw2 method, as you mention in your article:
“In Raw2 modes all exit signals (even redundant ones) are passed to second phase of backtest just in case that you want implement strategy that skips first exit. Lets suppose that you want to exit on some condition from first phase but only in certain hours or after certain numbers of bars in trade or only when portfolio equity condition is met. Now you can do that in Raw2 modes. Note that Raw2 modes can get significantly slower when you are using custom backtester code that iterates thru signals as there can be zillions of exit signals in the lists even for symbols that never generated any entry signals, therefore it is advised to use it only when absolutely necessary. Raw2 modes are also the most memory consuming. Note also that if you run the system WITHOUT custom backtest procedure there should be no difference between Raw and Raw2 modes (other than speed & memory usage) as first matching exit signal is what is used by default.”
This interface is there for a reason. It essentially provides low-level control over the way backtesting works, forcing the programmer to do the work that the backtester should be doing. That means that all other calculation methods except for “custom” are actually batch testing with the second stage of calculations. This is what Marina discovered.
We apologize. We did not know that to test a simple strategy a trader (not a programmer) must spend such considerable time and effort.
It goes from bar to bar into the future and never goes back, which is exactly what happens in real life. If we copied anything from AB, we would also have 6 confusing calculation methods like you describe: Portfolio-level back testing
Regarding comparative speed tests under identical conditions – let’s do it. I think your program will be slightly faster under the same conditions, but that difference will be negligible. The difference in speed is due to the fact that we have to maintain EasyLanguage compatibility. In your case, you are free to do what you want, so you can achieve better optimization. IN any case, with genetic optimization available, this issue is not important – the main goals are ease of use and convenience. In MultiCharts you don’t need to read the entire help file before you can begin working. That has always been our guiding principle when building our program.
MultiCharts - Raising the Trading Standard.
Please send me a private message if you have any further questions about MultiCharts
Oh yes, I heard that old "complexity" song already. One of your favorite and perfect excuse for ignorance. Sorry, but you are wrong again. Raw2 mode is not required. Custom backtester is also not required for realistic backtesting. The features are there because our users have different needs (usually very complex and diverging needs) and the only platform that allows implementing their ideas is AB. Raw2 in fact was added on request of *single person* (a friend of mine) for his quant research.
Realistic true portfolio level backtesting in AmiBroker is as simple as pressing Backtest button. No extra code, no extra settings. While speaking about complexity - our formulas are in majority of cases way shorter than on any other platform. Want a proof? Check the Traders' Tips section at Stocks and Commodities. AmiBroker formulas for articles are almost always the shortest.
The problem is that you do not know AmiBroker and its capabilities yet you feel free to spread information that is simply incorrect. I would appreciate if you stop. It would be better for you and me. For me simply because I have no time to waste correcting all of that. For you, because you want to be regarded as pro.
I follow live and let live approach. I have nothing against your software. Let customers download and try the software and decide by themselves.
Why don't you just let it go and accept the fact that not everyone is the same and no single platform is everybody's choice.
I am single person writing the software for myself. I decided to sell it because people asked me to make it available because they could not find anything comparable anywhere. So I did.
I don't even compete with you. I am too old and got one life to live and don't have time for your little games.
So would you please get off my back. Feel free to sing songs how MC is the next best thing since sliced bread but refrain from commenting about things you have no idea about, as with dozens of staff you have, by myself I have very little chance catching up correcting all the stuff you post here and there. Thank you.
This is over and out from me.
Remember: live and let live.