-
Notifications
You must be signed in to change notification settings - Fork 74
Project description
- An adapter to collect and visualize price time series from a broker (currently only Interactive Brokers is supported) into Eclipse
- An engine for algorithmic trading, supporting back-testing and live trading
- A framework to develop data analysis tools and trading strategies in any OSGi 4.2 container, or in a plain Java application
- A trading application to be used by non-programmers
- A fancy charting tool
- A trading system ready to make money
The code delivered is partitioned in three layers, from the bottom:
An API, along with base implementation classes, provides the functionality to build a trading system
in plain Java.
There are no dependencies to third party library or framework.
Alternate implementation classes
can easily be created and used with the framework, since almost every relationship between objects
is based on interfaces.
For the same reason, framework like Spring are easy to use.
Check out the Java API to learn what is available.
The com.quantcomponents.*.service
bundles instantiate the main OSGi services and their dependencies:
- com.quantcomponents.marketdata.IMarketDataManager
- com.quantcomponents.algo.ITradingManager
- com.quantcomponents.core.calendar.ITradingCalendarManager
The first two interfaces define façade services to the two main areas of the framework:
the handling of market data and the management of trading strategies.
The third provides [trading calendars](Trading Calendars) to the UI and other parts of the framework.
At this level there is no dependency on Equinox or Eclipse: these services, defined by means the standard Declarative Services configuration, should be at home in every compliant OSGI 4.2 container.
The two main services can be accessed by remote, through R-OSGi, but this configuration is still alpha
software. The necessary bundles are the com.quantcomponents.*.host
and com.quantcomponents.*.proxy
,
which are not installed by the default configuration.
The standard Eclipse installation feature
installs several UI plug-ins com.quantcomponents.ui.*
that rely on Eclipse.
This is a rather thin layer, which provides an operational interface to the main framework services.
Since the OSGi services are not started by default in Eclipse, two special auto-starting plugins are installed:
They activate the QuantComponents OSGi services and their dependencies after the Eclipse workbench has
been started.
Since they provide conflicting configurations (standalone and client-only), only one of them will
proceed to the actual start-up of the services in its configuration.
The configuration active by default is standalone. To activate the client only configuration,
add the line:
-Dcom.quantcomponents.ui.configuration=client
in the eclipse.ini
file.
Please note that the client-server configuration is still experimental, and in order to work needs
an implementation of R-OSGi and a discovery mechanism. More documentation on this will follow.
The framework, once installed correctly on Eclipse (see the [quick start](Quick Start) page), can be used
to test your trading strategy.
A trading strategy can be developed in Java by following the instruction here.
Currently only Interactive Brokers accounts can be used.
Although the quantcomponents API can be skewed towards the IB API, there is no formal dependency on it, and the broker interfaces have been designed to be highly generic.
Please refer to [this page](Broker Adapters) if you want to write (and possibly share) another broker
adapter.
Currently the user interface is limited to the bare minimum to make the platform usable from Eclipse.
Developing complex user interfaces was never the aim of this project, which concentrated on delivering
a scalable platform with the maximum grade of openness and modularity.
Any developer accustomed with Eclipse plug-ins will be able to write her own UI components
by looking at the code in the com.quantcomponents.ui.algo
and com.quantcomponents.ui.marketdata plug-ins.