F# in Finance Tour

1,936 views

Published on

Talk at F# in Finance conference at Microsoft in London

Published in: Economy & Finance, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,936
On SlideShare
0
From Embeds
0
Number of Embeds
138
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Fsharp.org map
  • Putting it all together: http://www.trayport.com/en/joule/video
  • 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

    ×