Software for Writing of Trading Applications ?

Trader333

Moderator
Messages
8,746
Likes
1,025
I am about to embark on buying a software development package for the purpose of writing applications, most of which would be trading related.

I have had some previous feedback from a couple of people on what they use and now I would like to get a general view.

So to anyone who is already a software developer what package would you recommend ?



Paul
 
Paul

It really depends on what experience you have already, I prefer using C++ so I would recommend a C++ compiler and I currently use Borland C++ Builder rather than Visual Studio. With the most recent release of Visual Studio and the .Net platform it is maybe time to change, though I know all my business code can be ported easily its just the GUI components that will be more difficult.

C# looks interesting too and I would probably use it rather than Java as a new developer.

Hope this helps

Mac
 
I recommend Java.

Why?

You can interface with IBs API (c++ can too) but it doesn't suffer the problematic pointers and memory oferflows that are so easily coded in C++ App resulting in a crash...

JonnyT
 
Paul

Presuming that the trading applications will be for mainly for your own use, the quickest route to get something up & running would be to go for VB.net / Visual Studio. C++ is a fast powerful language, but IMO VB is far easier to learn, and great to work with. VB certainly does everything that I'd wish for personally. Another advantage is that Excel VBA is very similar to VB, so if you wanted to automate trading via Excel and IB's API for example, this would not be a big step having already mastered VB.

Good luck
rog1111
 
Hi,
I use VB, I used to code in C++ (and a fair few others enroute that) and bought Visual Studio. I looked at what I was trying to code up (Pfscan), spent a few days with V C++, a few with VB, and decided VB would be the weapon of choice.
As interfacing with the internet is going to figure, if you are starting with a blank sheet I'd go for the NET version and use VB
Dave
 
What type of trading applications are you looking at developing and what experience of programming do you have?
 
Thanks to everyone who has replied.

To answer Adrian, I have a basic understanding of code writing in things such as Excel and scripts in Tradestation. I am hoping to write applications that will take a datafeed and allow me to calculate certain algorythms or maybe a frontend that allows me to use an API to place and manage a trade.


Paul
 
Trader333,

My day job is as a Java/Web developer, and was formerly a C++ developer using Microsoft tools and Visual Studio.

Whichever way you go, be prepared for a substantial learning curve. I'm assuming you don't just want to program the trading rules for an existing program like tradestation, but want to develop your own system. So there's a fair bit to do accessing data files and analysing them etc.

