Sunday 1 February 2009

The value of Plug-Ins

1 Motivation

Plug-ins are a major part of the KaiTrade Accelerator platform. Our customers want ways to add complex algorithms using C++ and C# for speed and efficiency; our mission is to allow them to do this independently and then add these to the platform to reap the benefits of our connectivity and order handling.

We wanted our own way to extend the product, while managing cost and time to delivery, and keeping the system robust. Separating algorithms and custom user interface elements from the base platform allows true rapid development.

We envisage that 3rd parties will develop or port their algorithms to reach a wider audience; we can provide their developers with the tools they need to do this.

2 KaiTrade Plug-in Support

KTA is able to dynamically load plug-ins, enabling us (and 3rd parties) to deploy add-on applications as separate offerings to KTA. These can be installed independently from KTA by simply adding the name of the plug-in and the location of its assembly.

The plug-in developer can add a rich set of user interface elements by passing a list of user controls to KTA. These are added to the list viewers from which the user can select. The plug-in is given a reference to the application, which, in turn, gives the plug-in developer access to a factory object, giving access to key components such as the product, order and strategy managers.

KTA makes extensive use of interfaces, enabling the developer to substitute his/her own components, and allows us to let 3rd parties access the key parts of the platform.

In general, a wide range of design patterns is used (Factory, Observer/Publish Subscribe, Strategy, Interface and Singleton) and standards such as FIX Protocol. This helps reduce the learning curve for the plug-in developer.

In summary, we believe plug-ins are a crucial element of any modern trading platform, and it is a top priority to make this safe, efficient and easy to use.

No comments:

Post a Comment