NexusFi: Find Your Edge


Home Menu

 





Backtesting and Research: MultiCharts or AmiBroker


Discussion in Platforms and Indicators

Updated
      Top Posters
    1. looks_one TonyB with 16 posts (1 thanks)
    2. looks_two ArshT with 16 posts (6 thanks)
    3. looks_3 NW27 with 14 posts (11 thanks)
    4. looks_4 Big Mike with 7 posts (2 thanks)
      Best Posters
    1. looks_one amibroker with 6.3 thanks per post
    2. looks_two lurker with 2 thanks per post
    3. looks_3 NW27 with 0.8 thanks per post
    4. looks_4 ArshT with 0.4 thanks per post
    1. trending_up 52,378 views
    2. thumb_up 54 thanks given
    3. group 17 followers
    1. forum 74 posts
    2. attach_file 4 attachments




Closed Thread
 
Search this Thread

Backtesting and Research: MultiCharts or AmiBroker

  #61 (permalink)
 ArshT 
London England
 
Posts: 16 since Feb 2012


TonyB View Post
Mike, thanks for the follow-up. Makes sense as AB doesn't have an emphasis on discretionary trading...

I don't think so. You decide what's your emphasis. And you decide how you wanna design that emphasis. There are examples enough


Can you help answer these questions
from other members on NexusFi?
New Micros: Ultra 10-Year & Ultra T-Bond -- Live Now
Treasury Notes and Bonds
My NT8 Volume Profile Split by Asian/Euro/Open
NinjaTrader
The space time continuum and the dynamics of a financial …
Emini and Emicro Index
ZombieSqueeze
Platforms and Indicators
Are there any eval firms that allow you to sink to your …
Traders Hideout
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Get funded firms 2023/2024 - Any recommendations or word …
60 thanks
Funded Trader platforms
37 thanks
NexusFi site changelog and issues/problem reporting
24 thanks
GFIs1 1 DAX trade per day journal
22 thanks
The Program
19 thanks
  #62 (permalink)
 
Big Mike's Avatar
 Big Mike 
Manta, Ecuador
Site Administrator
Developer
Swing Trader
 
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,399 since Jun 2009
Thanks Given: 33,175
Thanks Received: 101,541

Moderator Notice
Moderator Notice



Mike

We're here to help: just ask the community or contact our Help Desk

Quick Links: Change your Username or Register as a Vendor
Searching for trading reviews? Review this list
Lifetime Elite Membership: Sign-up for only $149 USD
Exclusive money saving offers from our Site Sponsors: Browse Offers
Report problems with the site: Using the NexusFi changelog thread
Follow me on Twitter Visit my NexusFi Trade Journal
  #63 (permalink)
 NW27 
Newcastle, Australia
 
Experience: Intermediate
Platform: Multicharts 8 - Full Version
Broker: IB
Trading: SPI,FTSE100, 6E, 6A
Posts: 285 since Oct 2010
Thanks Given: 108
Thanks Received: 188


Hi All,

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.

Again, sorry.

Neil.

Thanked by:
  #64 (permalink)
 
Big Mike's Avatar
 Big Mike 
Manta, Ecuador
Site Administrator
Developer
Swing Trader
 
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,399 since Jun 2009
Thanks Given: 33,175
Thanks Received: 101,541

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.

Mike

We're here to help: just ask the community or contact our Help Desk

Quick Links: Change your Username or Register as a Vendor
Searching for trading reviews? Review this list
Lifetime Elite Membership: Sign-up for only $149 USD
Exclusive money saving offers from our Site Sponsors: Browse Offers
Report problems with the site: Using the NexusFi changelog thread
Follow me on Twitter Visit my NexusFi Trade Journal
Thanked by:
  #65 (permalink)
 
TonyB's Avatar
 TonyB 
Bay Area, CA - US
 
Experience: Beginner
Platform: TOS, TS & MC
Broker: TDA & TS
Trading: Stock, Options and now Futures (ES)
Posts: 516 since Dec 2010
Thanks Given: 227
Thanks Received: 140

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."

From here: MultiCharts: Trading Software for Automated Trading and [AUTOLINK]Backtesting[/AUTOLINK] • View topic - Portfolio [AUTOLINK]Backtesting[/AUTOLINK] Limitation

On a somewhat related note, I went to go download the newest version of MCDT and found that I need to join FB in order to do so? Gosh, I hope not...

  #66 (permalink)
amibroker
Wroclaw,PL
 
