Case study bond trading system

Enterprise Integration Patterns - Case Study: Bond Trading System

 

case study bond trading system

case study bond trading system Jan 31, · For example, just yesterday I snatched over $7K trading Digital Ally (DGLY). That said, here’s the step-by-step breakdown on this catalyst trade. Jun 07,  · Real Money Trading Case Studies It’s been a pretty exciting week here, and we’ve been finding winners left and right despite the market volatility earlier on Monday followed by a rally that erased all of those losses. Dealing with Drawdowns trading a system, a case study. Which means, the higher the number, the better. If it’s above 1 that’s a good sign, and anything above is really good. In our case, we got a MAR Ratio of , so the average yearly profit ($k) is times the maximum drawdown (-$k).Author: Marco Mayer.


Case Study Bond Trading System


Patterns are the abstraction of an idea in a reusable form. Often, case study bond trading system, the very generic nature of patterns that makes them so useful also makes them hard to grasp. Sometimes the best thing to help understand patterns is a real world example. Not a contrived scenario of what could happen; but what actually happens and what will happen. This chapter applies patterns to solve problems using a discovery process. The system we will discuss is a bond trading system that I worked with for two years from initial design through production, case study bond trading system.

We will explore scenarios and case study bond trading system that were encountered and how to solve them with patterns. This involves the decision process of choosing a pattern, as well as how to combine and adjust patterns to suit the needs of the system.

And this is all done taking into account the forces encountered in real systems including business requirements, client decisions, architectural and technical requirements, as well as legacy system integration. The intent of this approach is to provide a clearer understanding of the patterns themselves through practical application. Building a System A major Wall Street investment bank sets out to build a bond pricing system in an effort to streamline the workflow of their bond trading desk.

Currently, case study bond trading system, bond traders have to send prices for a large number of bonds to several different trading venues, each with its own user interface. The goal for the system is to minimize the minutiae of pricing all of their bonds combined with advanced analytic functionality specific to the bond market in a single encapsulated user interface. This means integration and communication with several components over various communication protocols.

The high level flow of the system looks like this: High Level Flow First, market data comes into the system. Market data is data regarding the price and other properties of the bond representing what people are willing to buy and sell the bond for on the free market. The market data is immediately sent to the analytics engine that alters the data.

Analytics refers to mathematical functions for financial applications case study bond trading system alter the prices and other attributes of bonds. These are generic functions that use input variables to tailor the results of the function to a particular bond. The client application that will run on each trader desktop will configure the analytics engine on a per trader basis, controlling the specifics of the analytics for each bond the trader is pricing.

Once the analytics are applied to the market data, the modified data is sent out to various trading venues where traders from other firms can buy or sell the bonds. Architecture with Patterns With this overview of the workflow of the system, we can approach some of the architectural problems we encounter during the design process. Traders need a very responsive application on both Windows NT and Solaris workstations. Therefore, we decided to implement the client application as a Java thick client because of its platform independence and its ability to quickly respond to user input and market data.

Analytics Engine: Performs analytics on incoming market data and broadcasts the modified market data to the TIB. Contribution Server: Performs all communication with trading venues. The trading venues are third party components not controlled by the bank. Legacy Market Data Subsystem Legacy Contribution Subsystem We need to decide how the separate subsystems Java thick client, market data, and contribution are going to communicate.

We could have the thick client communicate directly with the legacy servers, case study bond trading system, but that would require too much business logic on the client, case study bond trading system. This will achieve nice encapsulation of the business logic related to these areas. The current components in the system are shown below. The system and its components The first communication question is how to integrate the Java thick client and the two Java server components in order to exchange data.

File Transfer can similarly be ruled out since minimal latency is required to ensure current prices are sent out to the trading venues. This leaves us with a choice between Remote Procedure Invocation or Messaging.

So both integration styles are easy to implement in Java. So which will work better for this project, Remote Procedure Invocation or Messaging? Furthermore, the bank would like this to be a generic pricing system that can be utilized in other applications.

So besides an unknown number of Think Clients, there may be an unknown number of other applications using the case study bond trading system data coming out of the Gateways. A Thick Client or other application using the pricing data can fairly easily use RPC to make calls to the Gateways to get pricing data and invoke processing, case study bond trading system.

However, pricing data will constantly be published, and case study bond trading system clients are only interested in certain data, so getting the relevant data to the proper clients in a timely manner could be case study bond trading system. The clients could poll the Gateways, but that will create a lot of overhead. It would be better for the Gateways to make the data available to the clients as soon as it is available.

This, however, will require each Gateway to keep track of which clients are currently active, and which want what particular data; then, when a new piece of data becomes available which will happen numerous times per secondthe Gateway will have to make an RPC to each interested client to pass the data to the client.

Ideally, case study bond trading system, all clients should be notified simultaneously, so each RPC needs to be made in its own concurrent thread. This can work, but is getting very complicated very fast.

Messaging greatly simplifies this problem. With Messagingwe can define separate channels for the different types of pricing data. Then, when a Gateway gets a new piece of data, it will add a message containing that data to the Publish-Subscribe Channel for that data type. Meanwhile, all clients interested in a certain type of data will listen on the channel for that type.

In this way, the Gateways can easily send out new data to whomever is interested, without needing to know how many listener applications there are or what they are. The clients still need to be able to invoke behavior in the Gateways as well.

