Amibroker Software Review

0 views
Skip to first unread message

Trinh Livingston

unread,
Aug 5, 2024, 6:41:30 AM8/5/24
to lyequomenco
Thisreview of Amibroker is based on many years of live trading. Prior to using Amibroker, I was trading semi-automatically by using a simple script in Excel. Having focused solely on stocks since 2001, I decided to start looking into futures in early 2017 and opted for Amibroker as my trading platform.

The question is: is Amibroker worth it? Why use Amibroker? In this brief review and summary, I look at the pros and cons of Amibroker and how it performs against some of the other backtesting platforms. Each platform has its advantages and disadvantages, but in my opinion, Amibroker is well worth its modest price for a lifetime license.


Excel is not exactly the best program for automated trading, so I decided to use one of the many platforms out there: Amibroker, Metastock, Tradestation, Multicharts, or Ninjatrader, etc. All these platforms are both for backtesting and automation. Tradestation is a bit different, though, because it is also a broker. All the others are stand-alone platforms. I decided to go for Amibroker.


Because of this limited manpower, all official support is via an open forum. These two guys have a rather eccentric way of answering some of the simpler questions in this forum, but all in all, support is reasonably good.


The Amibroker community is big, and India has a very big user base. That is good, if you need help in coding you can get people from there quite cheap compared to the West. I hired an Indian guy to help me write a better script for automated trading and so far this script has worked flawlessly.


The biggest hurdle for Amibroker is to make a good and solid infrastructure for live trading. You need to partially rewrite the backtesting code to make it reliable for live trading, and you also need to write the correct code so your strategies do not send multiple orders.


Furthermore, code must keep track of which strategy has which position and which size. A lot of things can go wrong with the incorrect code. Imagine how losses can build up by sending multiple/incorrect orders in Silver futures!


Everything is documented in the support files, but you still need to connect all the bolts. In Tradestation, for example, this is much easier: when you have backtested an idea you simply check off for live trading, and all is sorted (Tradestation is also a broker where you can place trades). I suspect this is the reason why Amibroker seems to be mostly used as a backtester tool rather than a trading platform.


Another disadvantage with Amibroker is that you need to spend a lot of time managing quotes. Futures expire often, and that means extra work in linking the correct contracts to the relevant strategy. In Tradestation this is all taken care of more or less automatically.


Yes! I use Amibroker mainly for ETFs and futures, but I have backtested plenty of portfolios and baskets with both stocks and ETFs. And let me tell you, the software is MUCH faster than Tradestation and all the other programs I have tested (Tradestation, Ninjatrader, Multicharts, etc.)


The first thing you need to do is to slightly change the code from the backtest. The buy and sell criteria are the same, but you might need to add a small code for when to buy and sell by using time functions. This is pretty easy.


The third step is the most tricky. You need to scan your strategies at certain intervals to see if they have generated buy or sell signals. To keep track of which strategies have positions, you need to develop some code so that you avoid keep buying if your strategy is already long (or short). This requires a bit more advanced code, but the main ideas you can find for free on the internet.


Before I started I had absolutely no knowledge of coding/programming except for some simple Excel code (but I assume that can hardly be called coding). I started in May 2017 and have worked some 2-4 hours per day learning and writing strategies. Since September 2017 I have been running some 30-50 strategies live, both stocks and futures in the US and Europe.


During this period I also discovered some disadvantages with Amibroker. The biggest disadvantage for me is the fact that the platform is fully customizable. That means there are no templates and nothing to start with. Of course, you can always find code on blogs/forums, etc., but it takes time.


Another disadvantage is that you can only run one database (where you store your live data) per session/instance. For example, if you want to run US futures and European futures simultaneously, it is recommended to run two instances of Amibroker from different directories (if timeframes are different, and they usually are). Of course, you can run many instances of Amibroker, but it complicates the matters somewhat.


Ninjatrader has a lot of free features. Just like Tradestation, Ninjatrader is an independent platform and broker, but there exist some supported brokers, for example, Interactive Brokers. You can also choose another data feed than Ninjatrader.


