Wednesday, May 13, 2015

Open Source Trade Model



Open Source Trade Model
M 917 536 3378
maksim_kozyarchuk@yahoo.com




Overview

Over the past couple of month, I’ve written several articles that discuss Trade Model, Domain Model and Data Entry. Many of those ideas are now checked in as code on GitHub in the following projects.

NCT-portal -- Front end that demonstrates the type of functionality that can be expected from a Trade Model.  It contains front end JavaScript that leverages Booktstrap and Python based backend that runs on Flask.  It is designed to be deployed on Elastic Beanstalk web server tier.

NCT-workers  -- Contains business logic and domain model for entering and representing trades.  It’s built in python and is designed to be deployed on Elastic Beanstalk worker tier.

These projects are made available under GPL 2 license


The Goal
   Over the past 15+ years, I’ve had an opportunity to contribute to code around trading, portfolio management and accounting systems.  Most of the systems I’ve worked with were able to support multiple asset classes side-by-side and enable multiple user groups, including traders, middle office and accountants working off a single copy of the data.  Combination of cross asset and cross functional capability of an asset management systems is the ZEN of Trading Systems.  It’s the Holy Grail that allows high data quality as well as simple and consistent usability. This in turn allows better transparency of data and accuracy of reporting.

   However, it is my experience that vast majority of trading, portfolio management and accounting systems are not cross asset and have highly specialized domain/data models requiring lots and lots of customized “data feeds and compares” between them.

This project has two goals:
  1. Demonstrate trade model capable of supporting cross asset portfolio enabling single data store behind multiple asset management applications.
  2. Develop a set of tools and APIs for loading the data in and extracting the data out of the system


Commitment

Quantity:  Code for this project will be developed test first and will be monitored by a continuous integration system.  Currently unit tests are running on Travis-CI (https://travis-ci.org/kozyarchuk/NCT-workers and https://travis-ci.org/kozyarchuk/NCT-portal)

Simple:  Solutions developed in this project will favor simplicity and API consistency over product specific market conventions

Functional::  Solutions developed in this project will be deployable and runnable via an API.  This project is currently designed to be deployed to AWS Elastic Beanstalk.


Roadmap

There is a significant backlog of functionality that needs to be developed. This backlog is currently maintained in my notes but will be moved to a work management system at some point in time.  The following are some of the key functional goals for the near term.
  • Trade File Management process capable of importing trade executions from several broker platforms
  • Extensions to Trade Model to support functionality discussed here
  • Positions, P&L and Cash Balances
  • Time Series and Daily Mark to Market
  • P&L, Risk and Position reporting
  • Trade Fills, Trade Allocations and commission calculations



Call to Action
Developing an effective Trade Model is a large undertaking, but if done well it can have a profound impact on the technology landscape within the asset management world.  If you are interested in learning how you can contribute.  Please send me a note at maksim_kozyarchuk@yahoo.com



No comments: