O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

F# in Finance Tour

2.272 visualizações

Publicada em

Talk at F# in Finance conference at Microsoft in London

  • Entre para ver os comentários

F# in Finance Tour

  1. 1. F# IN FINANCE TOUR Phillip Trelford Trayport Ltd F# in Finance 2013
  2. 2. F#UNCTIONAL LONDONERS Founded Feb 2010 600+ Members 50+ Meetups 3 Conferences Topics     Finance Machine Learning Reactive Programming Functional Programming
  3. 3. F# GROUPS WORLDWIDE
  4. 4. SECTORS Prop shops Hedge funds Investment Banks Utilities Insurance
  5. 5. TIME TO MARKET We are using F# because it considerably increases speed of software development which is crucial for a small company with limited development resources. Boston-based Financial Services Firm
  6. 6. EFFICIENCY F# … to reduce the amount of code required and its simplicity when developing massive parallel computations. The performance is phenomenal. We can now re-calculate the entire bank portfolio from scratch in less than a second Handelsbanken
  7. 7. CORRECTNESS The efficient use of functional programming throughout the R&D cycle helped make the cycle faster and more efficient. Less time was spent on translating requirements, miscommunications etc. and more on producing a fast and accurate solution quickly. CME Group
  8. 8. COMPLEXITY We have set up a complete risk management system that combines several data sources… When the calculation requires a proper algorithm (i.e. anything that is more complex than a simple for loop), our choice has been F#. London-Based Asset Management Company
  9. 9. TRAYPORT JOULE
  10. 10. SPECIFICATIONS WITH TICKSPEC
  11. 11. CURRENCY CONVERSIONS [<Measure>] type EUR [<Measure>] type GBP let rateEurGbp = 0.783M<GBP/EUR> // Converts amount in EUR to GBP let euroToPounds (eur:decimal<EUR>) = eur * rateEurGbp
  12. 12. OPTION PRICING let euroCallValue exercisePrice actualPrice = max (actualPrice - exercisePrice) 0.0 let euroPutValue exercisePrice actualPrice = max (exercisePrice - actualPrice) 0.0 let butterflySpread lowPrice highPrice actualPrice = (euroCallValue lowPrice actualPrice) + (euroCallValue highPrice actualPrice) 2.0 * (euroCallValue ((lowPrice + highPrice) / 2.0) actualPrice)
  13. 13. R – TYPE PROVIDER
  14. 14. ORDERS – RECORD TYPES F# type LimitOrder = { LimitPrice : decimal Quantity : int Side : Side } C#
  15. 15. TIME IN FORCE – UNION TYPE type TimeInForce = | GoodTillCancel | GoodForDay | GoodTillDate of DateTime
  16. 16. UNITS IN CELLS type UnitType = | Empty | Unit of string * int | CompositeUnit of UnitType list
  17. 17. TRAINING Phillip Trelford Trayport Ltd F# in Finance 2013
  18. 18. SKILLS MATTER Training Fast Track to F# 2 days (quarterly) Tutorials F# Tutorials (London & NYC) 2 days (annually)
  19. 19. F# KOANS [<Koan>] let SquareEvenNumbersWithPipelineOperator() = (* In F#, you can use the pipeline operator to get the benefit of the parens style with the readability of the statement style. *) let result = [0..5] |> List.filter isEven |> List.map square AssertEquality result __
  20. 20. TRYFSHARP.ORG - FINANCE
  21. 21. F# JOB DEMAND - UK Source: IT Jobs Watch Nov 2013
  22. 22. Phillip Trelford Trayport Ltd F# in Finance 2013

×