My Thoughts On Amibroker
January 16, 2018 | Posted by Oddmund Grotte under trading topics |
For years I have been trading (semi-automatically) using a simple script in Excel. Having focused solely on stocks since 2001, I decided to start looking into futures in early 2017. 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 others are stand alone platforms.
After some considerations I opted for Amibroker (AB). The reasons I picked Amibroker was due to these factors:
- Amibroker Formula Language had the most similarities to Metastock, a platform I tested many years ago. Thus, easier for me to learn (I assumed)
- I had a local friend already using AB saying mostly very positive things about AB (and of course I hoped for some free help….)
- A lightning fast optimization feature
- Easy to test strategies on a portfolio level
- Fully customizeable in terms of backtesting and trading
- Pretty cheap, about 450 USD for a lifetime license, albeit upgrades only possible during the first 24 months after purchase
- Can connect to different brokers via a plugin. I use Interactive Brokers
- I talked with another trader using Tradestation, but for me the AB code looked much more intuitive and easier to grasp.
AB is a two-man company based in Poland. The whole platform is written by Dr. Tomasz Janeczko. Another Doctor, Marcin Górzyński, is the other man in the team. 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 reasonable good. There are also a very big user base in India. That is good, if you need help in coding you can get people from there quite cheaply 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.
I still had one hesitation, though, with AB: I see a lot of people using AB for backtesting, but I found rather few people using it as a platform for live trading. Why was that? I will get back to a probable reason later.
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. So I started in May 2017 and have worked some 2-4 hours per day with learning and writing strategies since then. 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 negative things with AB. The biggest problem 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/forum etc, but it takes time. Customization is very good if you are an experienced programmer and gives you tremendous “leverage”, but for me with no prior experience it demanded a lot of hours to learn.
The biggest hurdle is to make a good and solid infrastructure for live trading. You need to partially rewrite the backtester code to make it reliable for live trading, and you also need to write correct code so your strategies do not send multiple orders. Even more, code must keep track of which strategy has which position and which size. A lot of things can go wrong with incorrect code. Everything is documented in the support files, but you still need to connect all the bolts. Imagine how losses can build up by sending multiple/incorrect orders in Silver futures….. 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 AB seems to be mostly used as a backtester tool rather than a trading platform.
Another disadvantage 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.
A third 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 AB from different directories (if timeframes are different, and they usually are). Of course, you can run many instances of AB, but it complicates a bit.
But all in all I’m quite happy with AB and don’t regret it. When you get better at coding, I believe AB is a more powerful tool than most of the others platform. I have run between 30 to 50 different strategies live since september 2017, all in different timeframes and markets, with no major hiccups. I use a virtual private server (VPS) and let it run all day.
So far so good.
(I have no affiliation with Amibroker whatsoever.)
Thanks for sharing your thoughts. Looking back, would you have rather choosen Tradestation?
It depends on your objectives. I think technically AB is a much better platform, but because TS is also a broker it is probably easier to use.
But as it is now, i don’t regret my choice and I would do it again. Using AB I can also use Interactive Brokers, where I trade both stocks and futures. I have used IB for almost two decades, and will not change.
AB is really good, but it is a bit cumbersome when it comes to live trading, but still worth it, in my view. Esspecially if you are good at programming there should be no problems at all.
Multicharts is a clone of TS, but a lot more expensive than AB. Multicharts lets you choose broker.
what are your thoughts on running systematic machine learning strategies build by third party developers such as iSystems and Striker securities rather than build from the ground up?
I have never looked at these websites. But i prefer to build my own because i understand them and i know how they perform during “turmoil”.
Thanks for this article! As a non-programmer I think I must pass.
Have your tried Ninjatrader or Multicharts? It seems many choose between TS, Ninjatrader or Multicharts?
No, I have never tried them. I suspect Easy Language, which MS and TS use, is easier to learn. But on the other hand, AB offers a lot more customization….
This is a trade-off. But the more i use AB, the more I like it. It’s not difficult to learn at all, and automation you can easily learn/write by copying script out there. I have been running my automatic buy and sell signals for 5 months without any problems at all.
Hi, I found this article through another amibroker fourm user. I am really struggling with taking my backtesting for live trading. Amibroker is great for backtesting – I am quite happy. But i am finding it rather difficult to use it for live trading. http://forum.amibroker.com/t/iq-feed-for-real-time-scan/775/13 explain my trouble. If you read only from latest posts , it is enough to get the problem. any comment from you would be appreciated. Thanks!
Oddmund, would you be willing to share if you found or used any programming course to learn AFL? If so, which ones?
I have been using AB for a short while and as you don’t know programming but I’m finding it diffecult to take my code to the next level.
Best regards,
Gregory
Hi Gregory,
I have not used any courses, except for online documentation on boards and AB’s official forum. I think the only way is to leanr by trial and error and be patient. But my code is in general very easy and straightforward, i never dio any complicated stuff.
Hi Ottmund
Like you I have told myself to use Amibroker and AFL programming in conjunction with Interactive Brokers. It works reliably for me know around the clock mostly unsupervised. I run exploration on stocks with 200 symbols and Futures about 80 symbols executing orders as triggered by my strategy. The downfall and limitations are the database plugin. I find database maintenance the biggest drawback with Amibroker losing bits of data and back-filling at least daily as well as database intervals. The Plugin seems to be stuck on 1 min restricting the amount of date I wish to process. My strategy requires about 3 weeks of data whereby I would like to about 3 month.
I am not aware of any software as economical as AB to perform the same tasks and do not have the programming skills to make changes. How do you cope/deal with these limitations?
Hi Willi,
I’m not sure if i understand your database problem. Can you please elaborate?
Hello,
Very informative article buddy.can you please tell where did you find a programmer to design a automated trading system for you? Also if you don’t mind how much you spent in building an automated trading system?
I am in a same boat as you were, I dont know how to code and confused in what platform should i buy to autotrade and backtest.
Thanks
Thanks,
I can give an address for an Indian programmer.
I have spent many months learning this. I recommend learning yourself. It takes time, but it’s worth it. You don’t need much code anyway to backtest. To get a live trading connection for sending and receiving orders is more difficult, but that you can pay for.
I have had no problems for live trading with AB. For me it has worked flawlessly for almost a year.
” I can give an address for an Indian programmer.” plz. do would so appreciate it as I would bs using the resource a lot for awhile. Thank you for your help
” I can give an address for an Indian programmer.” Yes plz. Could you provide that information. Much appreciated.
You must send me a mail.
What is your email address. The one I found reacts weirdly yahoo fails to recognize it.
I’ve also been using AB together with IB for about 5 years and am also happy with it. I don’t use it for AT. The main problem I have is that there are no trade off the chart capabilities. I would have liked to be able to draw S/R lines and trade directly from the chart, for example using a RMB click -> Buy. To do this I had to build an entire system from scratch, which took a lot of coding and testing.
Hi Oddmund,
How about an updated article about your automatic trading experience? In the past, you described how difficult it is sometimes to trade because of your emotions which led to mistakes/losses. I guess you eliminated these problems. Do you have more time for other things now?
In addition, 2018 was difficult year for many models. What was your experience? Did you do adjustments?
Greetings,
Paul
Hi Paul,
Thanks for commenting. Yes, 2018 was a difficult year, and I took some time off to pursue other things. I will get back to trading and probably some more articles from April.
Hi Oddmund,
Do you have any idea if there is a easy way to use or re-write (existing) Metastock formulas for Amibroker as I`m considering to switch?
These are two different types of code and I wonder (as it is quite a bit) if there is an quick way to translate from one to the other?
Thanks
Patrick
Hi,
I used Metastock some ten years ago, and the formulas are quite similar. However, I have never heard of any “translator” for these two languages. But unless this is very complicated, I think it will not take you long to switch.