# Programming Languages for Automated Trading



## Lammii (1 January 2009)

Hey everyone

i recently stumbled across the automated trading championship
http://championship.mql4.com/2008/en

they program is MQL4 for forex.

was wondering if people knew of other languages that people program in for automated trading?
and any thoughts on the langauge.


----------



## brettc4 (1 January 2009)

Having a look at the associated websites, the language they use is a scripting language that works with a particular software, in this case, MetaTrader 4.

Metastock has it's own language with which you write your own expert advisors and generate a trading system within Metastock. I am sure a number of other tools also allow this type of feature.

If you are writing something from scratch and are no reliant on specific package, it will depend it will depend on what type of program you want.

If it is based around AI topics like nueral networks, fuzzy logic, machine learning and the like, the classical languages in this field are LISP and prolog, but Java is starting to get in there.

If you want something that just processes data, C++ is probably the fastest.

If you want something that is using more of the latest technologies and have a large support base across the web, you can't go past Java and .Net.
My preference is C#, one of the .Net languages.

Brett


----------



## Lammii (2 January 2009)

hey brettc4

so it pretty much seems u can use any language to make an algorithm?

the only thing is how to integrate it with a broker's platform for it to work?
i currently only know C and C++, but am lost as to how i can use it to automate my trades.

is it a certain platform that allows me to program in C? or is it only certain brokers?

thanks for your help


----------



## Stormin_Norman (2 January 2009)

i am working with a programmer currently to create some automated traders.

after some research we have decided to go with the mt4 language. while it is a specific language (according to him) it is very similar to C, with some quirks.

the reason we decided to go with mt4 is the amount of community co-operation in development of various pieces of code (and even whole trading programs).

with the mt4 its mostly currency market making brokers which use the program.

what markets are you looking to automate trade?


----------



## Lammii (2 January 2009)

hey Stormin_Norman

i am just trying to find out what I can automate. forex seems the way to go so far due to its liquidity.

i have an account with go markets and have been fiddling with mt4 for a little while. my first impression was really good! it seems to have a great backtesting system available to track your results

then i just thought that maybe there might be even better languages/systems out there to learn, but i guess i stumbled upon the standard one


----------



## howardbandy (5 January 2009)

Greetings all --

When I think of automated trading, I think of a combination of a trading system, a data stream, and a brokerage all running together.

TradeStation has all of those from one vendor -- TradeStation.

The AmiBroker system development platform and systems, connected to any data feed you want to use, and Interactive Brokers is another possibility.

A word of caution.  Automated trading is the big league.  If you are thinking of an automated trading system that takes real-time data, tick by tick, and trades automatically, be very, very careful.  You will need high speed data communications, redundant data feeds, redundant computers, backup power sources, code to identify and handle bad ticks, and so forth.  Do not go to lunch and leave your automated system running.

Thanks for listening,
Howard


----------



## Stormin_Norman (5 January 2009)

Lammii said:


> hey Stormin_Norman
> 
> i am just trying to find out what I can automate. forex seems the way to go so far due to its liquidity.
> 
> ...




for small fry like us, it could probably be called the standard. we eventually want to move to java; but for the moment we are using mt4 code because of its largue community support.

there is plenty wrong with mt4. my programmer is constantly frustrated by things which he claims a java language would be far superior(his main one is about testing components of code).

a BIG word of warning about the MT4 backtester. dont trust it. it gives results which are incorrect. the only way to truly test is with a 3 month forward (demo) test. i hold little credence to backtesting results.


----------



## pilbara (7 January 2009)

I have started developing a java system for automated trading, using the FXCM Java API.  I am using DBfX demo account for development.
http://www.fxcm.com/api-landing.jsp

I will probably try the Oanda java API as well.
http://fxtrade.oanda.com/forex_trading/fxtrade/api_trading.shtml

Eventually if this is successful I would look at trading through a broker like Dukascopy.
http://www.dukascopy.com/swiss/english/forex/int2/fix_api/

This system would be a standalone product to run on a server.  The server will be physically located near to the broker in a USA data centre.  The system is not part of another desktop package like MT4.


----------



## MRC & Co (7 January 2009)

howardbandy said:


> TradeStation has all of those from one vendor -- TradeStation.




You may want to mention the bad fills TS gives!


----------



## Lammii (9 January 2009)

pilbara said:


> I have started developing a java system for automated trading, using the FXCM Java API.  I am using DBfX demo account for development.
> http://www.fxcm.com/api-landing.jsp
> 
> I will probably try the Oanda java API as well.
> ...




thanks for the links pilbara!
i had a feeling automated trading in the real world would be like that!
(i.e. running a program on a server, using java and C)
i'll definitely be doin some readin!


----------



## Stormin_Norman (9 January 2009)

Lammii said:


> hey brettc4
> 
> so it pretty much seems u can use any language to make an algorithm?
> 
> ...




MT4 is a C derivative. my programmer knows C and picked it up straight away. there are a few quirks in it, but nothing that's troubled him in the slightest.

have u had a look at the mt4 code?


----------



## pilbara (10 January 2009)

Lammii said:


> (i.e. running a program on a server, using java and C)



It seems that most of the APIs that use the industry standard FIX protocol ( http://www.fixprotocol.org/ ) are built for java so you can run it on any server platform (linux, unix, windows, mainframe etc).  

Also the APIs that use Microsoft COM are not really certified to run 24/7 without memory leaks etc.  These APIs are better suited to the desktop, for building a GUI interface for an interactive trading application.  They are good for development of your automated system but cannot be put into production.

That's why FXCM offers a free COM API, but requires you to have $25000 in your account to get access to the java API.


----------

