There is a project I've been working on on and off lately that may be better as a collaborative effort: Ninja Spreader.
Out of the box, Ninja is good for directional trades, but offers little synthetic spread trading functionality. I need most of the functionality of Trading Technologies' Autospreader on the Ninja 7 platform. This stems from a "buy or build" choice. I want to try to build it. If it is built and can not compete with the TT, CQG, and RTS offerings, that is knowledge that will save one money in the long run.
Here we go...
SOFTWARE SPECIFICATION:
Poached from the Autospreader defination in MarketsWiki, mostly, with some modifications:
Ninja Spreader (NS) works the legs in the outright markets to match the desired spread price. It incorporates a range of capabilities to provide traders with flexibility:
- Choose between different types of spreads
- Enable active quoting on one or both legs
- Configure the spread ratio and all other parameters to match strategy
- Control legging risk with user defined parameter settings
- Save and manage unlimited spread configurations
- Maintain your position in queue and display estimated position in queue for multiple quote orders.
NS will be a Ninja Trader Strategy, with all parameters controlled by the Strategy Dialog. Users can create new spreads or edit, launch and delete existing spreads. To create a new spread, a user defines the legs of the spread, their trading ratios, and implied spread price. Various per-leg options can be modified, including ticking, pay-ups, and leaning requirements. User-definable parameters will include:
-Targets, stops, and positive and negative pay-up ticks
-Ability to adjust for market depth and define an offset volume multiplier to reduce legging risk.
-Multi-level settings to determine sensitivity to market moves and prevent excessive quoting.
-Price reasonability check on any leg.
This is a project I expect will take months. I'll be starting this by outlining definitions and logic requirements and then building some blocks of code. This strategy will use limit orders, not market orders, and will require access to the Level 2 book as we'll be quoting in the market based on implied synthetic spread values.
Being brutally honest this is beyond my current capabilities in C#/Ninja, so you will be watching me make mistakes and hopefully pointing them out to me :).
Personally I don't do equities, but NS should be robust enough to also work for pairs trading if you are comfortable quoting in the market.
Lastly, this is intended for low latency applications such as being collocated with your broker's clearing engine, but might work at higher latencies.
I am open to all suggestions/help/feedback/code snippets as I work on this, particularly if you have experience with TT or CQG spreaders.
24 February 2010. Posted version 0.01. It does nothing, but its a start.
25 February 2010. Posted version 0.1. Added a lot more code and logic comments. Trying to build two market depth books.