Algorithmic Trading Group Forum
https://www.algotradinggroup.com/cgi-bin/yabb2/YaBB.pl
Trading Strategies >> Software Infrastructure >> I like to use... Java because...
https://www.algotradinggroup.com/cgi-bin/yabb2/YaBB.pl?num=1214403924

Message started by Co0olCat on 06/25/08 at 15:25:24

Title: I like to use... Java because...
Post by Co0olCat on 06/25/08 at 15:25:24

Tell us why do you like Java...

Title: Re: I like to use... Java because...
Post by Z on 06/25/08 at 15:31:51

I like java. But not for any of the mentioned reasons! :)

Title: Re: I like to use... Java because...
Post by Co0olCat on 06/25/08 at 15:33:04


Z wrote on 06/25/08 at 15:31:51:
I like java. But not for any of the mentioned reasons! :)


Tell me why and we will add it as a choice...

Title: Re: I like to use... Java because...
Post by Algo Designer on 06/25/08 at 15:35:08

How can I tick off all the items at the same time and a dozen more? :)

Title: Re: I like to use... Java because...
Post by Maltamir on 07/01/08 at 16:32:54

Someone knows about  Algo design patern in java ?

Title: Re: I like to use... Java because...
Post by Abyd Adhami on 07/08/08 at 19:52:54

Algo design patterns in Java in general can be summarised to have the following features:

- An algorithm container which contains a a unified interface for all algorithms in it to use and access.
- The container typically uses listeners (Observer pattern) for each algorithm to "subscribe/unsubscribe" to market data feeds.
- The container will also have a unified interface to be implemented by each algorithim for order management tasks (e.g. add order, cancel order etc) as well as execution feedback listener.
- Each algorithm would implement the container interface and be made up for a number of "logic" classes. I see many algorithms that are divided so that there is a clear separation of tasks for each "logic" class. E.g:


  • A "MonitorLogic" class which monitors market data, order trade sizes etc.
  • A "SlicerLogic" class which decides how to break-up an order to trade (esspecailly in an Algorithmic Execution system)
  • A "PlacementLogic" class which decides at what price to place each order slice and how to execute it, e.g. to execute as a Limit or Market.


I am currently developing some algorithims as part of my research in Algorithmic and Order Execution Systems. These are all developed in pure Java. I shall be documenting more on this in the near future.

Abyd

Title: Re: I like to use... Java because...
Post by Random on 01/02/09 at 13:48:00

How many people actually use Java?

I've heard that some people (e.g. Lehman (RIP) FX Quant traders) use Java mainly because it is faster to develop in, and easier to create robust code (compared to C/C++), and the performance of running the compiled bytecode on JVMs these days is comparable to C++ (unless the C++ has been highly optimised).

I'm guessing that for low-latency systems, Java is not an option.

Title: Re: I like to use... Java because...
Post by Algo Designer on 01/04/09 at 23:59:31

Java is a great choice for low-latency systems as well, but you need experienced developers who know what they are doing.

Title: Re: I like to use... Java because...
Post by Yury R on 01/05/09 at 11:27:38

But isn't all that required for low-latency efficient socket-communication class? (well, of course, unless serious numerical computations are also involved that can potentially be parallelized on a grid)

Title: Re: I like to use... Java because...
Post by Algo Designer on 01/14/09 at 00:17:47


qroach wrote on 01/05/09 at 11:27:38:
But isn't all that required for low-latency efficient socket-communication class? (well, of course, unless serious numerical computations are also involved that can potentially be parallelized on a grid)


An efficient socket communication class can be written in Java and be no slower than that implemented in C++, but this is still a very small part of the problem. One needs a decent middleware or for inter-process communication, persistence and high-availability (HA) model, memory model... The list goes on.

That's not to say that small-scale projects cannot get away with Excel along with a few custom plugins :-)

Title: Re: I like to use... Java because...
Post by PhD Student AT on 03/15/09 at 17:23:49

I have just started my PhD in AT, with EEE background :-/. Can some one show an example of trading algo? If you wanted to work with FX data, which method would be the best(Maths, programming,machine learning.etc) in order to start from beginning and develop a trading algo.
Cheers.

Title: Re: I like to use... Java because...
Post by willc on 11/11/09 at 13:40:42

Another reason why someone may choose Java over other languages is because of the Java Virtual Machine which allows the program to be able to run on any platform as long as they have JRE. Programmers don't have to try to try and deploy different versions of the program for different operating systems. That is one major reason I like Java.


Title: Re: I like to use... Java because...
Post by Areebah Albert Johnson on 06/16/11 at 11:54:37

I like JAVA bcz it offers a number of advantages to developers.

Java is simple: Java was designed to be easy to use and is therefore easy to write, compile, debug, and learn than other programming languages. The reason that why Java is much simpler than C++ is because Java uses automatic memory allocation and garbage collection where else C++ requires the programmer to allocate memory and to collect garbage.
Java is object-oriented: Java is object-oriented because programming in Java is centered on creating objects, manipulating objects, and making objects work together. This allows you to create modular programs and reusable code.
Java is platform-independent: One of the most significant advantages of Java is its ability to move easily from one computer system to another.
The ability to run the same program on many different systems is crucial to World Wide Web software, and Java succeeds at this by being platform-independent at both the source and binary levels.
Java is distributed: Distributed computing involves several computers on a network working together. Java is designed to make distributed computing easy with the networking capability that is inherently integrated into it.
Java is interpreted: An interpreter is needed in order to run Java programs. The programs are compiled into Java Virtual Machine code called bytecode.
The bytecode is machine independent and is able to run on any machine that has a Java interpreter. With Java, the program need only be compiled once, and the bytecode generated by the Java compiler can run on any platform.
Java is secure: Java is one of the first programming languages to consider security as part of its design.

Algorithmic Trading Group Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.