Markets API: Add Altmarkets chart data

This commit is contained in:
joeuhren
2020-11-23 19:43:27 -07:00
parent 70c8154cba
commit 42c9b17ca8
2 changed files with 86 additions and 11 deletions
+33 -6
View File
@@ -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});
});
});
});
});
+53 -5
View File
@@ -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:'<table class="jqplot-highlighter"> \
<tr><td>time:</td><td>%s</td></tr> \
<tr><td>open:</td><td>%s</td></tr> \
<tr><td>hi:</td><td>%s</td></tr> \
<tr><td>low:</td><td>%s</td></tr> \
<tr><td>close:</td><td>%s</td></tr></table>'
}
});
$(window).resize(function () {
plot2.replot( { resetAxes: false } );
});
});
.row
.col-md-12
.panel.panel-default
.col-md-12
#chart-panel.panel.panel-default
.panel-heading
strong #{settings.locale.altmarkets} - #{marketdata.coin}/#{marketdata.exchange} - #{settings.locale.mkt_hours}
a(href='#')
span.fa.fa-th-list.pull-right.view-summary.iquidus.market-toggle(data-toggle='tooltip', data-placement='bottom', title=settings.locale.mkt_view_chart)
.panel-body
div#chart(style="width:100%;height:300px;")
#summary-panel.panel.panel-default
.panel-heading
h5 #{settings.locale.altmarkets} - #{marketdata.coin}/#{marketdata.exchange} - #{settings.locale.mkt_hours}
a(href='#')
span.fa.fa-line-chart.float-right.view-chart-disabled.iquidus.market-toggle(data-toggle='tooltip', data-placement='bottom', title=settings.locale.mkt_no_chart)
span.fa.fa-line-chart.float-right.view-chart.iquidus.market-toggle(data-toggle='tooltip', data-placement='bottom', title=settings.locale.mkt_view_summary)
table.table.table-bordered.summary-table
thead
tr
@@ -113,4 +161,4 @@ block market_view
td.hidden-xs
=(new Date(order.timestamp * 1000).toUTCString())
.footer-padding
.footer-padding