I don't know Sierra Charts and MC.net, unfortunately. I can't compare.
But I use AB for 5 years now and made my autotrade systems 3 years ago.
Incredible software, you can do about anything you want.
There is no better platform, trust me on that. I have been around a lot: MetaTrader, Ninja... you name it. I would never use another software and I encourage every one to use AB as well.
I run complex strategies for Swing Trade and Intraday, changing the strategy behavior according to the time of the day, for example.
You only need to know AFL (Amibroker Formula Language).
It is not hard.
In fact, it is pretty fun to learn it specially if you have any coding knowledge, doesn't matter what language.
If you don't, you will have to learn some coding/programming logic and basics.
About the cautions: there ase some.
AB does not send orders to you broker with built in functions.
You most have a DLL made for your broker.
So, this DLL will make some specific functions available and they will be different from broker to broker.
For example, I am in Brazil and trade my futures and stock market.
I have a DLL made with functions created specifically for my broker. It is made by Gerais Trader.
So, if you are in the US, many AB users trade using IB (Interactive Brokers).
IB has a solid DLL with well tested autotrade functions.
Concluding: you most research which broker you would like to use and if there is a DLL allowing AB to interface with it. Is IB good for you?
Also, you will probably need a data feeder (eSignal, IQFeed)...
AB has its AmiQuote and it is very good, you should check it out too.
And, you could you your brokers DDE signal, if you like.
DDE is a Jurassic tech but it is free and does the job. It has no back fill, though.
And, it is kind of slow. It can only send one or two quotes per second, I really don't know and I don't know if that varies with the number of symbols you are getting through the DDE link.
So, another detail: where will your data come from?
There are other points that one most look at when making an autotrade code, but there are about the code itself.
So, I guess it is not the time to get into them.
For example, you most be careful to not send the SAME order over and over.
Ex: Let's imagine someone that is a day trader, trading on 5-minute bars.
He is using moving averages crossovers to get in and out of the market (terrible system, just to make the example easier).
On a given bar the averages will cross and the system most send an order.
Ok.
But this signal will exist as long as the software "stays looking" at that bar. If that is a 5-minute bar, it will be 5-minutes.
So, the code could send this order every time it is executed.
If AB is configure to update the chart every second, the code would run (60*5=300) times.
If you are not careful, you could send 300 orders to the market.
You gotta have a flag to control if that order was already sent or not.
Just for your info, I use tick charts and they are updated on every tick.
So, we are talking about a lot of orders if that basic mistake is made.
I think that is about it.
I hope to see you on AB's users mailing list soon.
The following 4 users say Thank You to JFDerzi for this post:
Amibroker is really a very good charting software.
One can use it to create trading systems
test and optimize everything is made user-friendly.
For automatic Traiding
you can only use interactive Broker
This sends a bad price data.
With many interruptions
What makes a meaningful Traiding impossible.
Sierra Chart has many brokers
to select and you get a good real-time feed.
But to create trading systems, it is made very complicated.
It's all possible, but it takes a long learning periods.
That's an incorrect assumption. There is no price data connection required to trade with IB!
You may use any proper data vendor like IQFeed, esignal, etc and still trade with IB.
Also you may use any broker providing API access you like to. But of course IB is one of the best ones available.
As I wrote, I am in Brazil and an API (DLL to provide trading functions) was specifically created.
We have three big brokers here that have solid APIs.
It is all a matter of doing a little research and see what you gonna need.
The following user says Thank You to JFDerzi for this post:
It looks great, have been doing my homework on it, very keen to get a basic system built and take it from there.
I wish it had a few features that make our life easier as traders, Im not a coder not my strength so be good if it was that little bit easier to get up and running with amibroker if your not a coder.
Clean chart trading so you can enter bracket orders nice and easily and see on chart similar to what Sierra Charts have.
Multiple brokers and data linked into it easily like with Multicharts.net - so what mc.net can do you can just have another tab with different broker and different data feed, very easy to turn on and off.
A decent forum, thats easy to chat and navigate to people like you guys, amibroker code is amazing but yahoo groups is a joke for support and I know thats what users wanted before but its holding amibroker back and ease of communicating with other people passionate about amibroker which I am!
Could set up a slack forum in 10 mins and be easier to chat and navigate.
A amibroker Youtube channel, walking through everything on what the platform can do - this would be amazing the ask ozzie guy is great and we need more youtube vids about amibroker.
If you think about it, its the best way to show the power it has and can do.
I heard that Matlab can link to Amibroker, can anyone confirm this?
I think if I can get all the above things sorted amibroker would be the best trading software out there.
Kind regards,
A
ps Im a big amibroker fan so pm if you want to get in touch
I spoke of the automatic trading with a Trading System.
In other price data very different results come about.
It sounds strange but I've tried it myself.
But you must not believe yes.
I was talking about automated trading also!
Once again you may use i.e. IQfeed and still send trades to IB.
So you don't have to use IB data plugin in order to use IBcontroller.
Is it understood now?
I really want to push amibroker to the limit and see what its capable of doing.
Has anyone tried anything crazy like every ticker over 100 yrs of data with some strategy it be interesting to see how quick and powerful you really can push it
People have used it with Python to create neural network.
I believe someone used MatLab as well.
About the suggestion of pushing AB
If you code right, using arrays, it will be as fast as possible.
But one speed limitation is the database size.
You can have the size you want but that will take unnecessary time to process.
There is no point of using a lot of years in a database.
As the markets change over time, the strategies should change as well.
In fact, that is the idea of WF (walk forward optimization).
A lot of users believe that store tick by tick on the database is useless.
On a high volume market like ES, it is just unnecessary data to be processed.
A 1-second database would be much smaller with the same accuracy.
What AB can do is much better than processing a century of data (Was there any market data back to 1916?).
It can receive data really fast, process it really fast as well as our code, and, take the decisions necessary.
To do that, it process only the data that matters.
If I am using a 50-period EMA, only the last 50 bars will be computed.
Or, AB can scan all the stock market (in a flash) to see which symbols are with a buy or sell signal, according to the setups programmed.
AB can do that as often as your data arrives (1 time a second, 30 times a minute...).
It is up to your internet connection and Data provider.
Those are the things that really matter to make money on the market.
And that is what AB do.
The following 2 users say Thank You to JFDerzi for this post:
Is there a portfolio feature so you can a watch list weighted by volume and then which ever futures eg the ES is most liquid it can allocate the daily amount for trading capital?
You can balance or rebalance your portfolio by all futures in the Watch list, or only by the futures that had buy or sell signals, or any rule you would like (balance it only for the 8 most liquid future cause those are the ones I will trade).
If you google "amibroker portfolio rebalancing" it will come up with methods of doing that.
Some use AB CBT (custom backtest feature) to do it on the fly, day by day, week by week, you choose. I consider this a advanced feature.
Others use an exploration (analysis / explore) to generate the volume on a time range, balance the portfolio and backtest or enter the positions with this pre-balanced portfolio. I like this last better and this would be a basic to medium feature.
The following user says Thank You to JFDerzi for this post:
I still did not get what need do you have but he is very good.
For example, he can code your AFL in C++ so Amibroker would run it hundreds of time faster (if its complex).
Instead of taking 0.35ms, it would tack 0.035ms or so.
But, once again, you should get Amibroker, see how it works, see what would you like to do with it and how and, only, them try to make it.
The following user says Thank You to JFDerzi for this post:
hey... I m also a big amibroker Fan... And using it for automatic trading in India and its doing fine...
U mentioned abt moving average crossover(He is using moving averages crossovers to get in and out of the market (terrible system, just to make the example easier).) I knw its a terrible system and i wish to knw abt some good systems if u could help me with it...
For me optimization speed is my primary concern. I already use NT7/IB with IQFeed for my current trade setup. Problem is I'm not a programmer. I'm a portfolio hedger turn options day trader turn futures day trader looking to automate. The reason I have used NT7 is the ability to run Bloodhound (no affiliation) and the native NT7 strategy wizard to develop my manual trading style into an automated system. NT7 is god awful slow so any efficient long time period optimization is out. Hence my interest in Amibroker. Do they have a NT7 style strategy wizard or a 3'rd party add on I can purchase that would allow for a point and click type development process?
Any help would be appreciated.
GuppyDRV
PS: How did the FX traders do last week when the dollar took a nose dive? I hope some buying opportunity.
I gave up using AB (though I have restarted) for the following reasons, one of which was touched by JF.
1) If you don't want to use crossovers and say, enter by slopes of several indicators, the entry condition will remain valid at every bar and trades will continue to fire within the same bar, even though an entry may have actually been taken (traded) on the first appearance of the signal. This doesn't look easy to handle and is restrictive, to say the least. Fixing the first signal that appears, without allowing it to repaint, may be a solution imo.
2) If I am using 1 hr tf, I may not want to wait till the bar close to enter trade because of a substantial potential loss in profit in a trending market. It is even more risky to wait till close on exit. There should be an option to enter/exit on an "immediate" mode and AB must accept the traded prices as the entry/exit prices.
3) There is virtually no "tutorial" in the usual sense of the term. The vast manual doesn't teach. It's like learning English from a dictionary.
Hi. I 've been with AB for at least 3 years now and when I am stuck I usually fire off a support ticket to Marcin, wait a couple of days , then reluctantly call my consultant in India for $50/hour. To me, two days is the tipping point where the $50 seems cheap now than waiting another 2 days. So if anyone needs his info, LMK.
EDIT:
Just got off Skype with him, he also does Ninjascript (which he tells me is the "AFL" of ninjatrader). let me know if you need info. His name is Vivek form Bangalore India.. so there is a time difference issue to consider.
To avoid sending reapeat orders, is this a code that can be a template for all strategies you trade? I have been trying to find info about this, but unfortunately it is limited.
I have absolutely no previous experience in programming, and AB seems to be made by programmers for programmers.
I find it very strange that AB does not have a built in function to avoid sending repeat orders. For me as a non programmer it takes a hell of a lot of time to learn it.
The same goes for bar completion. If you have a strategy meant for EOD bars, it buys and sells before the bar is completed unless you program it to wait.
There can be two reasons for sending multiple orders.
First your 'Buy/Short' conditions may be true for multiple successive bars. To avoid that write
after Buy/Sell etc and before sending orders
Second, your script may be evaluated several times on the same bar due to streaming quotes.
To avoid that, it's recommended to evaluate your script in Scan using Auto-Repeat with the convenient period (adjust
period to timeframe e.g if you trade on 1min bar set Auto-Repeat to 1min). Read AmiBroker Knowledge Base » How to setup automatic periodic scans & explorations
my 2 cents: You won't find a better backtesting platform as Amibroker. It is great piece of software. Highly customizable, stable, very fast and optimized C++ based. Way faster than institutional grade plataforms such as Deltix and QuantHouse. Amibroker is my prefered platform for prototyping (single and portfolio strategies). Moreover, you can call R and javascript form AB.
That said, it is not plug and play for real-time trading such as MC, NT, SC. There is a lot of coding between the backtest and live production. But depending on how good coder you are, there is no limit what can you achieve with AB.
The following user says Thank You to LePulp for this post:
This story about repeated orders is ridiculous.
If you do things as recommended by the manual, using Exploration, you can't unintentionnally trigger multiple orders for the same signal.
Amibroker users can/should read articles about Autotrading, e.g https://www.amibroker.com/library/detail.php?id=1186
which describes and give an example of autotrading using an exploration.
All of this is described in the User's guide.
And you barely need to know how to code.
Even if you insist on doing things the wrong way, there are solutions to avoid repetition (described in Amibroker Users' Knowledge Base). https://www.amibroker.org/userkb/
Hint: use a static variable to store before last bar timestamp.