Markets API: Add Altmarkets chart data
This commit is contained in:
@@ -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});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user