Application is written for use by a proprietary trader to do simulation, analysis, and execution of FOREX foreign currency positions.
The application uses data from both live feeds as well as obtaining blocks of historical data from external sites. The application uses a configuration file for all business operations, as well as identifying various DAO objects which are obtained polymorphicly via a factory pattern and then applied with a dependency injection pattern.
The application uses a set of spider objects which open a live socket to a config file designated external web site, and returns a page of html which is stored as a plain text file in a data directory.
A set of parser objects then extracts the desired historical data from the file, creates a List of simple DTO objects, and returns this List to the controller. The controller then hands the List off to mid tier business objects that create sets of moving averages and other technical indicators for the price series.
This List of currency pair beans is then sent to a master agent class business object. This object first sends the data through a series of business objects that perform hundreds of thousands of calculations against the data simulating numerous different trading algorithms. As many as 5 different trading condition properties are iterated through every combination to produce a series of summary metric data objects.
This data is sent to a metric analysis business object which runs analysis algorithms to determine which combination of trading parameters for that particular set of data produce a 'best case' PL result. The simulation is re-run against these 'best case' properties to produce a final set of transaction objects, which are then returned to the controller object.
The controller then passes the List to a Swing display object that creates a Canvas object to display the full graph of prices against the optimally calculated trading properties.
Application is used in real time trading.
Web based Java J2EE FOREX foreign currency trading log application.
A trader is able to either directly enter their trades into the browser based user interface or import data from a csv file. The application is configurable for use with different csv imports, i.e. data obtained from different sources in their native format.
The user interface enables the trader to query a database to display historical trade data by user id, account, begin/end dates, and currency pair, and have full create, read, update, and delete (CRUD) capability over their data.
Prior to display, the currency pair data is passed through a currency converter business object to translate PL and running balance calculations into USD. The resulting data display can be exported to a csv file, or output onto an IRS compatible Form 8949 Sales and Other Dispositions of Capital Assets.
After paying hundreds of dollars a year for his accountant to compile, calculate, and transpose hundreds of yearly trades onto this form, the founder began writing TradeTracker specifically to resolve this issue. The complexity of the solution set algorithm for the conversion of different currencies to USD and cross currency pair conversion calculations required the founder to create a 5 page technical analysis document, FOREX Currency Pair Conversion Calculations.
Fully functional and in use. Please visit the TradeTracker application page for more details.