We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this questionI am working on an interpreted quant finance library for rapid prototyping of equity derivatives mostly. I do not have any experience with such languages (开发者_开发百科I've heard of Goldman-Sach's Slang, but have never seen it).
What sort of functionality is found in such languages, and do they have some unique features which correspond to the financial markets?
Have you ever considered Python? There are many mature libraries that can be used for statistical analysis, data acquisition and cleaning. To name a few:
Numpy - N-dim array objects
Scipy - library of statistical and optimisation tools
statsmodels - statistical modeling
Pandas - data structures for time series, cross-sectional, or any other form of “labeled” data
matplotlib - MATLAB-like plotting tools
PyTables - hierarchical database package designed to efficiently manage very large amounts of data
CVXOPT - convex optimization routines
I've personally implemented some pretty complex derivatives pring models in python, including a jump-diffusion Vasicek interest rate lattice, many stochastic processes, and even managed to write a genetic optimizer.
One of my professors is director of research ( PhD. in math ) at a Chicago hedge fund who uses Python exclusively.
Perhaps, every company has something on their own, but there are some materials available on the web ( mainly about DSL-s ):
- Going functional on exotic trades
- Composing contracts: an adventure in financial engineering
As for your own language ( and libraries / runtime! ) - there is not too much to say whithout knowing your requirements ( to name just few, which immediately came to my mind when I started to think about it ):
- Who will use it - sales or traders or quants or all
- How will it be used - just pricing of predefined blocks and/or solving optimization problems. It would lead to an ability to define workflows.
- Interaction with underlying infrastructure and its level of abstractions
- Extensibility ( to what an extent )
- Live calculations or simulation
- I/O support
Most languages/tools provide constructs for representing and analyzing time series [e.g. time series regression and cross-correlation stuff]
The "unique" features refer to either speed of access, ease of querying, or expressivity.
K is notably quick, having a very terse language
matlab is very expressive, allowing you to use the entire set of toolboxes and extend with java
But at the end of the day it really depends on what exactly you want to do.
精彩评论