SIMM History
Calculate SIMM Margin using 1 Day RiskWeights over a range of dates
Parameter | Description | Default | Options |
---|---|---|---|
portfolios Required |
Input portfolios. Can be trades in QuickTrade, FPML5, LCH, CME or SDR format. Or risk sensitivities in CRIF, LCH or CME format. Or portfolioIds of previously loaded portfolios Or any combination of these | ||
valueDate Optional |
The value date in YYYY-MM-DD format. | 2024-11-21 | |
whatif Optional |
Whatif portfolios. Can be trades in QuickTrade, FPML5, LCH, CME or SDR format. Or risk sensitivities in CRIF, LCH or CME format. Or portfolioIds of previously loaded portfolios Or any combination of these | ||
whatifTrades Optional |
Input trades. Can be QuickTrade, FPML5, LCH, CME or SDR format. | ||
postCollect Optional |
PostCollect | Collect | Collect , Post |
numDates Optional |
Number of dates to run analysis for | ||
startDate Optional |
The start date in YYYY-MM-DD format | ||
endDate Optional |
The end date in YYYY-MM-DD format |
import clarus response = clarus.simm.history(portfolios='USD 10Y 100m pay 1.1%',numDates='10') print (response)
import com.clarusft.api.model.simm.HistoryRequest import com.clarusft.api.model.simm.HistoryResponse ApiClient clarus = ApiClient.getDefault(); HistoryResponse response = clarus.request(new HistoryRequest().withPortfolios("USD 10Y 100m pay 1.1%").withNumDates("10")); System.out.println(response);
import Clarus response = Clarus.Simm.history(portfolios="USD 10Y 100m pay 1.1%",numDates="10") 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('simm', 'History', portfolios='USD 10Y 100m pay 1.1%', numDates='10')
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('simm', 'History', portfolios='USD 10Y 100m pay 1.1%', numDates='10')
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 = ('portfolios' => 'USD 10Y 100m pay 1.1%','numDates' => '10');
my $urlBase = 'https://apieval.clarusft.com/api/rest/v1/';
my $category = 'simm/';
my $name = 'History';
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 = {'portfolios', 'USD 10Y 100m pay 1.1%', ...
'numDates', '10'}
r = request('simm', 'History', params)
ca = toCellArray(r);
ca
Example of REST API query URL (GET)
CSV
https://apieval.clarusft.com/api/rest/v1/simm/history.csv?numDates=10&portfolios=USD 10Y 100m pay 1.1%&
TSV
https://apieval.clarusft.com/api/rest/v1/simm/history.tsv?numDates=10&portfolios=USD 10Y 100m pay 1.1%&
JSON
https://apieval.clarusft.com/api/rest/v1/simm/history.json?numDates=10&portfolios=USD 10Y 100m pay 1.1%&
HTML
https://apieval.clarusft.com/api/rest/v1/simm/history.html?numDates=10&portfolios=USD 10Y 100m pay 1.1%&
Request Body
Submit to generate...
Response
Submit to generate...
{
"portfolios" : "USD 10Y 100m pay 1.1%",
"numDates" : "10"
}