Trade Convert

Converts a trade between different representations. For example, given a natural language description (ClarusDescription) return a fully formed and valid FpML v5 message. Alternatively given an FpML v5 format, return a user readable short description. Certain formats are specific to products, for example ClarusFx is pecular to FX products whilst CME and LCH are interest rate swap formats.

Parameter Description Default Options
trades
Optional
Input trades. Can be QuickTrade, FPML5, LCH, CME or SDR format. If not specified then must specify either portfolios or whatifTrades parameters
format
Optional
Output format. ClarusDescription ClarusDescription , LCH , CME , ClarusFx , ASX , FPML , SWDML , Clarus
valueDate
Optional
The value date in YYYY-MM-DD format.
dayFirst
Optional
Day First
allowEmptyColumns
Optional
Allow Empty Columns
import clarus

response = clarus.trade.convert(format='FPML',trades='USD 10Y 100m pay 1.1%')
print (response)
import com.clarusft.api.model.trade.ConvertRequest
import com.clarusft.api.model.trade.ConvertResponse

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

response = Clarus.Trade.convert(format="FPML",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('trade', 'Convert', format='FPML', 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('trade', 'Convert', format='FPML', 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 = ('format' => 'FPML','trades' => 'USD 10Y 100m pay 1.1%');

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

r = request('trade', 'Convert', params)
ca = toCellArray(r);

ca

Request Body

Submit to generate...
Response

Submit to generate...

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