Book Image

F# for Quantitative Finance

By : Johan Astborg
Book Image

F# for Quantitative Finance

By: Johan Astborg

Overview of this book

F# is a functional programming language that allows you to write simple code for complex problems. Currently, it is most commonly used in the financial sector. Quantitative finance makes heavy use of mathematics to model various parts of finance in the real world. If you are interested in using F# for your day-to-day work or research in quantitative finance, this book is a must-have.This book will cover everything you need to know about using functional programming for quantitative finance. Using a functional programming language will enable you to concentrate more on the problem itself rather than implementation details. Tutorials and snippets are summarized into an automated trading system throughout the book.This book will introduce you to F#, using Visual Studio, and provide examples with functional programming and finance combined. The book also covers topics such as downloading, visualizing and calculating statistics from data. F# is a first class programming language for the financial domain.
Table of Contents (17 chapters)
F# for Quantitative Finance
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Introducing market data


Market data is the data representing the current bid/ask for a financial instrument at an exchange. The market data can either be the top of book, best bid/ask for the particular instrument, or an aggregated book with several levels of depth. Normally, we just look at the best bid/ask prices, top of book called quotes. Market data can also be sent as OHLC bars or candles. Such bars are only useful for visualizing price information in charts or for trading at a longer horizon. It is a simple way of filtering the price information. The midpoint is defined as the average between the bid and ask.

Type Quote =
{ 
   bid : float
   ask : float
} member this.midpoint() = (this.bid + this.ask) / 2.0

Let's see how to use this type:

let q = {bid = 1.40; ask = 1.45} : Quote

We can calculate the midpoint as follows:

> q.midpoint();;
val it : float = 1.425

We can extend the Quote type to have a built-in function to calculate the spread for that quote:

type Quote =
    {
        bid...