Dates FxOptionDate
Compute the option expiry date and settlement date given a trade date, an fx pair and a maturity tenor. This function accepts a single dates, a collection of date separated by commas, or simply a 4digit year for all calendar dates in a year.
Parameter | Description | Default | Options |
---|---|---|---|
fx Optional |
FX | GBP/USD | AUD/BRL , AUD/CHF , AUD/CLP , AUD/COP , AUD/IDR , AUD/INR , AUD/JPY , AUD/KRW , AUD/MYR , AUD/NZD , AUD/PEN , AUD/PHP , AUD/TWD , AUD/USD , CAD/JPY , CHF/DKK , EUR/AUD , EUR/CAD , EUR/CHF , EUR/GBP , EUR/HKD , EUR/JPY , EUR/NOK , EUR/SEK , EUR/USD , GBP/AUD , GBP/JPY , GBP/USD , GBP/ZAR , HKD/CNH , HKD/CNY , HKD/INR , HKD/KRW , NZD/USD , USD/BRL , USD/CAD , USD/CHF , USD/CLP , USD/CNH , USD/CNY , USD/COP , USD/CZK , USD/DKK , USD/EGP , USD/HKD , USD/HUF , USD/IDR , USD/ILS , USD/INR , USD/JPY , USD/KRW , USD/KZT , USD/MXN , USD/MYR , USD/NOK , USD/PEN , USD/PHP , USD/PLN , USD/RUB , USD/SEK , USD/SGD , USD/THB |
tradeDate Optional |
The trade date in YYYY-MM-DD format. | For functions that can accept a set of dates, seperate the dates by a comma. Alternatively just enter the year as a 4digit number to define all non-weekend calendar dates in a year. | |
maturities Optional |
Maturities | 1D 1W 2W 3W 1M 2M 3M 6M 1Y 2Y |
import clarus response = clarus.dates.fxoptiondate(fx='GBPUSD',tradeDate='2017-08-22') print (response)
import com.clarusft.api.model.dates.FxOptionDateRequest import com.clarusft.api.model.dates.FxOptionDateResponse ApiClient clarus = ApiClient.getDefault(); FxOptionDateResponse response = clarus.request(new FxOptionDateRequest().withFx("GBPUSD").withTradeDate("2017-08-22")); System.out.println(response);
import Clarus response = Clarus.Dates.fxoptiondate(fx="GBPUSD",tradeDate="2017-08-22") print(response)
##
##Need to install packages once, if not already installed
##install.packages('httr')
##install.packages('readr')
##
library('httr')
##library('readr')
## Manually edit and set key/secret here ##
apiKey <- '...'
apiSecret <-'...'
request <- function(category, functionName, ...){
restUrl = paste0('https://apieval.clarusft.com/api/rest/v1/', category, '/',functionName, '.csv')
response <- POST(url=restUrl, body=list(...), encode='json', authenticate(apiKey, apiSecret, type='basic'))
if (response$status_code!=200){
stop(paste0('Request to ', category, '/', functionName, ' failed with status code: ', response$status_code))
}
return (response)
}
dataframe <- function(response){
return (read.csv(text=content(response, 'text'), sep=',', head=TRUE))
}
## filename <- file.path('C:', 'Temp', 'myfile.csv')
## myvalue <- <- read_file(filename)
r <- request('dates', 'FxOptionDate', fx='GBPUSD', tradeDate='2017-08-22')
df <- dataframe(r)
print (df)
import requests
import sys
import pandas
import io
#import os
# Example of REST API call to Clarus Microservices #
# Manually edit and set key/secret here #
apiKey = ''
apiSecret = ''
print (sys.version)
def request(category, functionName, **params):
restUrl = 'https://apieval.clarusft.com/api/rest/v1/' + category + '/' + functionName + '.json'
r = requests.post(restUrl, json=params, auth=(apiKey, apiSecret))
r.raise_for_status()
return r.json()
def dataframe(results):
return pandas.DataFrame(results['results'])
# filename = os.path.join('C:\\', 'Temp', 'myfile.csv')
# myvalue = open(filename).read()
r = request('dates', 'FxOptionDate', fx='GBPUSD', tradeDate='2017-08-22')
df = dataframe(r)
print(pandas.DataFrame.head(df))
use strict;
use warnings;
use MIME::Base64;
use JSON;
use REST::Client;
# Example of REST API call to Clarus Microservices #
my $client = REST::Client->new();
$client->addHeader('Content-Type', 'application/json');
# Manually edit and set key/secret here
my $apiKey = '';
my $apiSecret = '';
my $encoded_auth = encode_base64("$apiKey:$apiSecret", '');
$client->addHeader('Authorization', "Basic $encoded_auth");
my %params = ('fx' => 'GBPUSD','tradeDate' => '2017-08-22');
my $urlBase = 'https://apieval.clarusft.com/api/rest/v1/';
my $category = 'dates/';
my $name = 'FxOptionDate';
my $outputFormat = '.csv'; #can also be '.json' or '.tsv'
my $fullRESTUrl = $urlBase . $category . $name . $outputFormat;
$client->POST($fullRESTUrl,encode_json(\%params));
print 'Response: ' . $client->responseContent() . "\n";
print 'Response status: ' . $client->responseCode() . "\n";
printf('Example of REST API call to Clarus Microservices\n');
function r = request(category, functionName, params)
# Manually edit and set key/secret here #
apiKey = ''
apiSecret = ''
restUrl = ['https://' apiKey ":" apiSecret "@" 'apieval.clarusft.com/api/rest/v1/' category '/' functionName '.csv'];
[r, status, message] = urlread (restUrl, 'get', params);
if (status!=1)
error(['Failed on ' category '/' functionName ': ' message]);
endif
end
function ca = toCellArray(csvStr)
header_row = textscan (csvStr, "%s", 1, 'delimiter','\n');
headers = strsplit(char(header_row), ",");
numCols = size(headers)(2);
format = repmat('%s ', [1 numCols]);
ca = textscan (csvStr, format, 'delimiter',',', 'endofline',"\n");
end
params = {'fx', 'GBPUSD', ...
'tradeDate', '2017-08-22'}
r = request('dates', 'FxOptionDate', params)
ca = toCellArray(r);
ca
Example of REST API query URL (GET)
CSV
https://apieval.clarusft.com/api/rest/v1/dates/fxoptiondate.csv?fx=GBPUSD&tradeDate=2017-08-22
TSV
https://apieval.clarusft.com/api/rest/v1/dates/fxoptiondate.tsv?fx=GBPUSD&tradeDate=2017-08-22
JSON
https://apieval.clarusft.com/api/rest/v1/dates/fxoptiondate.json?fx=GBPUSD&tradeDate=2017-08-22
HTML
https://apieval.clarusft.com/api/rest/v1/dates/fxoptiondate.html?fx=GBPUSD&tradeDate=2017-08-22
Request Body
Submit to generate...
Response
Submit to generate...
{
"fx" : "GBPUSD",
"tradeDate" : "2017-08-22"
}