My preference would be for Java - it's quite fast enough these days, and has extensive libraries to handle most things you'll need to do, e.g. handling collections of data, accessing the internet etc. And Java compilers are free! (although you may wish to check out IDE's like JBuilder). If you want to check out this route, java.sun.com or www.javaranch.com would be good places to start, and there are some good books, e.g Core Java (2 vols) by Horstmann. I'd recommend that you wouldn't need a "pay for" IDE initially, but when you had some familiarity you could see if you wanted one.
I'm planning to write some trading applications myself when I get some free time, starting with a simple point & figure chart, as I use Metastock (which I like) but the p&f charts could do with a few extra bells and whistles,

John
 
Another thing worth checking on would be the API you are considering using. To grab data from existing feeds and programs you are frequently looking at doing so via the data supplier's API - I use developer kits from TC2000, Quotes Plus, Fast Track, Metastock, eSignal for example. All these people provide pretty decent access to data via the code they supply - some are free (TC2000 has the dev kit on the TC2000 CD) whilst others vary in price - to read metastock via SDK is a few hundred $, the esignal API costs a couple of thousand $ to buy into. They almost all supply code examples and documentation that make the job a great deal easier - VB, C++ code seem to be supplied as default, other languages aren't generally documented... Metastock manual includes Delphi (and PowerBasic for some reason!).
If you are only planning to interface to a single feed and don't mind sorting it all out yourself then fine, if you are considering making your program compatible with a number of feeds then VB/C++ will tend to make life easier simply because the supplied docs and example projects will include much of what you actually want to do.
Nothing against the Java advice, and if you have no programming experience then whatever you choose will involve a steep learning curve anyway, I just feel that when you are trying to get to grips with things it helps if there are a few examples to pull apart and play with to see how it all works.
Dave
 
esignal API costs a couple of thousand $ to buy into.

For the full blown version yes, although for anyone who doesn't intend to distribute their trading software then their Desktop API may be sufficient and this is much cheaper at around $250 activation fee and $50 a month licence from memory. To my mind that's still drastically overpriced, and also dreadfully documented and full of bugs, but it's an option that exists :)

H/
 
Ah,
dunno about monthly fee, $195 setup fee is involved.. as I was after the ability to sell what I wrote I was indeed paying the developer rate. For an individual writing purely for themselves you are right, in that it's a lot cheaper - I have a hazy memory of a $20 monthly fee for individuals rather than $50. The info is on the esignal site, I found it a little confusing admittedly.
Dave
 
My 2p's worth is that Java is very good for quick development. You can write GUI apps very simply (perhaps not as simple as VB, but pretty easy), connect to websites in hardly any code (e.g. Yahoo! Finance data), connect to ODBC databases (save your data in Access) and also create some very attractive graphics without too much work (e.g. TA charts).

And you don't need to pay for a good development environment, try www.eclipse.org for a very good free editor/compiler package.

And you can't go wrong with the O'Reilly "Learning Java" book, I still use it all the time even though I consider myself learnt.

Plus I think quite a few places (myTrack, Interactive Brokers etc.) supply Java APIs.

Horses for courses of course!
 
Thanks again to everyone who has replied and please keep contributing as I am finding all replies of great use.


Paul
 
The NetBeans IDE looks pretty neat the last time I used it. I liked the Borland JBuilder IDE but found it needed a pretty hefty machine to run it nicely.

If you are writing trading apps I would try and decouple the GUI layer from the business logic as much as possible,. This is more complicated initially but can reap real benefits in the longer term. I might maybe even make them a client / server. So the business logic and the front end could be written in different languages e.g. a VB front end for ease of coding and a Java, C#, C++ back end for the actual grunt work.

Don't forget the big red cancel everything button :devilish:

Mac
 
I took the opportunity to talk to a couple of programmers at work. Both said that VB was far easier to learn than Java. One commented that it was easier to debug too, but I guess a lot of that depends on what your used to, and I have no doubt others would disagree.
 
It may be old hat to say it:
but I have found sierra chart as a useful engine to test trading schemes against intraday data.
 
VB is indeed easy to pick up and create a simple program with a GUI etc. and I believe ADO or similar makes it a doddle to talk to a database. And there's a debugger which does a fair job.

Java or C# also have these benefits and are a bit harder to learn, but are much more suited to more complex systems. Plus with the MS IDE for C# or Eclipse for Java the debugging is as good as VB.

Now, debugging C++ I wouldn't recommend to a beginner.

Personally I know of a risk system implemented using Excel & VB for a fair-sized operation, and it's expected that 10% of jobs fail every day. I wouldn't want my savings to depend on those odds...
 
I know of a risk system implemented using Excel & VB for a fair-sized operation, and it's expected that 10% of jobs fail every day

No offence, but that sounds like sloppy coding. The last "serious" app I did in VB was a mission critical system in a telco; that handled many millions of transactions daily and was expected to fail, er, never. VB might not be the fastest tool in the box, but in todays world of "write it today and throw it away tomorrow" it's certainly a very useful one for getting the job done quickly.

However, if I was starting from scratch I would go with Java for all the reasons already mentioned.

H/
 
I think it's the Excel part that tends to crash more than anything. I expect that VB done well would be as robust as anything else, no offence meant! Anyway, I'm sure I shouldn't be talking about it in public!
 
Top