Unlike Tradestation Amibroker is not a broker. To trade your backtested strategies live through a broker you need a bridge (software) between Amibroker and your broker. Such a bridge/application exists already for the most popular brokers (at no charge). However, you need to modify your code to make it useful for live trading, something that for many non-coders could be a bit tricky.


Amibroker offers advantages such as customizable options, a low lifetime license cost (with upgrades available for the first 24 months), a strong community of users, and connections to different brokers via plugins.


Hakan Samuelsson and Oddmund Groette are independent full-time traders and investors who together with their team manage this website. They have 20+ years of trading experience and share their insights here.


I am learning to replicate the "Quick Review " in Amibroker. The below code is giving me the exact results of "Quick Review" window, but I am confused about the days in the calculation about 4,18,57,245. Please guide me If the code is not correct.


Quick review uses actual weeks, months and years. It is NOT equivalent to fixed number of bars as in your code. Your code may work on one data set but it won't work the same on other. You would need to use timeframe functions to achieve _timeframe.html what Quick Review is doing (TimeFrame is one of MANY solutions possible)


As seen from the above I am getting Closing price of 30-04-2020 ( which is the last trading day of last week) But I want the Closing price of Tuesday i.e 28-04-2020 ( for the purpose of Replicating the result in Quick review)


My objective is to avoid running the scan for "Daily" , "Weekly", "Monthly","Quarterly","Yearly" time frames in Quick window and get all the results in single Exploration window. As I have multiple watch lists it is consuming time.


Please listen, if you come here asking for help and get help and even code then within that code you got you rather do not remove links to original source/post which in addition explains how to use it. I do consider such "I do not bother" attitude as disrespectful (even if is small code/post because what you do on small works you would also do on large ones). Writing post and code takes time. It has not been you taken the time to think about it and it has not been you having come up with something that works. Reality check... it has been someone else. You may leave out things if you come up with something yourself.


@amisur - if you copy paste someone's else code you MUST keep it with original comments if they refer to this forum and you MUST quote the author. These are rules of this forum. ALWAYS show appreciation to original author and ALWAYS show the source. If you don't follow the rules you will be not be allowed to participate.


In my last post, Avoiding Trades Before Earnings, I mentioned that I used Quantopian to do the research. Several readers asked about my thoughts about Quantopian and how it compares to AmiBroker. Some asked if I had left AmiBroker for Quantopian. What follows are my impressions after using Quantopian for several months and how it compares to AmiBroker.


I do realize that some of the issues that I bring up would be mitigated if I did not use Quantopian and used Zipline and Python directly. But that requires a lot more work for the typical user. The focus of this review is on using Quantopian as a backtesting platform


The best part about Quantopian is the data. It has lots of free data, including 1 minute and daily data for US Stocks back to 2002 with delisted stocks. For daily data, going back to 1999 is preferred for me because I like using from 2000-2006 for out-of-sample testing. But for free this is great!


And then there is the fundamental data. This caught my attention. It has Factset Fundamentals data up to until a year ago. Some of this data you must pay for but the prices seem reasonable. Most come with free sample data which makes testing your idea possible to see if it is worth paying for the most up to date data. I used the free data for the Avoiding Trades Before Earnings post.


Quantopian does not have current or historical constituent data for the US Indexes. I have come to depend on this data from Norgate Data. What Quantopian provides is the Q500US & Q1500US, which is the most liquid stocks as calculated by them. Read more The Q500US and Q1500US. This gives you something similar to the S&P500.


All your trades are executed using the one-minute bars, even your daily bar trading strategy. You tell Quantopian which bar to execute your trade. This sounds nice but it comes with some issues. You can only enter on the 9:32amET bar. So, there is no entering at the open. And the closing value of the last bar of the day is not the closing value you would see in Yahoo or Norgate Data or most other data sources. Quantopian uses the last trade on any exchange. From their FAQ:


Sometimes, I use data that is not supplied by my data provider. In this case I want to be able to easily import this data and use it. It is possible to do in Quantopian but there are lots of steps involved. You can read how to do this in Quantopian at Upload Your Custom Datasets and Signals with Self-Serve Data. In AmiBroker, it takes less than a minute to import data and to use it.

3a8082e126
Reply all
Reply to author
Forward
0 new messages