Advanced Trading System

NOTES

* Please do refer in your response to our questions as included below. Any default quote (with a standard text) will definately not match our specific project description. We highly appreciate quotes that have been written specifically for this request for information regarding the Advanced Trading System.
* Note that the description below is a short summary of a design at process level we have written already. That document contains a description of all processes and activities that are required. It will be shared with you shortly after we have decided to cooperate with you.

INTRODUCTION

First it retrieves data from external providers through an interface. Based on that information it will evaluate all active strategies and makes decisions based on trading strategies to create orders to buy or sell certain financial instruments. The Advanced Trading System then decides to send these orders through an interface to a broker and process the feedback from the broker afterwards.

Note that the Advanced Trading System itself will not contain any hard coded ‘knowledge’ regarding trading and no ‘experience’ on financial instruments either.
The Advanced Trading System has no ‘knowledge’ on trading strategies. Therefore, all logic regarding strategies on trading is inserted by the user and then saved into the database. The Advanced Trading System will then execute these strategies as defined by the user.
Since there is no ‘experience’ on historical events, the Advanced Trading System can only use data on financial instruments that have been received from other organisations (eg. a provider).
Another source of information is the broker that processes the orders of the Advanced Trading System. Via the broker data can be retrieved as well.

All decisions (for example to buy or sell certain financial instruments) are solely based on input of the user (eg. Strategies and the risk appetite), data of the broker (eg. the status of an order) and the provider (eg. quotes on financial instruments). This document describes how the Advanced Trading System combines and processes all this information.

MODULES

The advanced trading system is divided in these modules:
* The data module loads various data from external sources. This includes quotes for financial instruments but also market data. After the data have been validated, these are available for the evaluate module.
* The evaluate module contains all processes that are the ‘core’ of the Advanced Trading System. The strategies are evaluated and orders will be created in order to buy or sell financial instruments.
* The send module sends all the orders to the broker and verifies whether these are being executed.
* The monitor module monitors all important activities and creates warning if necessary. The entire portfolio is updated with recent information, connections are checked and warnings are send.
* With the configure module it is possible to configure settings regarding for example strategies and the Advanced Trading System itself.

COMMUNICATIONS

The Advanced Trading System consists of two servers:
* The main server of the Advanced Trading System connects via the internet with these systems:
* The provider is an external organisation that provides (historical) data (eg. quotes).
* The broker is an organisation that executes the orders from directly on the exchange.
* The remote server is part of this design as well and checks if servers, databases and functionalities of the provider, the broker and the Advanced Trading System are responding in time. This is done by executing tests with simple SQL-statements, ping-commands and calling functions remotely.

PHASES

Three phase of the Advanced Trading System are planned. The first is only a prototype of the Advanced Trading System. The second includes testing with live data. During the last phase the orders are executed at the exchange and the Advanced Trading System runs completely without any manual interaction.

* First a ‘limited prototype’ will be developed to test basic functionalities. The Advanced Trading System will operate with real time data from the provider. The generated orders will however not be executed. To be able to determine the performance if the orders would have been executed, the Advanced Trading System will treat each order as if it has really been executed.
* After that, ‘live testing’ will take place with a limited portfolio. The generated orders are now executed based on information from the provider. Contact with the broker is therefore necessary. In this phase a small portfolio (for example EUR 1.000) is used to test all functionalities and communication with the provider and the broker. To decrease the risk even further, the orders have to be approved manually first, before these are sent to the broker.
* In the phase ‘real time execution’ the Advanced Trading System is operating completely automatically. The Advanced Trading System will now operate completely on its own and execute orders automatically by communicating with the provider and the broker. Contact with the bank is not applicable. The size of the portfolio can be increased in a controlled manner.

QUALITY

The quality of the source code of the Advanced Trading System is crucial and consists according to the standard “Software engineering: Product quality” (see ISO/IEC 9126) of the following characteristics:
* functionality
* reliability
* usability
* efficiency
* maintainability
* portability

SECURITY

The Advanced Trading System has to be prevented from theft and corruption of sensitive and valuable data.
* Access has to be based on roles: RBAC i.e. role based access. Users can only access data via the user interface of the Advanced Trading System. Depending on the role the user is granted create, read, update and/of write (CRUD) rights.
* Mechanisms are in place to detect and protect against (possible) harmful access by IP address or username.
* The source code of the Advanced Trading Systems has to prevent errors such as cross-site scripting (XSS), SQL injection, cross-site request forgery, upload of files with dangerous types, exposure of information through an error message, keys of tables should never be disclosed (eg. a link, URL or a field in a form), … (Please refer to SANS and MITRE CWE.)

QUESTIONS

1. Please explain how you meet our PERSONAL requirements:
* proactive and come up with suggestions for improvement
* discuss issues as soon as possible
* ask whenever necessary
* integrity

* How you do look at our cooperation during the various phases (design, development, testing and maintenance) to keep in touch frequently to ensure that all required functionalities and technical requirements are delivered? This does include fixing bugs and implementing improvements after the go live moment.
* We want to see the results of the technical tests / debudding you have performed during development. How do you develop test scripts, perform technical tests and document test results.
* We would like to be able to test the functionalities in any phase during development and not only at the end, in order to be able to detect any misunderstanding as early as possible. How do you provide such a continuous cooperation and can you handle this particular feedback?
* Is your company able to deliver on a continious basis within a predefined time frame? How many hours per week is your company able to work on this project?
* Do you have a online system available to log issues, document test results (both technical ans functional), add new requirements and post bugs in order to log and trace all issues during the project?
* Which certifications do your employees and your company itself have?
* Which standards do you use during the development of this project? Please refer to project management and programming standards as well.
* Describe how your proposed project team would look like, including project manager, team lead, analysts, quality assurance, developers, testers, …

2. Please explain how you meet our PROGRAMMING requirements:
* advanced programming experience within trading systems
* experience with secure programming in an internet environment (see SANS and MITRE CWE)
* high quality of programming (refer to “Software engineering: Product quality”, ISO/IEC 9126)
* experience with developing stable, flexible and fast systems
* knowlegde on implementing controls, monitoring and audit trails
* up to date knowledge on latest developments in the software industry, especially regarding trading

* Please indicate your experience with programming on trading software. High quality of the source code is essential, so experience of the “Software engineering: Product quality” (ISO/IEC 9126) is required.
* Indicate how you ensure security in web environments as described by SANS and MITRE CWE.
* Which programming language would you prefer to use since the Advanced Trading System has to be stable, flexible and fast?
* Which database management system would be most appropriate?

3. Please explain how you meet our TRADING requirements?
* experience with programming for leading investment banks
* knowledge of trading firms and the hedge fund industry

* Could you mention some applicable examples of projects: trading and web environment.

REQUIRED SKILLS:

Personal:
* proactive and come up with suggestions for improvement
* discuss issues as soon as possible
* ask whenever necessary
* integrity

Programming:
* advanced programming experience within trading systems
* experience with secure programming in an internet environment (see SANS and MITRE CWE)
* high quality of programming (refer to “Software engineering: Product quality”, ISO/IEC 9126)
* experience with developing stable, flexible and fast systems
* knowlegde on implementing controls, monitoring and audit trails
* up to date knowledge on latest developments in the software industry, especially regarding trading

Trading:
* experience with programming for leading investment banks
* knowledge of trading firms and the hedge fund industry

Leave a Reply

Your email address will not be published.