Tuesday, 8 September 2009

Event Processing

KaiTrade introduces a range of high performance event processing tools which are now available for beta. The new tools add on to the TS Data (Time series data) processing already in KaiTrade and include:

  • A price aggregator to aggregate data into time/volume bars
  • Calculation library to enhance the bar data with moving averages, Bollinger bands, etc.
  • Pattern matching algorithms to make sense of the data and identify trading opportunities.


Since these functions will work with KaiTrade's existing strategy processing, a trader can compose and execute complex strategies across multiple asset classes with ease.


The price aggregator is able to work from the last price and volume, and so the system works with a wide range of brokers offering real power at a reasonable price.

  1. Price Aggregation

    The price aggregator takes raw data and converts it into a set of bars based on time or constant volume.

    Where a broker or vendor provides time series data, the aggregator works directly with the information from the vendor.

    Usually, the broker or vendor provides the last trade price and volume. In this case the price aggregator puts the data into bars based on the period requested — for example, a stream of last price values can be built into two-minute bars with all the usual datapoints (e.g., Open, Close, High, Low, HLC3, etc.).

    Since the aggregator works with the existing KaiTrade TS Data Set, existing applications can make full use of the data we provide.


  2. Calculations Library

    A calculations library is available to provide some of the common functions needed — for example moving averages, Bollinger bands, ATR, etc. — we have designed the system to allow the end user to add their own calculations using our API.

    The calculations are invoked using the expression evaluator; these calculations are called when bars are added to a set or are updated, and publish their results as curve values in the TS Data Set containing the bar and curve data.

  3. Pattern Matching

    Pattern matching lets the trader identify trading opportunities. Individual pattern matchers work on bar data generated by the price aggregator and curve data added, using the calculation library.

    We have a set of commonly used pattern matching algorithms such as cross detection and bar counts, and as always, the user can add their own pattern matching algorithms to the system using the API. We will have the option to use C# script in Q1 2010.


    The pattern matchers can publish their results as:

  • Conditions (or triggers) that are used in KaiTrade's strategies to enter and exit trades.
  • Inputs to other pattern matchers, in this way you can chain more complex matching schemes together.


Since you can easily associate a trading strategy (for example, a bracket order) to a pattern matcher, it is simple to provide automated trading and order management to provide a complete trading solution.



  1. Putting it all together

    These features give a trader enormous power. Let's say they want to use moving averages to trade the S&P eMini


    It's as simple as ABC — see above:

    1. Choose the product and click on the subscribe — this will access the last price and volume to create a set of bar data
    2. Choose and configure the calculations you want — in our example we have added moving averages
    3. Choose and configure the pattern matchers — in our example we are looking for crosses


    You can add strategies to the computation; these will then automate your trading. When you run the strategy, by subscribing to the data, a chart is generated and triggers are fired according to your settings — see below.


  2. Multiple vendor

    A major advantage is that in most cases the trader can choose the firm or vendor they wish to trade through. Since KaiTrade does the heavy lifting, the vendor does not need to provide charts or historic data.


    Unlike other solutions, KaiTrade already provides cross-asset support — you can trade futures, stocks and FX from a single platform.


Thursday, 30 July 2009

KaiTrade StratoServer in development

We are working on the first release of the KaiTrade StratoServer due out by the early fall, this will provide a range of functions and event processing based on tick and bar data.

The product will build on the exiting K WCFServer thats provides routing and remote excution to the existing KaiTrade Accelerator. Using propreiteary processing for temporal data , event stream processing and pattern matching our aim is to deliver function at a fraction of the existing price that gives traders far faster processing than the systems currently available.

When combined with the Strategy pad traders will be able to link trade signals from the StratoServer to execute their order managemet staretgies running on thier desktop or remote on the server.

Wednesday, 22 July 2009

KSpreader - first look at KaiTrade's automated spreading

Here is a video showing KaiTrade's automated spreading working with CTS Cunningham (http://www.cunninghamllc.com/)

