Index
A
- active patterns
- about / Active patterns
- actual volatility
- about / Actual volatility
- aggregate statistics
- about / Aggregate statistics
- sum of sequence, calculating / Calculating the sum of a sequence
- average of sequence, calculating / Calculating the average of a sequence
- minimum of sequence, calculating / Calculating the minimum of a sequence
- maximum of sequence, calculating / Calculating the maximum of a sequence
- variance of sequence, calculating / Calculating variance
- standard deviation of sequence, calculating / Calculating standard deviation
- example application / Looking at an example application
- American options
- about / American options
- anonymous function
- creating / Learning about anonymous functions
- application
- extending, Bollinger bands used / Extending the application to use Bollinger bands
- arithmetic comparisons
- arithmetic operators
- about / Arithmetic operators
- ark to market (MTM) basis / Trading the delta neutral portfolio
- array module
- functions / Interesting functions in an array module
- arrays
- asynchronous binding
- about / Asynchronous binding
- asynchronous programming
- about / Asynchronous and parallel programming, Asynchronous programming
- F# asynchronous workflows / The F# asynchronous workflows
- asynchronous binding / Asynchronous binding
- Asynchronous Programming Model (APM) / Asynchronous programming
- async workflow
- example / Examples of using an async workflow
- automated trading
- about / Explaining automated trading
- parts / Explaining automated trading
B
- background workers
- about / Background workers
- bar chart
- creating / Creating a bar chart
- bisection method
- about / The bisection method
- example / Looking at an example
- Black-Scholes
- delta hedging / Delta hedging using Black-Scholes
- Black-Scholes formula
- about / Learning the Black-Scholes formula
- assumptions / Learning the Black-Scholes formula
- implementing, in F# / Implementing Black-Scholes in F#
- using, with charts / Using Black-Scholes together with charts
- black_scholes function / Implementing Black-Scholes in F#
- Bollinger bands
- used, for extending application / Extending the application to use Bollinger bands
C
- call option
- about / Introduction to options
- CancelAsync() function / Background workers
- candlestick chart
- creating, from stock prices / Creating a candlestick chart from stock prices
- classes
- about / Classes
- code
- documenting / Documenting your code
- Comma-Separated Values (CSV) / Extending the example program
- Common Language Infrastructure (CLI) / Introduction
- conditional orders
- about / Conditional and stop-orders
- conversion functions
- about / Conversion functions
- currying
- about / Currying
D
- data structures
- record types / Looking deeper inside data structures, Record types
- discriminated unions / Looking deeper inside data structures, Discriminated unions
- enumerations / Looking deeper inside data structures, Enumerations
- arrays / Looking deeper inside data structures, Arrays
- lists / Looking deeper inside data structures, Lists
- sequences / Looking deeper inside data structures, Sequences
- sets / Looking deeper inside data structures, Sets
- maps / Looking deeper inside data structures, Maps
- options / Looking deeper inside data structures, Options
- strings / Looking deeper inside data structures, Strings
- selecting / Choosing data structures, Arrays
- data visualization
- about / Displaying data
- form, extending / Extending the form to use a table
- financial data, displaying from Yahoo finance / Displaying financial data from Yahoo! Finance
- application code / Understanding the application code
- Delta
- about / Delta
- delta-neutral portfolio
- trading / Trading the delta neutral portfolio
- delta hedging
- Black-Scholes used / Delta hedging using Black-Scholes
- directional trading
- about / Learning directional trading strategies
- strategies / Learning directional trading strategies
- options, used / Trading volatility using options
- straddle, trading / Trading the straddle
- long straddle / Long straddle
- short straddle / Short straddle
- butterfly spread, trading / Trading the butterfly spread
- long butterfly spread / The long butterfly spread
- short butterfly spread / The short butterfly spread
- VIX, trading / Trading the VIX
- delta-neutral portfolio, trading / Trading the delta neutral portfolio
- discriminated unions
E
- enumerations
- European options
- about / European options
- event handling / Learning about event handling
- events
- about / Events
- Exotic options
- about / Exotic options
F
- .fs file
- about / Structuring your F# program
- .fsx file
- about / Structuring your F# program
- F#
- about / Introduction, Object-oriented programming
- URL / Getting started with Visual Studio
- programming with / Language overview
- mutable variable / Explaining mutability and immutability
- immutable variable / Explaining mutability and immutability
- primitive types / Primitive types
- functions / Explaining functions
- currying / Currying
- lists / Investigating lists
- tuples / Tuples
- code documentation / Documenting your code
- Hello World of finance application / Your first application
- numerical types / Learning about numerical types in F#
- GUI programming / Making your first GUI in F#
- interfaces, composing / Composing interfaces
- data visualization / Displaying data
- Black-Scholes formula, implementing / Implementing Black-Scholes in F#
- greeks, implementing / Implementing the greeks in F#
- volatility, exploring / Exploring volatility in F#
- orders / Introducing orders
- F# asynchronous workflows
- about / The F# asynchronous workflows
- F# Interactive
- about / Understanding F# Interactive
- F# program
- structuring / Structuring your F# program
- F# project
- creating, in Visual Studio / Creating a new F# project, Creating a new project in Visual Studio
- program template, understanding / Understanding the program template
- F# script file, adding / Adding an F# script file
- F# script file
- adding / Adding an F# script file
- filter function / Concatenating lists
- first-order greeks
- about / First-order greeks
- FIX
- about / Introducing FIX and QuickFIX/N
- FIX 4.2
- using / Using FIX 4.2
- messages, using / Using FIX 4.2
- FIXimulator / Using FIX 4.2
- floating-point numbers
- about / Floating-point numbers
- IEEE 754 floating-point standard / The IEEE 754 floating-point standard
- FsChart
- about / Using FSharp.Charting
- candlestick chart, creating from stock prices / Creating a candlestick chart from stock prices
- FSharpCharts
- used, for plotting payoff diagrams / Plotting payoff diagrams with FSharpCharts
- FsUnit
- about / Understanding NUnit and FsUnit
- functional programming
- about / More on functional programming
- recursive functions / Recursive functions
- tail recursion / Tail recursion
- pattern matching / Pattern matching
- lazy evaluation / Lazy evaluation
- units of measure / Units of measure
- functions
- about / Explaining functions
- anonymous function / Learning about anonymous functions
- higher order function / Explaining higher-order functions
- pipe operator / The pipe operator
- using, in modules / Using functions and values in modules
- functions, array module
- Array.length a / Interesting functions in an array module
- Array.average a / Interesting functions in an array module
- Array.min a / Interesting functions in an array module
- Array.max a / Interesting functions in an array module
- Array.filter f a / Interesting functions in an array module
- Array.find f a / Interesting functions in an array module
- Array.empty / Interesting functions in an array module
- Array.isEmpty a / Interesting functions in an array module
- Array.exists f a / Interesting functions in an array module
- Array.sort a / Interesting functions in an array module
- Array.zip a b / Interesting functions in an array module
- Array.map f a / Interesting functions in an array module
- functions, list module
- List.nth a / Interesting functions in a list module
- List.average a / Interesting functions in a list module
- List.max a / Interesting functions in a list module
- List.min a / Interesting functions in a list module
- List.append a b / Interesting functions in a list module
- List.filter f a / Interesting functions in a list module
- List.empty / Interesting functions in a list module
- List.length a / Interesting functions in a list module
- List.find f a / Interesting functions in a list module
- List.sort a / Interesting functions in a list module
- List.zip a b / Interesting functions in a list module
- List.exists f a / Interesting functions in a list module
- List.fold f s a / Interesting functions in a list module
- List.head a / Interesting functions in a list module
- List.tail a / Interesting functions in a list module
- List.map f a / Interesting functions in a list module
- functions, map module
- Map.add(k,v) / Interesting functions in the map module
- Map.empty / Interesting functions in the map module
- Map.filter f a / Interesting functions in the map module
- Map.exists f a / Interesting functions in the map module
- Map.partition f a / Interesting functions in the map module
- Map.containsKey k a / Interesting functions in the map module
- Map.fold f s a / Interesting functions in the map module
- Map.find f a / Interesting functions in the map module
- functions, sequence module
- Seq.nth a / Interesting functions in the sequence module
- Seq.average a / Interesting functions in the sequence module
- Seq.min a / Interesting functions in the sequence module
- Seq.max a / Interesting functions in the sequence module
- Seq.append a b / Interesting functions in the sequence module
- Seq.filter f a / Interesting functions in the sequence module
- Seq.empty / Interesting functions in the sequence module
- Seq.find f a / Interesting functions in the sequence module
- Seq.sort a / Interesting functions in the sequence module
- Seq.zip a b / Interesting functions in the sequence module
- Seq.length a / Interesting functions in the sequence module
- Seq.exists f a / Interesting functions in the sequence module
- Seq.fold f s a / Interesting functions in the sequence module
- Seq.head / Interesting functions in the sequence module
- Seq.map f a / Interesting functions in the sequence module
- functions, Set module
- functions, String module
- String.length s / Interesting functions in the string module
- String.Empty / Interesting functions in the string module
- String.map f s / Interesting functions in the string module
- String.IsNullOrEmpty / Interesting functions in the string module
- String.IsNullOrWhiteSpace / Interesting functions in the string module
- String.Copy s / Interesting functions in the string module
- String.Concat s1 s2 / Interesting functions in the string module
- String.exists f s / Interesting functions in the string module
- String.Compare s1 s1 / Interesting functions in the string module
- fun keyword / Learning about anonymous functions
G
- Gamma
- about / Gamma
- generics
- about / Introducing generics
- greeks
- about / Introducing the greeks
- first-order greeks / First-order greeks
- second-order greeks / Second-order greeks
- implementing, in F# / Implementing the greeks in F#
- Delta / Delta
- Gamma / Gamma
- Vega / Vega
- Theta / Theta
- Rho / Rho
- sensitivity, investigating / Investigating the sensitivity of the greeks
- code listing, for visualizing / Code listing for visualizing the four greeks
- guards
- using / Using guards
- GUI, trading system
- building / Building the GUI
- GUI programming
- in F# / Making your first GUI in F#
H
- Head function / Concatenating lists
- Hello World of finance application
- about / Your first application
- code listing / The whole program
- understanding / Understanding the program
- extending / Extending the example program
- coding / The entire program
- imperative code / Understanding the imperative code and interoperability
- interoperability / Understanding the imperative code and interoperability
- higher order function
I
- IEEE 754 floating-point standard
- immutable variable
- imperative code / Understanding the imperative code and interoperability
- imperative programming
- implied volatility
- about / Implied volatility, Learning about implied volatility
- solving method / Solving for implied volatility
- extracting / Solving for implied volatility
- incomplete pattern matching
- about / Incomplete pattern matching
- integers
- two's complement / Two's complement
- interfaces
- composing / Composing interfaces
- agents / More about agents
- user interface / The user interface
- main application / The main application
- event handling / Learning about event handling
L
- lazy evaluation / Lazy evaluation
- least squares method
- about / Using the least squares method
- Length function / Concatenating lists
- let keyword / Language overview
- let statement / Namespaces
- limit orders
- about / Limit orders
- linear regression, Math.NET library
- about / Linear regression
- least squares method, using / Using the least squares method
- polynomial regression, using / Using polynomial regression
- list module
- functions / Interesting functions in a list module
- lists
- about / Investigating lists, Looking deeper inside data structures, Lists, Lists
- concatenating / Concatenating lists
- pattern matching / Pattern matching and lists
M
- MailboxProcessor
- about / MailboxProcessor
- map function / Concatenating lists
- map module
- functions / Interesting functions in the map module
- maps
- about / Looking deeper inside data structures, Maps, Maps
- market data
- about / Introducing market data
- market orders
- about / Market orders
- Math.NET library
- about / Using the Math.NET library
- implementing / Using the Math.NET library
- installing / Installing the Math.NET library
- random number generation / Introduction to random number generation
- probability distributions / Probability distributions
- statistics / Statistics
- linear regression / Linear regression
- Math.NET linq algebra
- about / Using the Math.NET library
- Math.NET neodym
- about / Using the Math.NET library
- Math.NET numerics
- about / Using the Math.NET library
- Math.NET yttrium
- about / Using the Math.NET library
- mathematics
- deriving / Deriving the mathematics
- implied volatility, hedging / Hedging with implied volatility
- implementing / Implementing the mathematics
- math operators
- about / Math operators
- Microsoft SQL Server
- connecting to / Connecting to Microsoft SQL Server
- midpoint() function
- about / Record types
- modules
- about / Looking into modules
- functions, using in / Using functions and values in modules
- Monte Carlo method
- about / The Monte Carlo method
- MouseDown event / Events
- mutable variable
- MVC pattern, trading system
- model / The model
- view / The view
- controller / The controller
N
- namespace
- about / Namespaces
- Newton-Raphson method
- about / Finding roots using the Newton–Raphson method
- used, for finding roots / Finding roots using the Newton–Raphson method
- example / Looking at an example
- normal distribution
- about / Normal distribution
- number representation
- about / Understanding the number representation
- integers / Integers
- floating-point numbers / Floating-point numbers
- numerical types, F#
- NUnit
- about / Understanding NUnit and FsUnit
O
- @ operator / Concatenating lists
- object-oriented programming
- about / Object-oriented programming
- classes / Classes
- objects / Objects and members
- members / Objects and members
- method / Methods and properties
- properties / Methods and properties
- overloaded operators / Overloaded operators
- open-high-low-close (OHLC) / Record types
- openFile function / Extending the example program
- open keyword / Namespaces
- operator (
- options
- about / Looking deeper inside data structures, Options, Introduction to options
- call option / Introduction to options
- put option / Introduction to options
- contract specifications / Looking into contract specifications
- European options / European options
- American options / American options
- Exotic options / Exotic options
- order execution
- about / Understanding order execution
- order properties
- about / Order properties
- examples / Order properties
- orders
- about / Introducing orders
- properties / Order properties
- order execution process / Understanding order execution
- order types
- about / Order types
- market orders / Market orders
- limit orders / Limit orders
- conditional orders / Conditional and stop-orders
- stop-orders / Conditional and stop-orders
- overloaded operators
- about / Overloaded operators
P
- parallel programming
- about / Asynchronous and parallel programming
- events / Events
- background workers / Background workers
- threads / Threads
- thread pools / Thread pools
- with TPL / Parallel programming using TPL
- pattern matching
- about / Pattern matching and lists, Pattern matching
- incomplete pattern matching / Incomplete pattern matching
- guards, using / Using guards
- in assignments / Pattern matching in assignment and input parameters
- in input parameters / Pattern matching in assignment and input parameters
- active patterns / Active patterns
- payoff diagrams
- plotting, FSharpCharts used / Plotting payoff diagrams with FSharpCharts
- pipe-forward operator (|>) / The pipe operator
- pipe operator
- about / The pipe operator
- polynomial regression
- using / Using polynomial regression
- possible additions, trading system
- data feed, improving / Improving the data feed
- backtesting / Support for backtesting
- GUI, extending / Extending the GUI
- client-server architecture, converting to / Converting to the client-server architecture
- pretrade risk analysis
- implementing / Implementing simple pretrade risk analysis
- rules / Implementing simple pretrade risk analysis
- orders, validating / Validating orders
- primitive types
- about / Primitive types
- probability distributions, Math.NET library
- about / Probability distributions
- program template
- understanding / Understanding the program template
- prototyping
- about / The power of prototyping
- put option
- about / Introduction to options
Q
- QuickFIX
- configuring / Configuring QuickFIX to use the simulator
- QuickFix/n
- about / Introducing FIX and QuickFIX/N
R
- random number generation, Math.NET library
- about / Introduction to random number generation
- pseudo-random numbers / Pseudo-random numbers
- Mersenne twister / Mersenne Twister
- rec keyword
- about / Recursive functions
- record types
- recursive functions
- about / Recursive functions
- relative value volatility trading
- about / Learning relative value trading strategies
- strategies / Learning relative value trading strategies
- slope of smile, trading / Trading the slope of the smile
- requisites, trading system
- listing / Requirements for the system
- libraries / Requirements for the system
- tools / Requirements for the system
- Rho
- about / Rho
- root-finding algorithms
- about / Learning about root-finding algorithms
- bisection method / The bisection method
- roots, finding Newton-Raphson method used / Finding roots using the Newton–Raphson method
- roots, finding secant method used / Finding roots using the secant method
S
- * symbol / Tuples
- sample application
- type providers, using with LINQ / Explaining sample code using type providers and LINQ
- secant method
- used, for finding roots / Finding roots using the secant method
- example / Looking at an example
- second-order greeks
- about / Second-order greeks
- sequence module
- functions / Interesting functions in the sequence module
- sequences
- series.Points.Add method / Understanding the application code
- Set module
- functions / Sets
- sets
- about / Looking deeper inside data structures, Sets, Sets
- software testing, trading system
- statistics
- about / Introducing statistics
- aggregate statistics / Aggregate statistics
- stop-orders
- about / Conditional and stop-orders
- String module
- functions / Interesting functions in the string module
- strings
- sum function / Explaining functions
T
- Tail function / Concatenating lists
- tail recursion
- about / Tail recursion
- test-driven development, trading system
- test cases, trading system
- writing / Writing test cases
- testParse function / Active patterns
- Theta
- about / Theta
- thread pools
- about / Thread pools
- threads
- about / Threads
- TPL
- parallel programming / Parallel programming using TPL
- about / Parallel programming using TPL
- trading strategy
- defining / Defining the trading strategy
- slope, increasing / Case 1 – increasing the slope
- slope, decreasing / Case 2 – decreasing the slope
- entry rules, defining / Defining the entry rules
- exit rules, defining / Defining the exit rules
- trading system
- automated trading / Explaining automated trading
- software testing / Understanding software testing and test-driven development
- test-driven development / Understanding software testing and test-driven development
- requisites / Requirements for the system, Understanding the requirements
- setting up / Setting up the project
- NUnit, installing / Installing the NUnit and FsUnit frameworks
- FsUnit, installing / Installing the NUnit and FsUnit frameworks
- Microsoft SQL Server, connecting to / Connecting to Microsoft SQL Server
- type providers / Introducing type providers
- history, saving / Creating the remaining table for our project
- state, saving / Creating the remaining table for our project
- test cases / Writing test cases
- setup details / Details about the setup
- functionalities / Understanding the requirements
- project structure / Revisiting the structure of the system
- TradingSystem / Revisiting the structure of the system
- TradingSystem.Tests / Revisiting the structure of the system
- MVC pattern / Understanding the Model-View-Controller pattern
- trading strategy, executing / Executing the trading strategy using a framework
- GUI, building / Building the GUI
- information, presenting in GUI / Presenting information in the GUI
- support, adding for downloading data / Adding support for downloading the data
- possible additions / Looking at possible additions to the system
- tuples
- about / Tuples
- type inference
- about / Primitive types, Explaining type inference
- type providers
- about / Introducing type providers
- LINQ, using / Using LINQ and F#
- F#, using / Using LINQ and F#
U
- units of measure / Units of measure
V
- values
- using, in modules / Using functions and values in modules
- functions, using in / Using functions and values in modules
- Vega
- about / Vega, Learning about implied volatility
- Visual Studio
- getting started / Getting started with Visual Studio
- F# project, creating in / Creating a new F# project, Creating a new project in Visual Studio
- VIX
- trading / Trading the VIX
- volatility
- about / Introduction to volatility
- actual volatility / Actual volatility
- implied volatility / Implied volatility
- exploring, in F# / Exploring volatility in F#
- trading / Trading the volatility
- volatility smile
- about / Exploring the volatility smile
- exploring / Exploring the volatility smile
W
- when keyword / Using guards
- Wiener processes
- about / Learning about Wiener processes
X
- XML documentation
- XML tags
- about / Useful XML tags
- summary / Useful XML tags
- returns / Useful XML tags
- remark / Useful XML tags
- exception / Useful XML tags
- see also / Useful XML tags