This story is about how we, as software consultants/architect and developers, must have a huge amount of creativity, besides hard science knowledge.
It was about 5 years ago, I was approached by a consultancy company that had a project for one of the best-known banks, to create their trading systems. It’s not the everyday project, they said. Also, before me, there were four other consultants that declined the project. Mmmm that’s odd.
Basically, they wanted to create a trading system keeping the trading rules and models “secret”.
Thank God I love challenges… because this was a big one.
So, how does a software developer can code an entire trading system, without the intellectual property being disclosed?
I came up with an elegant and simple idea:
I would assume that it’s a pretty common trading system (or not):
· Market Data feeds and trading feeds
· Connectivity to brokers and other feeds
· OMS, smart routing
· Risk Management
· Portfolio Management
· Allocations and fees
· Interfaces to external systems
But the key here was the “Algo Designer”
I needed to give to the users the ability to design their own trading system, using intuitive and visual methods, so I have created fixed objects, which I called variables. They could drag and drop variables, assign values and conditions to it, and keep doing it until the entire condition tree is completed.
Then, there were defined “actions” that were treated like variables as well. So, one action could be “Send market order of $SPY or $SPX” and “Send limit order of $EURUSD”
Lastly, there were incoming events, where the “strategy designer” needed to take care of. For example, what to do if an order was rejected, filled, partially filled, etc.
So, yes, intellectual property can keep it secret, and software developers won’t need to know each rule, data or action needed for proprietary trading firms or hedge funds.
While protecting trading intellectual property, software developers still can create great solutions. Of course, the work involved is more challenging, but it’s worth it.
One other and easy solution could be allowing to the users to “insert” code spinets of their trading rules. This won’t be with any fancy user interface, but it could give to the user more flexibility to create even more robust trading strategies.
And lastly, if you are following me through my articles, you know that I’ve been writing high-frequency trading and low latency systems. In these cases, this kind of approaches is not recommended, since it will add a huge amount of latency. However, a balance between keeping the IP’s intact and speed must be addressed from a business stand of point.