Hostname: page-component-586b7cd67f-tf8b9 Total loading time: 0 Render date: 2024-11-26T03:15:59.105Z Has data issue: false hasContentIssue false

Commercial uses: Going functional on exotic trades

Published online by Cambridge University Press:  01 January 2009

SIMON FRANKAU
Affiliation:
Barclays Capital, 5 The North Colonnade, London E14 4BB, UK (e-mail: [email protected])
DIOMIDIS SPINELLIS
Affiliation:
Athens University of Economics and Business, Patision 76, GR 104 34, Athens, Greece (e-mail: [email protected])
NICK NASSUPHIS
Affiliation:
Barclays Capital, 5 The North Colonnade, London E14 4BB, UK (e-mail: [email protected], [email protected])
CHRISTOPH BURGARD
Affiliation:
Barclays Capital, 5 The North Colonnade, London E14 4BB, UK (e-mail: [email protected], [email protected])
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

The Functional Payout Framework (fpf) is a Haskell application that uses an embedded domain-specific functional language to represent and process exotic financial derivatives. Whereas scripting languages for pricing exotic derivatives are common in banking, fpf uses multiple interpretations to not only price such trades, but also to analyse the scripts to provide lifecycle support and more. This paper discusses fpf in relation to the wider trading workflow and our experiences in using a functional language in such a system as both an implementation language and a domain-specific language.

Type
Articles
Copyright
Copyright © Cambridge University Press 2008

References

