Util ShiftSetGenerator

Shift set generator

Parameter Description Default Options
valueDate
Optional
The value date in YYYY-MM-DD format.
trades
Optional
Input trades. Can be QuickTrade, Clarus, FPML5, LCH, CME or SDR format. If not specified then must specify either portfolios or whatifTrades parameters
crif
Optional
CRIF
observationPeriod
Optional
Observation Period 1M 1W , 1M , 3M , 6M , 12M , 15M , 18M , 21M , 2Y , 30M , 3Y , 4Y , 5Y , 6Y , 7Y , 8Y , 9Y , 10Y
obsPeriodStartDate
Optional
Observation Period StartDate
obsPeriodEndDate
Optional
Observation Period EndDate
returnPeriod
Optional
Return Period 1D 1D , 2D , 3D , 4D , 5D , 6D , 7D , 8D , 9D , 10D
returnPeriodCalendars
Optional
Return Period Calendars EUTA CHZU GBLO JPTO USNY ATVI , AUME , AUSY , BEBR , CAMO , CATO , CHGE , CHZU , COBO , DEFR , DKCO , ESMA , EUTA , FIHE , FRPA , GBLO , GRAT , HKHK , HUBU , IDJA , IEDU , ISRE , ITMI , ITRO , JPTO , LULU , MXMC , MYKL , NLAM , NOOS , NZAU , NZWE , PELI , PTLI , RUMO , SEST , SGSI , SWAP , TWTA , USCH , USLA , USNY , ZAJO
baseCurrency
Optional
Base Currency AED , ARS , AUD , BRL , CAD , CHF , CLP , CNH , CNY , COP , CZK , DKK , EGP , EUR , GBP , GHS , HKD , HUF , IDR , ILS , INR , JPY , KRW , KZT , LBP , LKR , MXN , MYR , NGN , NOK , NZD , PEN , PHP , PKR , PLN , RUB , SAR , SEK , SGD , THB , TWD , USD , VEB , VNG , ZAR
marketDataType
Optional
Market Data Type [FX] Any , FullRevalAll , EquityIndex , FX , RateCurves , FxOptionVol , Equity , SwaptionVol , InflationCurves , ZeroCurve , DSwaptionVol , DFxOptionVol , DInflationCurve
quoteCodeFilter
Optional
Quote Code Filter
target
Optional
Target Summary Summary , Prices , QuoteMapping , Outliers , Missing , Returns , ReturnsOutlierSummary , ReturnsOutlierSummaryByPeriod
outlierAlgorithm
Optional
Outlier Algorithm DMAD100 DMAD3 , DMAD10 , DMAD100 , TUKEY , IQR3
view
Optional
View Wide Long , Wide
includeFxInverses
Optional
Include Fx Inverses true
useSecondaryQuoteMapping
Optional
Use Secondary Quote Mapping true
applyStockSplits
Optional
Apply Stock Splits false
tradesOnly
Optional
Trades Only false
removeOutlierReturns
Optional
Remove Outlier Returns false
onlyCrifXQuotes
Optional
Only Crif X Quotes false
zeroPillars
Optional
Zero Pillars 1W,1M,3M,6M,1Y,2Y,5Y,10Y,12Y,15Y,20Y,25Y,30Y 1W , 1M , 3M , 6M , 1Y , 2Y , 5Y , 10Y , 12Y , 15Y , 20Y , 25Y , 30Y
fxOptionMaturities
Optional
Fx Option Maturities
swaptionPillars
Optional
Swaption Pillars
inflationPillars
Optional
Inflation Pillars 1Y,2Y,3Y,4Y,5Y,7Y,10Y,12Y,15Y,20Y,25Y,30Y 1Y , 2Y , 3Y , 4Y , 5Y , 7Y , 10Y , 12Y , 15Y , 20Y , 25Y , 30Y
syntheticFXQuoteBase
Optional
Synthetic FX Quote Base AED , ARS , AUD , BRL , CAD , CHF , CLP , CNH , CNY , COP , CZK , DKK , EGP , EUR , GBP , GHS , HKD , HUF , IDR , ILS , INR , JPY , KRW , KZT , LBP , LKR , MXN , MYR , NGN , NOK , NZD , PEN , PHP , PKR , PLN , RUB , SAR , SEK , SGD , THB , TWD , USD , VEB , VNG , ZAR
import clarus

response = clarus.util.shiftsetgenerator(trades='USD 10Y 100m pay 1.1%')
print (response)
import com.clarusft.api.model.util.ShiftSetGeneratorRequest
import com.clarusft.api.model.util.ShiftSetGeneratorResponse

ApiClient clarus = ApiClient.getDefault();
ShiftSetGeneratorResponse response = clarus.request(new ShiftSetGeneratorRequest().withTrades("USD 10Y 100m pay 1.1%"));
System.out.println(response);
import Clarus

response = Clarus.Util.shiftsetgenerator(trades="USD 10Y 100m pay 1.1%")
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('util', 'ShiftSetGenerator', trades='USD 10Y 100m pay 1.1%')
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('util', 'ShiftSetGenerator', trades='USD 10Y 100m pay 1.1%')
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 = ('trades' => 'USD 10Y 100m pay 1.1%');

my $urlBase = 'https://apieval.clarusft.com/api/rest/v1/';
my $category = 'util/';
my $name = 'ShiftSetGenerator';
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 = {'trades', 'USD 10Y 100m pay 1.1%'}

r = request('util', 'ShiftSetGenerator', params)
ca = toCellArray(r);

ca

Request Body

Submit to generate...
Response

Submit to generate...

{
  "trades" : "USD 10Y 100m pay 1.1%"
}