From 42c9b17ca80aac1cbe4e614e30e0217102234359 Mon Sep 17 00:00:00 2001 From: joeuhren <46763106+joeuhren@users.noreply.github.com> Date: Mon, 23 Nov 2020 19:43:27 -0700 Subject: [PATCH] Markets API: Add Altmarkets chart data --- lib/markets/altmarkets.js | 39 ++++++++++++++++++++---- views/markets/altmarkets.pug | 58 ++++++++++++++++++++++++++++++++---- 2 files changed, 86 insertions(+), 11 deletions(-) diff --git a/lib/markets/altmarkets.js b/lib/markets/altmarkets.js index 2ec0a74..73b3cff 100644 --- a/lib/markets/altmarkets.js +++ b/lib/markets/altmarkets.js @@ -15,7 +15,7 @@ function get_summary(coin, exchange, cb) { summary['bid'] = parseFloat(body['ticker']['buy']).toFixed(8); summary['ask'] = parseFloat(body['ticker']['sell']).toFixed(8); summary['volume'] = parseFloat(body['ticker']['vol']).toFixed(8); - summary['volume_btc'] = parseFloat(body['ticker']['quotevol']).toFixed(8); + summary['volume_btc'] = parseFloat(body['ticker']['quote_volume']).toFixed(8); summary['high'] = parseFloat(body['ticker']['high']).toFixed(8); summary['low'] = parseFloat(body['ticker']['low']).toFixed(8); summary['last'] = parseFloat(body['ticker']['last']).toFixed(8); @@ -93,16 +93,43 @@ function get_orders(coin, exchange, cb) { }); } +function get_chartdata(coin, exchange, cb) { + var end = Date.now(); + end = end / 1000; + start = end - 86400; + var req_url = base_url + 'k/?market=' + coin.toLowerCase() + "" + exchange.toLowerCase() + '&time_from=' + start + '&time_to=' + end + '&period=1'; + request({uri: req_url, json: true}, function (error, response, chartdata) { + if (error) { + return cb(error, []); + } else { + if (chartdata.error == null) { + var processed = []; + for (var i = 0; i < chartdata.length; i++) { + processed.push([chartdata[i][0] * 1000, parseFloat(chartdata[i][1]), parseFloat(chartdata[i][2]), parseFloat(chartdata[i][3]), parseFloat(chartdata[i][4])]); + if (i == chartdata.length - 1) { + return cb(null, processed); + } + } + } else { + return cb(chartdata.error, []); + } + } + }); +} + module.exports = { get_data: function(coin, exchange, cb) { var error = null; - get_orders(coin, exchange, function(err, buys, sells) { - if (err) { error = err; } - get_trades(coin, exchange, function(err, trades) { + get_chartdata(coin, exchange, function (err, chartdata){ + if (err) { chartdata = []; error = err; } + get_orders(coin, exchange, function(err, buys, sells) { if (err) { error = err; } - get_summary(coin, exchange, function(err, stats) { + get_trades(coin, exchange, function(err, trades) { if (err) { error = err; } - return cb(error, {buys: buys, sells: sells, chartdata: [], trades: trades, stats: stats}); + get_summary(coin, exchange, function(err, stats) { + if (err) { error = err; } + return cb(error, {buys: buys, sells: sells, chartdata: chartdata, trades: trades, stats: stats}); + }); }); }); }); diff --git a/views/markets/altmarkets.pug b/views/markets/altmarkets.pug index d3b5a0c..12afe0b 100644 --- a/views/markets/altmarkets.pug +++ b/views/markets/altmarkets.pug @@ -1,13 +1,61 @@ extends menu - + block market_view + script. + $(document).ready(function(){ + $('#summary-panel').hide(); + var ohlc = #{marketdata.data.chartdata}; + var plot2 = $.jqplot('chart',[ohlc],{ + seriesDefaults:{yaxis:'y2axis'}, + axes: { + xaxis: { + renderer:$.jqplot.DateAxisRenderer, + tickOptions:{formatString:'%R'}, + tickInterval: "2 hours", + + }, + y2axis: { + tickOptions:{formatString:'%.8f'}, + } + }, + // To make a candle stick chart, set the "candleStick" option to true. + series: [ + { + renderer:$.jqplot.OHLCRenderer, + rendererOptions:{ candleStick:true } + } + ], + highlighter: { + show: true, + showMarker:false, + tooltipAxes: 'xy', + yvalues: 4, + formatString:'
| time: | %s |
| open: | %s |
| hi: | %s |
| low: | %s |
| close: | %s |