Anand, S., Chin, W.-N. & Khoo, S.-C. (2001) Charting patterns on price history. In ICFP '01: Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming. New York: ACM, pp. 134145.CrossRefGoogle Scholar
Arnold, B. R. T., van Deursen, A. & Res, M. (1995) An algebraic specification of a language for describing financial products. In ICSE-17 Workshop on Formal Methods Application in Software Engineering, Seattle, WA, Wirsing, M. (ed.), IEEE, New York, pp. 613.Google Scholar
Cardelli, L. & Davies, R. (1997) Service combinators for web computing. In USENIX Conference on Domain-Specific Languages. Berkeley, CA: USENIX Association, pp. 19.Google Scholar
Claessen, K. & Hughes, J. (2000) QuickCheck: A lightweight tool for random testing of Haskell programs. ACM SIGPLAN Not. 35 (9), 268279.CrossRefGoogle Scholar
Claessen, K. & Sands, D. (1999) Observable sharing for functional circuit description. In Proceedings of Asian Computer Science Conference, Phuket Thailand. Lecture Notes in Computer Science. Springer Verlag, Berlin, Germany.Google Scholar
van Deursen, A. (1997) Domain-specific languages versus object-oriented frameworks: A financial engineering case study. In STJA'97: Smalltalk and {J}ava in Industry and Academia, Erfurt, Germany, Ilmenau Technical University, pp. 3539.Google Scholar
Eggenschwiler, T. & Gamma, E. (1992) ET++SwapsManager: Using object technology in the financial engineering domain. In OOPSLA '92: Conference Proceedings on Object-Oriented Programming Systems, Languages, and Applications. ACM, New York, pp. 166177.CrossRefGoogle Scholar
Elliott, C., Finne, S. & de Moor, O. (2003) Compiling embedded languages. J. Funct. Prog. 13 (2). Updated version of paper by the same name that appeared in SAIG '00 proceedings.CrossRefGoogle Scholar
Feldman, S. I. (1979) Make—a program for maintaining computer programs. Softw. Pract. Exp. 9 (4), 255265.CrossRefGoogle Scholar
Finne, S., Leijen, D., Meijer, E. & Peyton Jones, S. (1999) Calling Hell from Heaven and Heaven from Hell. In ICFP '99: Proceedings of the Fourth ACM SIGPLAN International Conference on Functional Programming. Paris, France, ACM Press, New York, pp. 114125.CrossRefGoogle Scholar
Gill, A. & Runciman, C. (2007) Haskell program coverage. In Haskell '07: Proceedings of the ACM SIGPLAN Workshop on Haskell Workshop. New York: ACM, pp. 112.Google Scholar
Grabmüller, M. (2006) Monad Transformers Step by Step. Draft paper. Available online http://uebb.cs.tu-berlin.de/magr/pub/Transformers.pdf.Google Scholar
Hudak, P. (1996) Building domain-specific embedded languages. ACM Comput. Surv. 28 (4es), 196.CrossRefGoogle Scholar
Hudak, P., Hughes, J., Peyton Jones, S. & Wadler, P. (2007) A history of Haskell: Being lazy with class. In HOPL III: Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages. San Diago, CA, ACM, 12-112-55 ACM Press: New York, NY, USA, pp. 12-1–12-55.Google Scholar
Hull, J. C. (2005) Options, Futures and Other Derivatives. 6th ed.Upper Saddle River, NJ: Prentice Hall.Google Scholar
Kramer, D. (1999) API documentation from source code comments: A case study of Javadoc. In SIGDOC '99: Proceedings of the 17th Annual International Conference on Computer Documentation. New York: ACM, pp. 147153.CrossRefGoogle Scholar
Lämmel, R. & Peyton Jones, S. (2003) Scrap your boilerplate: A practical approach to generic programming. In TLDI 2003: Proceedings of the ACM SIGPLAN Workshop on Types in Language Design and Implementation. ACM Press, New York.Google Scholar
LexiFi. LexiFi Platform. http://www.lexifi.com/. Last accessed September 2007.Google Scholar
Marlow, S. (2002) Haddock, a Haskell documentation tool. In Proceedings of the ACM SIGPLAN Workshop on Haskell. ACM Press, New York.Google Scholar
Mernik, M., Heering, J. & Sloane, A. M. (2005) When and how to develop domain-specific languages. ACM Comput. Surv. 37 (4), 316344.CrossRefGoogle Scholar
MLFi. (2004) Structuring, Pricing, and Processing Complex Financial Products with MLFi. Available online http://industries.bnet.com/whitepaper.aspx?&tags=window&docid=103795. Last accessed January 2007.Google Scholar
Peyton Jones, S. & Eber, J.-M. (2003) How to write a financial contract. In The Fun of Programming, Gibbons, J. & de Moor, O. (eds.), Palgrave Macmillan.Google Scholar
Peyton Jones, S., Eber, J.-M. & Seward, J. (2000) Composing contracts: An adventure in financial engineering (functional pearl). In ICFP '00: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming. New York: ACM, pp. 280292.CrossRefGoogle Scholar
Peyton Jones, S., Marlow, S. & Elliott, C. (1999) Stretching the storage manager: Weak pointers and stable names in Haskell. In Implementation of Functional Languages. Springer Verleg, Berlin, pp. 3758.Google Scholar
Roundy, D. (2005) Darcs: Distributed version management in Haskell. In Haskell '05: Proceedings of the 2005 ACM SIGPLAN Workshop on Haskell. ACM Press, New York, pp. 14.Google Scholar
Sansom, P. M. & Peyton Jones, S. (1995) Time and space profiling for non-strict, higher-order functional languages. In POPL '95: Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. New York: ACM, pp. 355366.CrossRefGoogle Scholar
Spinellis, D. (1993) Implementing Haskell: Language implementation as a tool building exercise. Struct. Prog. 14, 3748.Google Scholar
Spinellis, D. (2001) Notable design patterns for domain specific languages. J. Syst. Softw. 56 (1), 9199.CrossRefGoogle Scholar
The Bank for International Settlements. (2007) BIS Quarterly Review. Available online http://www.bis.org/publ/qtrpdf/r_qa0703.pdf. Last accessed September 2007.Google Scholar
van Deursen, A. & Klint, P. (1998) Little languages: Little maintenance. J. Softw. Maintenance 10 (2), 7592.3.0.CO;2-5>CrossRefGoogle Scholar
van Rossum, G. & Drake, F. L. Jr., (eds). (2006) An Introduction to Python. Network Theory, Bristol, UK.Google Scholar
Wall, L. & Schwartz, R. L. (1990) Programming Perl. Sebastopol, CA: O'Reilly and Associates.Google Scholar
Wolfram, S. (2003) The Mathematica Book. 5th ed.Wolfram Media. Champaign, IL.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.