Since case study bond trading system are ever only two Gateways, and the client can probably block while the method is invoked synchronously, these client-to-Gateway invocations can fairly easily be implemented using RPC. Case study bond trading system, since we are already using messaging for Gateway-to-client communication, messages are probably just as good a way to implement client-to-Gateway communication as well. Therefore, all communication between the Gateways and the clients will be accomplished through messaging.

Because all of the components are written in Java, JMS presents an easy choice for as the messaging system. This is effectively creating a Message Bus or an architecture that will make it possible for future systems to integrate with the case study bond trading system system with little or no changes to the messaging infrastructure. This way, the business functionality of the application can be easily used by other application the bank develops.

As a result, we will use MQSeries since we already have a support infrastructure in place and a site license of the product. But how? As a result, the Message Translator approach has to be abandoned. A closer look at the Message Translator pattern shows it is related to the Channel Adapter in its use of communication protocols. The heart of a Channel Adapter is to connect non-messaging systems to messaging systems.

A pair of channel adapters that connects two messaging systems is a Messaging Bridge. The purpose of a Messaging Bridge is to transfer messages from one messaging system to another. The messaging bridge implements the effectively simulated message translation between seemingly incompatible messaging systems and different languages. Message Translator using Channel Adapters The next diagram shows the current system design including the Gateways and other components.

This is a good example of pattern application. We combined two Channel Adapter s with a non-messaging protocol to implement the Message Translator pattern, effectively using one pattern to implement another pattern, case study bond trading system. Additionally, we changed the Channel Adapter s' context to link two messaging systems with a non-messaging cross language translation protocol rather than connecting a messaging system to a non-messaging system. The current system with the Channel Adapters Structuring Channels A key to working with patterns is not only knowing when to use which pattern, but also how to most effectively use it.

Each pattern implementation has to take into account specifics of the technology platform as well as other design criteria.

This section applies the same discovery process to find the most efficient use of the Publish-Subscribe Channel in the context of the market data server communicating with the analytics engine. The market data feed uses a separate Publish-Subscribe Channel for each bond it is publishing prices for. This may seem a little extreme since each new bond needs its own new channel. Rather, channels are referenced by a hierarchical set of topic names called subjects.

The TIBCO server then filters a single message flow by subject, sending each unique subject to a single virtual channel. The result of which is a very lightweight message channel. We could create a system that publishes on a few channels and subscribers could listen only for prices they are interested in.

This would require subscribers to use a Message Filter or Selective Consumer to filter the entire data flow for interesting bond prices, deciding whether each message should be processed as it is received. Given that the market data is published on bond-dedicated channels, subscribers can register for updates on a series of bonds. This effectively allows subscribers to "filter" by selectively subscribing to channels and only receiving updates of interest rather than deciding after the message is received.

It is important to note that using multiple channels to avoid filtering is a nonstandard use of messaging channels.

In context of the TIBCO technology however, we are really deciding whether to implement or own filters or utilize the channel filtering built into TIBCO -- rather than whether to use so many channels. The problem at hand is to find the channel structure that most efficiently rebroadcast the newly modified market data. Since we already have one dedicated Message Channel per bond inherited from the market data price feed, it would be logical to modify the market data and rebroadcast the modified market data on the bond dedicated Message Channel.

But this will not work since the analytics modifying the bonds prices are trader specific. If we rebroadcast the modified data on the bond Message Channelwe will destroy the data integrity by replacing generic market data with trader specific data.

Case study bond trading system the other hand, we could have a different message type for trader specific market data that we publish on the same channel allowing subscribers to decide which message they are interested in to avoid destroying the data integrity. But then clients will have to implement their own filters to separate out messages for other traders, case study bond trading system. Additionally, there will a substantial increase in messages received by subscribers, placing an unnecessary burden on them, case study bond trading system.

There are two options: One Channel per Trader: Each trader has a designated channel for the modified market data. This way, the original market data remains intact and each trader application can listen to its specific traders Message Channel for the modified price updates.

One Channel per trader per Bond: Create one Message Channel per-trader per-bond solely for the modified market data of that bond. One channel per trader One channel per bond per trader There are advantages and disadvantages to each approach. The per-bond approach, for example, uses a lot more Message Channel. In the worst-case scenario, the number of Message Channel will be the number of bonds total multiplied by the number of traders.

We can put upper bounds on the number of channels that will be created since we know case study bond trading system there are only around 20 traders and they never price more than a couple hundred bonds. This puts the upper limit below the 10, range, which is not so outlandish compared to the nearlyMessage Channel the market data price feed is using.

On the other hand, the sheer number of Message Channel s could be a problem from a management perspective.

 

Dealing with Drawdowns trading a system, a case study

 

case study bond trading system

 

case study bond trading system Jan 31, · For example, just yesterday I snatched over $7K trading Digital Ally (DGLY). That said, here’s the step-by-step breakdown on this catalyst trade. Design and testing of custom applications to support trading; Work-flow monitor creation and management; Blotter tuning; Setting and documentation of application parameters; Analysis, design, and deployment of cash flow management system; Post-implementation business process improvement and application tuning; Automation of daily client trade reports. Apr 10,  · This case study reviews one of the world痴 most comprehensive electronic bond trading systems -- Deutsche Bank痴 electronic bond trading offering, Autobahn. Deutsche Bank has developed a system that allows the bank痴 clients to receive live, executable prices for about 5, fixed income securities, denominated in 20 currencies.