Giter VIP home page Giter VIP logo

financialmodels_amazonf1's Introduction

Monte Carlo financial models on Amazon F1 instances

Introduction

This repository includes F1-optimized implementations of four Monte Carlo financial models, namely:

Further details can be found in the following paper. If you find this work useful for your research, please consider citing:

  @INPROCEEDINGS{7920245, 
    author={L. Ma and F. B. Muslim and L. Lavagno}, 
    booktitle={2016 European Modelling Symposium (EMS)}, 
    title={High Performance and Low Power Monte Carlo Methods to Option Pricing Models via High Level Design and Synthesis}, 
    year={2016},
    pages={157-162}, 
    doi={10.1109/EMS.2016.036}, 
    month={Nov},
    }

Or

@ARTICLE{7859319, 
    author={F. B. Muslim and L. Ma and M. Roozmeh and L. Lavagno}, 
    journal={IEEE Access}, 
    title={Efficient FPGA Implementation of OpenCL High-Performance Computing Applications via High-Level Synthesis}, 
    year={2017}, 
    volume={5}, 
    pages={2747-2762}, 
    doi={10.1109/ACCESS.2017.2671881}, 
    }

Theory

Black-Scholes Model

The Black-Scholes model, which was first published by Fischer Black and Myron Scholes in 1973, is a well known basic mathematical model describing the behaviour of investment instruments in financial markets. This model focuses on comparing the Return On Investment for one risky asset, whose price is subject to geometric Brownian motion and one riskless asset with a fixed interest rate.

The geometric Brownian behaviour of the price of the risky asset is described by this stochastic differential equation: $$dS=rSdt+\sigma SdW_t$$ where S is the price of the risky asset (usually called stock price), r is the fixed interest rate of the riskless asset, $\sigma$ is the volatility of the stock and $W_t$ is a Wiener process.

According to Ito's Lemma, the analytical solution of this stochastic differential equation is as follows: $$ S_{t+\Delta t}=S_te^{(r-\frac{1}{2}\sigma^2)\Delta t+\sigma\epsilon\sqrt{\Delta t} } $$ where $\epsilon\sim N(0,1)$, (the standard normal distribution).

Entering more specifically into the financial sector operations, two styles of stock transaction options are considered in this implementation of the Black-Scholes model, namely the European vanilla option and Asian option (which is one of the exotic options). Call options and put options are defined reciprocally. Given the basic parameters for an option, namely expiration date and strike price, the call/put payoff price could be estimated as follows. For the European vanilla option, we have: $$P_{Call}=max{S-K,0}\P_{put}=max{K-S,0}$$ where S is the stock price at the expiration date (estimated by the model above) and K is the strike price. For the Asian option, we have: $$P_{Call}=max{\frac{1}{T}\int_0^TSdt-K,0}\P_{put}=max{K-\frac{1}{T}\int_0^TSdt,0}$$ where T is the time period (between now and the option expiration date) , S is the stock price at the expiration date, and K is the strike price.

Heston Model

The Heston model, which was first published by Steven Heston in 1993, is a more sophisticated mathematical model describing the behaviour of investment instruments in financial markets. This model focuses on comparing the Return On Investment for one risky asset, whose price and volatility are subject to geometric Brownian motion and one riskless asset with a fixed interest rate.

Two styles of stock transaction options are considered in this implementation of the Heston model, namely the European vanilla option and European barrier option (which is one of the exotic options). Call options and put options are defined reciprocally. Given the basic parameters for an option, namely expiration date and strike price, the call/put payoff price can be estimated as discussed in this article.

Usage

Build the project

In any directory such as

> cd FinancialModels_AmazonF1/blackScholes_model/europeanOption/
> make TARGETS=hw PLATFORM=$PLATFORM all 

Upload to AWS

See repo https://github.com/aws/aws-fpga/tree/master/SDAccel

Run the application

Examples of usage for the European and Asian options by BlackSchole model:

> blackeuro -b <binary_file_name> [-n number_of_repeat] [-s number_of_simulation] [-k number_of_time_partition] [-c expect_call_price] [-p expect_put_price] 
> blackasian -b <binary_file_name> [-n number_of_repeat] [-s number_of_simulation] [-k number_of_time_partition] [-c expect_call_price] [-p expect_put_price] 

The outputs of both commands are the expected call and put prices. The -b <binary_file_name> option can be used to specify a binary file name different from the default <kernel_name>.hw.xilinx_xil-accel-rd-ku115_4ddr-xpr.awsxclbin

The model parameters are specified in a file called blackEuro.parameters and blackAsian.parameters respectively. The meaning of the parameters is as follows.

Parameter Meaning
time time period
rate interest rate of riskless asset
volatility volatility of the risky asset
initprice initial price of the stock
strikeprice strike price for the option

Heston models

Parameter Meaning
time time period
rate interest rate of riskless asset
volatility volatility of the risky asset
initprice initial price of the stock
strikeprice strike price for the option
theta long run average price volatility
kappa rate at which the volatility reverts to theta
xi volatility of the volatility
rho covariance
upb upper bound on price
lowb lower bound on price

Performance on Amazon F1 FPGA

Target frequency is 250MHz. Target device is 'xcvu9p-flgb2104-2-i'

Model Option N. threads N. simulations N. simulation groups N. steps Time C5 96-core CPU [ms] Time F1 FPGA [ms] LUT LUTMem REG BRAM DSP
Black-Scholes European option 64 65536 32 1024 23.75 2.84 66% 7% 38% 23% 71%
Black-Scholes Asian option 64 65536 32 1024 25 2.81 70% 8% 42% 31% 80%
Heston European option 52 65536 64 1024 56.67 7.2 62% 8% 37% 20% 77%
Heston European barrier option 52 65536 64 1024 36.25 6.4 63% 9% 39% 20% 77%

financialmodels_amazonf1's People

Contributors

lavagno avatar max2ma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

financialmodels_amazonf1's Issues

Fixed point version

Hi,
I have a data type fix for the fixed-point version (my handle is Mahdi89).
I understand that fixed-point simulation takes longer to converge but afaik it utilises resource better and its integer/fraction ratio could be explored based on the input data.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.