Merton Model FFT Pricing
curl --request POST \
--url https://api.fincept.in/quantlib/models/merton/fft \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"S": 100,
"K": 100,
"T": 0.5,
"r": 0.05,
"sigma": 0.25,
"lambda_jump": 2,
"mu_jump": -0.08,
"sigma_jump": 0.12,
"q": 0
}
'import requests
url = "https://api.fincept.in/quantlib/models/merton/fft"
payload = {
"S": 100,
"K": 100,
"T": 0.5,
"r": 0.05,
"sigma": 0.25,
"lambda_jump": 2,
"mu_jump": -0.08,
"sigma_jump": 0.12,
"q": 0
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
S: 100,
K: 100,
T: 0.5,
r: 0.05,
sigma: 0.25,
lambda_jump: 2,
mu_jump: -0.08,
sigma_jump: 0.12,
q: 0
})
};
fetch('https://api.fincept.in/quantlib/models/merton/fft', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/models/merton/fft",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'S' => 100,
'K' => 100,
'T' => 0.5,
'r' => 0.05,
'sigma' => 0.25,
'lambda_jump' => 2,
'mu_jump' => -0.08,
'sigma_jump' => 0.12,
'q' => 0
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/models/merton/fft"
payload := strings.NewReader("{\n \"S\": 100,\n \"K\": 100,\n \"T\": 0.5,\n \"r\": 0.05,\n \"sigma\": 0.25,\n \"lambda_jump\": 2,\n \"mu_jump\": -0.08,\n \"sigma_jump\": 0.12,\n \"q\": 0\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/models/merton/fft")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"S\": 100,\n \"K\": 100,\n \"T\": 0.5,\n \"r\": 0.05,\n \"sigma\": 0.25,\n \"lambda_jump\": 2,\n \"mu_jump\": -0.08,\n \"sigma_jump\": 0.12,\n \"q\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/models/merton/fft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"S\": 100,\n \"K\": 100,\n \"T\": 0.5,\n \"r\": 0.05,\n \"sigma\": 0.25,\n \"lambda_jump\": 2,\n \"mu_jump\": -0.08,\n \"sigma_jump\": 0.12,\n \"q\": 0\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"strikes": [
85,
90,
95,
100,
105,
110,
115
],
"call_prices": [
16.23,
12.45,
9.12,
6.42,
4.35,
2.87,
1.84
],
"put_prices": [
0.87,
1.98,
3.64,
5.87,
8.72,
12.15,
16.08
]
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits. Current balance: 2 credits."
}{
"detail": [
{
"loc": [
"body",
"kappa"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}quantlib-models
Merton Model FFT Pricing
Price options using Fast Fourier Transform (FFT) methods for the Merton jump-diffusion model. FFT pricing is highly efficient for computing option prices across multiple strikes simultaneously, making it ideal for constructing option chains, implied volatility surfaces, and risk analysis. Returns prices for a range of strikes in a single computation. [Tier: ENTERPRISE, Credits: 10]
POST
/
quantlib
/
models
/
merton
/
fft
Merton Model FFT Pricing
curl --request POST \
--url https://api.fincept.in/quantlib/models/merton/fft \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"S": 100,
"K": 100,
"T": 0.5,
"r": 0.05,
"sigma": 0.25,
"lambda_jump": 2,
"mu_jump": -0.08,
"sigma_jump": 0.12,
"q": 0
}
'import requests
url = "https://api.fincept.in/quantlib/models/merton/fft"
payload = {
"S": 100,
"K": 100,
"T": 0.5,
"r": 0.05,
"sigma": 0.25,
"lambda_jump": 2,
"mu_jump": -0.08,
"sigma_jump": 0.12,
"q": 0
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
S: 100,
K: 100,
T: 0.5,
r: 0.05,
sigma: 0.25,
lambda_jump: 2,
mu_jump: -0.08,
sigma_jump: 0.12,
q: 0
})
};
fetch('https://api.fincept.in/quantlib/models/merton/fft', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/models/merton/fft",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'S' => 100,
'K' => 100,
'T' => 0.5,
'r' => 0.05,
'sigma' => 0.25,
'lambda_jump' => 2,
'mu_jump' => -0.08,
'sigma_jump' => 0.12,
'q' => 0
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/models/merton/fft"
payload := strings.NewReader("{\n \"S\": 100,\n \"K\": 100,\n \"T\": 0.5,\n \"r\": 0.05,\n \"sigma\": 0.25,\n \"lambda_jump\": 2,\n \"mu_jump\": -0.08,\n \"sigma_jump\": 0.12,\n \"q\": 0\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/models/merton/fft")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"S\": 100,\n \"K\": 100,\n \"T\": 0.5,\n \"r\": 0.05,\n \"sigma\": 0.25,\n \"lambda_jump\": 2,\n \"mu_jump\": -0.08,\n \"sigma_jump\": 0.12,\n \"q\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/models/merton/fft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"S\": 100,\n \"K\": 100,\n \"T\": 0.5,\n \"r\": 0.05,\n \"sigma\": 0.25,\n \"lambda_jump\": 2,\n \"mu_jump\": -0.08,\n \"sigma_jump\": 0.12,\n \"q\": 0\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"strikes": [
85,
90,
95,
100,
105,
110,
115
],
"call_prices": [
16.23,
12.45,
9.12,
6.42,
4.35,
2.87,
1.84
],
"put_prices": [
0.87,
1.98,
3.64,
5.87,
8.72,
12.15,
16.08
]
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits. Current balance: 2 credits."
}{
"detail": [
{
"loc": [
"body",
"kappa"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
Current stock price
Reference strike price (FFT computes prices for a range around this)
Time to maturity in years
Risk-free rate
Diffusion volatility
Jump intensity
Mean log-jump size
Jump size volatility
Dividend yield
⌘I