Posts: 5 since Feb 2012
Thanks Given: 0
Thanks Received: 19

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.

It is simply not fair.


Thanks for listening.

Tomasz Janeczko
amibroker.com

  #67 (permalink)
 
TonyB's Avatar
 TonyB 
Bay Area, CA - US
 
Experience: Beginner
Platform: TOS, TS & MC
Broker: TDA & TS
Trading: Stock, Options and now Futures (ES)
Posts: 516 since Dec 2010
Thanks Given: 227
Thanks Received: 140

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.

Tomasz, thanks again.

  #68 (permalink)
amibroker
Wroclaw,PL
 
Posts: 5 since Feb 2012
Thanks Given: 0
Thanks Received: 19


NW27 View Post
I politely ask, perhaps you can show me sample AFL code I need to put into a System that will allow me to detect when I'm in a trade.
I just updated my Amibroker to the latest version and still cannot find a reference.

Using Multicharts as an Example :
 
Code
If MarketPosition = 0 AND BuySetup then   // No current position but we do have a Buy Setup
    Buy ("LE") 3 contracts next bar at (high + PointSize) stop;  // This may or may not get filled on the next bar
    
// Long Initial Stops    
If MarketPosition > 0 AND barssinceentry = 0 then
    InitialStop = Low[1] ;
If MarketPosition > 0 AND barssinceentry > 0 then 
    Sell ("L_IS") next bar at InitialStop stop;

If MarketPosition = 3 AND Close > EntryPrice+5 then
    Sell ("PT1_IS") 1 contracts this bar at Market;

If MarketPosition >= 2 AND Close > EntryPrice+10 then
    Sell ("PT2_IS") 2 contracts this bar at Market;
MarketPosition is an internal variable that displays the number of contracts/shares that we are long or short.
It is maintained by MC.
Using the above example, if after 5 ticks profit, I decide to Sell 1 contract, MarketPosition would now = 2.
Again MC automatically maintains how many contracts I have remaining in my position.
[...]
What is the AFL System code for AB to do this style of thing ???

Neil.

AmiBroker code for that (that is one of many possible implementations) is:

 
Code
Buy = BuySetup; 
Sell = 0; // sell is via stops
SetPositionSize( 3, spsShares ); // 3 contracts entry
ApplyStop( stopTypeLoss, stopModePoint, BuyPrice - Ref( Low, -1 ), 0 ); 
SetCustomBacktestProc("");
if( Status("action") == actionPortfolio )
{
   bo = GetBacktesterObject();
  
   bo.PreProcess(); // Initialize backtester
  
   for( bar=0; bar < BarCount; bar++)
   {
    bo.ProcessTradeSignals( bar );
  
    for( pos = bo.GetFirstOpenPos(); pos; pos = bo.GetNextOpenPos() )
    {
      Contracts = pos.Shares;
      Closeprice = pos.GetPrice( bar, "C" );

      if( Contracts == 3 AND Closeprice > pos.EntryPrice + 5 )
           bo.ScaleTrade( bar, pos.Symbol, False, Closeprice, Closeprice ); 

      if( Contracts >=2 AND Closeprice > pos.EntryPrice + 10 )
           bo.ScaleTrade( bar, pos.Symbol, False, Closeprice, 2 * Closeprice ); 
     }
    }
   bo.PostProcess(); // Finalize backtester
}
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.

Thank you for listening and happy trading.

Tomasz Janeczko
amibroker.com

  #69 (permalink)
 
MultiCharts's Avatar
 MultiCharts 
Columbus, Ohio, US
 
Experience: Intermediate
Platform: MultiCharts
Broker: Multiple/Multiple
Trading: ES, EUR/USD
Posts: 168 since Oct 2010
Thanks Given: 74
Thanks Received: 172

Tomasz,

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.”

You also need to use custom backtesting interface that’s described here:
https://www.blueowlpress.com/Documents/amibroker-custom-backtester-interface.pdf

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.

Regarding MultiCharts’ Portfolio Backtester – it’s simple and easy to use. We only have one calculation method, which works just like real life. More info here - Understanding Portfolio [AUTOLINK]Backtesting[/AUTOLINK] - MultiCharts

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
Follow me on Twitter
Thanked by:
  #70 (permalink)
amibroker
Wroclaw,PL
 
Posts: 5 since Feb 2012
Thanks Given: 0
Thanks Received: 19


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.

Best regards,
Tomasz Janeczko
amibroker.com


Closed Thread



Last Updated on February 29, 2012


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts