It seems to me the time is ripe for Visual DSLs to appear in the financial quantitative domain – you can imagine the pure housekeeping involved in having 2500 trade strategies operating across 3500 tick feeds.. hmmm.
So you might be asking what the hell is a DSL? A DSL or Domain Specific Language can mean many things, but usually falls into 2 classes – Visual and Textual.
Say I want to create a web app that generates some HTML page dynamically… regardless of whether I program in Ruby or Lisp I really want a nicer way to open and close HTML tags than
print('<html>\n') ... print(</html>\n')
… a textual DSL gives you a language that is a much closer match to the problem .. I want to just write something like
where the html directive handles pretty printing/indenting and closing the HTML tag. This kind of textual DSL is an olde olde invention and is really a hard core part of lisp from way back, and a nice discovery to those of us who have implemented DSLs in other languages [Ive done this many times in lex/yacc/C!]
Visual DSLs are the new-new thing it seems and becoming more popular and buzzword compliant recently… Any UML modeling tool worth its salt will have a DSL engine. Basically a visual DSL allows you to visually model any valid system within the constraints of the DSL language that you set up. So from a users perspective its just Drag n Drop and once you’ve created something useful you can generate code or export some data from that visual model… The DSL rules constrain the diagram, so its theoretically impossible to create something invalid in the language.
A quick google turned up a link for Alphacet who sell a Visual modeling tool that allows one to create processing modules for your financial data feeds. Seems like a motif well see a lot more of in the market place.
In a trade engine, certainly your going to have a pipelined backend with process flow, and a data format to describe the jobs/processing actions [even if its what function pointer to load for that code chunk]. Many modern quant shops will have a bespoke visual tool for editing these jobs that writes say an XML format that is run by the backend processor, so it seems a good fit for DSLs to be that visual editor.
This kind of fits with Alex Kuznetsov’s view [from his excellent book “The complete guide to capital markets for Quantitative Professionals”] that many of the common features of trade systems will eventually be sourced as an off the shelf component from a 3rd party.
Some grepping on google shows up this example where a DSL is used by Barclays, implemented in Haskel.
Any other examples out there?