Continuous Trade Logo

  

Programari per l'anàlisi tècnic del mercat borsari

Desenvolupament tècnic de l'aplicació

Continuous trade is derived from another open source project , and implements the basis of his functionality, changing a lot, implements a more friendly look and feel interface, and extends the functionality.

In the interface, the menus are reclassified, we have changed the components used for tables with , and the graphs with .

The size and position of the application windows is saved and restored when we reopen that windows.
JXTable does a lot for the user interactivity, changing the columns in visibility, width and order, sorting by one or multiple columns, and filtering the data shown in the tables, all that is saved in the program's preferences and will be retrieved the next time we'll use that tables.
JFreeChart easily creates financial graphs, and gives a very great look and a new chance to the user to work with them.

The Jobs

The whole application is multi-threaded, and we have created a special module to manage the different threads, the Jobs Manager.
The Jobs Manager allows the application to create and control multiple and diverse Job Queues with different purposes:

  • the Interactive Job Queue, to execute immediately every executable object the program submits to them

  • the Batch Job Queue, to execute sequentially, one by one, the submitted executable objects

  • the Schedule Job Queue, to execute with delay or repeatedly at given interval, the submitted executables

The Active Jobs Window shows the threads in execution, and give us some control about what the program is doing.
That allows a great job control to the programmer, this module shows what jobs are taken more time, is a good tool for improving the performance of the application.

The Database

The application needs lots of data, and thinking in performance, we should minimize the amount of memory used; the application stores in database tables the portfolio transactions and the stock quotes. But also minimizes the disk space, saving in the database only the necessary data, the temporary data is not saved. Here we search the right balance between performance and disk or memory space used.
Now, to run the application, a database is required.
Valid databases are: data file (Hypersonic Internal Java database library), mySQL or PostgreSQL databases.
We recommend mySQL or PostgreSQL.

The Market Data

Some processes request data, and the Data Wrapper Manager is responsible to manage that, if possible, retrieving from the Database or requesting to the TWS.
Market Data is retrieved when needed, automagically ?, (a programmer knows who does the big effort to get that kind of automa... things working).

The Charts

Charts are drawn with the JFreeChart library, and the standard renderers provided in that library, but we have create a new Quote Dataset who minimizes the amount of memory needed to store the quotes, and dynamically changes the data stored, and also the time intervals and range.
When the Data Wrapper Manager creates a new Quote Dataset, also starts the data collection process, and the Chart receives notification about every new Quote available.
If the user changes the Chart parameters, like Time Interval or the quotes time range, the Data Wrapper Manager is notified and modifies the data collection in consequence.
Also, the creates his own children named and objects.
A correspond to one Time Series with any kind of quote's value, in example: open, high, low, close, volume...
A is a OHLC dataset to represent candle sticks, high/low or point and figure graphs.
Every child is feed by their parent with the same data that owns, minimizing memory usage and process for retrieving that data.

powered by fingers managed by hands with the vim support