Sortino Ratio

sortino_ratio


Results
Calculate sortino ratio for symbols. The Sortino is one of the most used metrics in traditional finance to assess the risk-return performance of an asset. The API provides the ability to calculated the sortino ratio based on your own selected date range too. The sortino ratio displays the performance of an asset relative to its downside risk. This is useful for investors looking to go long but worried about potential crashes.

Specification
Endpoint
sortino_ratio?symbols={symbols}&start_date={start_date}&end_date={end_date}

Support
Current and Historical values

API Call Counts
10 per API call.

API Plan
bronze



Input Parameters
symbols

input the symbols, seperated by commas (max 20)

Example : BTCUSD,ETHUSD


start_date

Start Date

Example : 2019-01-01


end_date

End Date

Example : 2019-01-01



Output Descriptions
symbol

The common/local symbol/ticker of the symbol

Type: string


symbol_name

The name of the symbol

Type: string


exchange

the exchange code e.g. gemini

Type: string


symbol_pair

the exchange symbol pairs

Type: string


sortino_ratio

sortino ratio of the symbol

Type: number



Sample Output
{
  "status": "ok",
  "total_records": 4,
  "page_size": 1,
  "current_page": 1,
  "total_pages": 1,
  "results": [
    {
      "symbol": "BTCUSD",
      "symbol_name": "Bitcoin/US Dollar",
      "exchange": "gemini",
      "symbol_pair": "BTC/USD",
      "sortino_ratio": 0.01
    },
    {
      "symbol": "ETHUSD",
      "symbol_name": "Ethereum/US Dollar",
      "exchange": "bitstamp",
      "symbol_pair": "ETH/USD",
      "sortino_ratio": -0.05
    },
    {
      "symbol": "BNBUSDT",
      "symbol_name": "Binance Coin/Tether",
      "exchange": "poloniex",
      "symbol_pair": "BNB/USDT",
      "sortino_ratio": -0.1
    },
    {
      "symbol": "BNBBTC",
      "symbol_name": "Binance Coin/Bitcoin",
      "exchange": "kucoin",
      "symbol_pair": "BNB/BTC",
      "sortino_ratio": -0.16
    }
  ]
}

REST
GET https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key
Python
import requests 
r = requests.get("https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key")
data = r.json()
print(data)
Node.js
var http = require('http');
var buffer = '';
var options = {
	host: 'https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key',
	port: 80,
	path: 'https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key',
	headers: headers
};
callback = function(response) {
	response.on('data', function (chunk) {
	buffer += chunk;
});
response.on('end', function () {
	// your code here if you want to use the results !
});
}

var req = http.get(options, callback).end();
C#
using (var client = new HttpClient())
{
	client.BaseAddress = new Uri("{$api_host}");
	client.DefaultRequestHeaders.Clear();
	//ADD Acept Header to tell the server what data type you want
	client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
	//SET Parameters
	HttpResponseMessage response = await client.GetAsync("https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key");
	if (response.IsSuccessStatusCode)
	{
		//Your custom response parser code
	}
}
Java
String uri = "https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key";
URL url = new URL(uri);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
	connection.setRequestMethod("GET");
	connection.setRequestProperty("Accept", "application/json");
InputStream xml = connection.getInputStream();
R
1 - Install package
install.packages("RCurl")
install.packages("jsonlite")
2 - Request the data:
library('RCurl')
require('jsonlite')
json <- getURL(URLencode('https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key'))
obj <- fromJSON(json)
PHP
$url = 'https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key';
$handle = curl_init(); 
	curl_setopt($handle, CURLOPT_URL, $url);
	curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);

	$data = curl_exec($handle);
curl_close($handle);
//parse your data as per your needs....
Javascript
var url = 'https://www.cryptoquote.io/analytics/v1/?api=sortino_ratio&symbols=BTCUSD.gdax,ETHUSD.kraken,BNBUSDT.poloniex,BNBBTC.kucoin&start_date=2021-01-01&end_date=2022-03-01&key=your_api_key';
$.ajax({
		url: url,
		type: "GET",
		dataType: 'json'
}).done(function (data) {
	console.log(data);
});