The product is in beta but packs useful features such as the PriceTracker to keep you spread in the market, and a range legging controls. As with most KaiTrade products you can control the entry and exit of spread automation from a variety of chart events and conditions as well as with the standard user interface.

We will be aggressively pricing the product to run with CTS using their modern API and will be introducing products that introduce conditions and complex event processing on the back of CTS data.

If you want to try the product contact us or simply download the trial versions.

Tuesday, 7 July 2009

Using docking windows with KaiTrade

Here is a short video that shows how to use KaiTrade docking windows layout - for those interested this is done using DotNetMagic

CQG Trading System integration

After a marathon development session KaiTrade now integrates with CQG's Trading Systems - this is cool because it means you can develop some trading ideas and back test them and when you are happy with the results bind them into the KaiTrade Strategy pad to control and manage execution.

This follows our theme of letting traders lever what they know, in this case you can setup and test trading rules and switch them on and off depending on your view of the market.

Contact us ( http://www.kaitrade.com/contact/contact.htm ) if you need information, we have a beta program for Trading System users and want your feedback.

Sunday, 5 July 2009

Sneak-Peek at our pre-trade allocation plug-in

If you are interested in Pre-Trade allocation, have a look at this video thats shows an early view of our pre-trade allocation tool The allocator lets you conveniently split large orders over a set of accounts prior to trading them - here is the link:http://www.screencast.com/t/0ISwypG8kV

Friday, 3 July 2009

Your idea goes here - so you need to write an algo application

1 KaiTrade Api kit

If you need to write fast algorithms in C# or C++ let us do the heavy lifting of writing broker access and packing a user friendly application.

Using our plug-in API lets you fast track your trading idea in production by allowing you to concentrate your effort on the task in hand - the trading algorithm and reusing our technology to manger orders and provide access to a wide range of data. Typically, you will have the plumbing written in a matter of hours and then can devote the rest of your time on the application you are trying to develop.

You are using the same tools we use to develop our own applications such as the pairs trader, xxxlot ticket and custom work we do for clients, this means you benefit from using proven technology from day one. Going forward you are then able to run your application on different brokers and we look after updating the connections as external API's change.

1.1 Loader

The loader allows the KaiTrade accelerator to load you plug-in at run time, this means you can develop your plug-in in your own environment and then distribute it to your users for them to use with KaiTrade.

You need to request an ID from us for your plug-in, this enables us to add the permissioning into our provisioning system- critically this gives you a way to control who has access to your plug-in. When the user is provisioned to use your plug-in it appears in their toolbar, they then click on it to use your functions in a seemless way.

1.2 Interfaces

We provide a rich set of interfaces that allow you to:

· Route and manage orders

· Subscribe and Publish real time price data

· Subscribe and publish general purpose data (e.g. trade signals, status updates)

· Access historic bar data, studies and signals/conditions

· Use our and 3rd party order management/execution algorithms

· Use price based algorithms

· Access a variety of data (Accounts, trade venue)

· Access product data

· Access our drivers(CQG, TT, CTS, FIX Protocol and others)

· Interact with Excel

These interfaces enable the developer to concentrate on what they want the their system to do rather than the plumbing to connect to brokers and exchanges, further more their code will then run on multiple brokers.

There is documentation describing the interfaces here or paste this: http://www.kaitrade.com/KTA/API/doc/

1.3 Factory

When your plug-in is loaded into the KaiTrade accelerator it is given the reference of the KaiTrade object factory.

The factory allows you to get instances of all of the trade and system objects in KaiTrade at run time, the factory method eliminated the need for you application to have references to our system components and thus lets you work independently of us.

2 User Plug-In

The user plug-in is essentially an assembly that has a class that implements our plug-in interface, generally together with a user control (user interface). The developer has complete freedom in terms of what the then put into the plugin, however they generally make use of our interfaces and factory to lever the fucntions we provide with their own code.

This way the developer concentrates on the algorithm or project their user wants and uses the work we have already done to provide access to data and route orders.

3 Sample Code

We provide a sample project that build a simple plug-In

Sunday, 28 June 2009

Gray-Box trading systems

There has been a divide between discretionary trading where the trader analyzes data, trades and manages orders in terms of profit and risk manually compared with system trading, where a set of programmed rules (developed and back-tested) drive this process with little or no trader intervention. Recently, systems have evolved that allow a cross-over between system and discretionary trading to produce a hybrid of the two, so the trader gets the best of both worlds.
A gray-box or hybrid trading system provides the trader with automation for the mechanical parts of trading while allowing them to use their judgment (discretion) about trading decisions - so the system seeks to inform the trader of opportunities, and manages the trading of products, yet leaves the decision to use the recommendations to the trader. A key advantage to this nimble approach is that it levers the traders knowledge to the full so that they can react quickly to changing market conditions and maximize return on effective strategies.
This contrasts with a black-box system, which is fully automated (along with the associated high cost and long lead time to profit) and existing manual "click trade" order entry systems that have little or no automation.
In most cases, a gray-box system is implemented by providing the trader with a system, such as the KaiTrade Accelerator, that sits side-by-side with existing trade entry and charting packages to provide some level of automation and control - see the diagram below:
Some programming-savvy traders have also written their own systems using Excel and RTD provided by system vendors such as TT and Pats.

We are seeing increased demand from discretionary traders, who are now using powerful charting and modeling like CQG to generate automated signals to enter and exit trading scenarios.
The trader then uses the KaiTrade StrategyPad to connect and link the signals generated from CQG to strategies that the trader has set up. The trader can then choose which strategies to use depending on their view of the market conditions.The strategies can trade a range of products (futures, options, stocks), spreads and other multi-legs (synthetic products) the trader may set up. Crucially, they offer sophisticated order management, for example controlling risk using trailing stops and locking in profits.
The system evolves as traders identify the best patterns of trading that suit the markets they are interested in. They can apply these to a range of products automatically and free up time to find new markets and methods.

KaiTrade provides all the tools needed to bridge the gaps in existing systems, and let traders and organization start implementing gray-box trading quickly. Our mix of solid engineering and trading experience lets us deliver on our commitment to enable traders to "Trade Better" today and in the future.

Sunday, 21 June 2009

KaiTrade supports multi-leg products

KaiTrade now lets you create and trade your own multi-leg products. This is great news for people wanting to trade:
  • Inter-commodity spreads, for example, crush spread (soybean oil vs. soybean meal)
  • Stock Index futures
  • TED, notes over bonds spreads
  • Yield curve arbitrage
  • Crack spreads, for example, the 3:2:1 ratio trading oil, gasoline and distillate according to this ratio
  • Butterfiles and condors
  • Basis trades
Essentially, we have provided an easy tool that lets you create a product within KaiTrade and then add existing products to it. You can specify the quantity/ratio of each added product and determine how it will trade.

The system can generate the implied price of the product based on the real-time data of the legs. and you can then trade the product from the standard order ticket, the StrategyPad (for example triggered from CQG conditions) and from Excel.

We have a custom pairs trading plugin in test - this levers the multi-leg functions in a convenient way for pairs traders, and will be released in the next month.

You can get more information from our website here and we have a short video demonstrating the new capability here http://www.screencast.com/t/ahyd11HornM

Friday, 29 May 2009

Basic Pairs Trading using Excel

Here is a short demo of how to trade a simple pairs ratio using KaiTrade and the Excel Plugin

A more advanced demo using KaiTrade's built-in algorithims can be seen here
These are intended to show how you can sumit orders for two products simulatously from Excel and work out the P&L for the pairs trade.

Also check out our website here - http://www.kaitrade.com/KTA/PairsTrading/

Thursday, 28 May 2009

Demo Videos

Here is a list of our demo and training videos - we will be extending these.

Is this the quickest way to trade from Excel?

We think our Excel plugin gives KaiTrade users the fastest way to trade multiple markets directly from Excel - Here is a short demo of how to trade from Excel using kaiTrade and TD Ameritrade.

KaiTrade Excel demo   In just minutes you can be trading your strategy.

Simple yet powerful 
It is clearly simple to trade using the tools we provide, but we also give you all the power of the KaiTrade platform:
  • Access to multiple asset classes - you can trade the world
  • Speed of a regular application
  • Access to order management algorithms such as pairs trading and auto stops
  • Access to baskets and synthetic products
  • Access to real time prices and hsitoric data(depending on the broker)
  • Access to extensions written in C++/C# using our plugin API
Our approach is quite different from other vendors in that we only use the standard Excel RTD function for both getting data into the sheet and order requests out - this means we do not install any addins (COM or VBA).

This way we avoid the complication of loading software into Excel and benefit from improved performance and execution since the work is all done in the main KaiTrade application.

Contact KaiTrade for better ways of trading!

Monday, 4 May 2009

New Drivers!

We will be bringing two new driver connections on stream this month TD Ameritrade and Cunningham (CTS) http://www.ctsfutures.com/index.aspx.

These will widen the range of markets available to our customers and allow people to trade a wider range of asset classes, for example the eMini S&P against a basket of stocks.

All the existing plugins and algos will be available for these new connections.

Sunday, 26 April 2009

Triggering Algorithms from Excel

Here is a short video showing how to automatically trigger algorithms from the KaiTrade strategy pad using Excel.

This allows an Excel user to trigger a variety of execution algorithms to trade markets directly from Excel.

Monday, 20 April 2009

Using CQG conditions to automate trading

Here is a short video showing how to automatically trade using CQG and KaiTrade 

cqgconditions demo

The key points are that you can set up complex conditions in CQG and then link these to the StrategyPad in the KaiTrade Accelerator. 

The strategy pad lets you:
  • enter orders into the market and exit trades(cancel working or flatten position)
  • run advanced strategies such as our SuperScalper and other trading strategies.
These features allow a CQG great flexibility to automate and manage their trading.

Sunday, 5 April 2009

Into April!

March has been a great month; we have three new client firms that are now all trading using the KaiTrade Accelerator, some with custom plugins. The common thread is the need for a broker neutral platform that can be used to provide the algorithms and custom function their traders need quickly and at the right price.

1 Product - The product has moved on by leaps and bounds:

Access to rich set of trading data needed to quickly develop algos that work in today's market conditions:

· Real Time prices

· Time Series data

· Custom Studies

· Expressions and Signals(Enter and Exit)

Access to advanced trading strategies running in the StrategyPad

· Super Spreader

· Pairs Trading

· Regular Trading

Access to External systems

· All the data in the KTA is now published through our custom RTD server into Excel

· Excel Users can lever the full power of KaiTrade using signals to enter and exit strategies using the StrategyPad.

· Plug In API Kit is now available for 3rd Parties to write algorithms on top of KaiTrade.

· Web Service (WCF) access.

New Tools

We have introduced a scalping plugin that sits on top of the KaiTrade platform called XXXLOT, this tool is an on the market trade executor where a buy and or sell are placed in the market and when a buy is filled the XXXLOT places a sell at the best offer and vica versa for the sell, its Auto mode makes it very effective in the current market condition.

Simple Deployment

We have adopted Microsoft ClickOnce as our way for deploying the system when combines with our ability to permission individual traders for the various access and functions we offer, gives enormous flexibility to handle a large user base.

2 Going Forward

The next quarter is going to be very busy for KaiTrade, in terms of development:

· We are planning to extend the range of supported brokers in Q2 to support TD Ameritrade and Interactive Brokers.

· We will be providing complex order types such as Trailing Stops that run in KaiTrade itself.

· New order tickets and an Extended "SuperScalper aka XXXLot, will be made available.

· A range of upgrades based on client feedback, for example improved access to historic and trading system data.

Wednesday, 18 February 2009

KaiTrade Accelerator Overview

KaiTrade has a toolbar that provides its basic functions; extended functions are all loaded as plug-in extensions. The strategy pad is a central part of the KaiTrade system since all strategies (one or more orders) are managed and executed using the strategy pad. The strategy pad uses triggers (internal and external, for example a CQG condition) to initiate strategies for processing.

The plug-in interface and loader are provide an efficient, simple and robust way to add extended functions and an algorithm to KaiTrade – there is a kit for 3rd parties to develop their own plug-ins

The KaiTrade facade gives plug-in and external functions with a single point of full access to the platform. KaiTrade uses extensive use of interfaces and provides a Factory to create objects to simplify the development of plug-in.

The driver manager controls the operation of all the drivers (a driver is used to connect to a broker or exchange) attached to the system; it allows the rest of KaiTrade to have a consistent way to use external brokers so that it is simple to have strategies that use multiple drivers (brokers) in a seamless way.

The drivers are dynamically loaded at runtime based on the user’s profile. The user profile is returned by the sign on server when a user signs onto the system. The IDriver interface defines how all drivers will behave; there are four types of functions supported:

  • Order Routing – based on FIX 4.4
  • Standing Data/Product definitions – based on FIX 4.4
  • Real-Time Data (Prices L1 & L2) – using the KaiTrade internal publish-subscribe
  • Time series data and Triggers – using the KaiTrade internal publish-subscribe

At this point in time KaiTrade is working on:

  • TT XAPI – under test
  • CQG - complete
  • FIX – conformance testing
  • Photon API (Futurepath) – testing

We are planning to write to TD Ameritrade and Interactive brokers in 2009Q2

The system uses a provisioning system that controls what functions an individual may use, this works with the server that authenticates users access.

© KaiTrade LLC 2009

Monday, 9 February 2009

Thoughts on Plug-INs

I have just about finished the provisioning mechanism for KTA (KaiTrade accelerator) and this will allow us accurately control what features an end user(Trader) can use in the application when they connect/authenticate at startup.

We are now writing a plug-in for a client that needs custom C# functions for thier trading and so have designed a reasonable mechanism for plug-ins that I think addresses some key issues:

Location, you can easily locate a plug-in anywhere on a target PC, the provisioning lets you choose where to load the plug-in from - this may seem obvious, but many plug-in systems control the locations making it hard for a 3rd party to manage their deployment.

Dependences, we have minimal dependencies, the plug-in developer just needs the KTA interfaces assembly to write a plug-in. This is a whole lot better than those cases where the plug in developer requires access to a set of the parent applications assemblies, especially if they will not be put in the GAC during installation.

While we may have some other issues and limitations my hope is that its going to be easy for 3rd Parties to add software to the platform.

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.

Monday, 26 January 2009

Thoughts on designing our new systems

I am now busy designing new trading systems to meet the needs of our customers in terms of custom systems and a new trading platform -   the KaiTrade Accelerator, and am writing this entry to think about the philosophy of what matters when designing a new trading system.

One of the key things we have learned is that the pace of change is ever increasing to match the changes in markets and the economy. Systems must be easy to extend and adapt; what is critical is to provide ways that allow the trader to work with his/her ideas directly without the delay and cost of a development cycle. On the flipside, it must be possible to add highly optimized code to provide the lowest latency execution.

The platform itself needs to provide the basic functions required by all trading platforms; it must support multiple asset classes (stocks, FX, Futures and Options) and it has to work with and adapt to the many brokers and firms traders use. Solid engineering is needed to make sure that the platform can manage huge number of updates and messages. The key challenge is to provide a rock-solid system that does not apply constraints to its use.

I think that to hit the sweet spot, you need to balance the function provided with ease of adaption; it is no use providing a system that is difficult to use, has a long learning curve or that is hard to integrate into a firm’s existing systems.

We think that the systems we will deploy need to support a variety of tools used by traders - for example Excel or other analysis tools.

Friday, 16 January 2009

KaiTrade Blog Welcome