final mintpal changes
This commit is contained in:
parent
4469cf546c
commit
2e77108b3c
@ -108,6 +108,16 @@ module.exports = function() {
|
|||||||
return this._request(options, callback);
|
return this._request(options, callback);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getBuyOrderBook: function(currencyA, currencyB, callback){
|
||||||
|
var options = {
|
||||||
|
method: 'GET',
|
||||||
|
url: PUBLIC_API_URL + '/orders/' + currencyB + '/' + currencyA + '/BUY',
|
||||||
|
qs: null
|
||||||
|
};
|
||||||
|
|
||||||
|
return this._request(options, callback);
|
||||||
|
},
|
||||||
|
|
||||||
getOrderBook: function(currencyA, currencyB, callback){
|
getOrderBook: function(currencyA, currencyB, callback){
|
||||||
var parameters = {
|
var parameters = {
|
||||||
command: 'returnOrderBook',
|
command: 'returnOrderBook',
|
||||||
|
|||||||
@ -286,10 +286,49 @@ module.exports = function(logger){
|
|||||||
marketData['BTC'].bid = new Number(market.top_bid);
|
marketData['BTC'].bid = new Number(market.top_bid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (market.exchange == 'LTC' && market.code == symbol) {
|
||||||
|
if (!marketData.hasOwnProperty('LTC'))
|
||||||
|
marketData['LTC'] = {};
|
||||||
|
|
||||||
|
marketData['LTC'].last = new Number(market.last_price);
|
||||||
|
marketData['LTC'].baseVolume = new Number(market['24hvol']);
|
||||||
|
marketData['LTC'].quoteVolume = new Number(market['24hvol'] / market.last_price);
|
||||||
|
marketData['LTC'].ask = new Number(market.top_ask);
|
||||||
|
marketData['LTC'].bid = new Number(market.top_bid);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
taskCallback();
|
taskCallback();
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
function(taskCallback){
|
||||||
|
var depthTasks = [];
|
||||||
|
Object.keys(symbolToAlgorithmMap).forEach(function(symbol){
|
||||||
|
var marketData = profitStatus[symbolToAlgorithmMap[symbol]][symbol].exchangeInfo['Mintpal'];
|
||||||
|
if (marketData.hasOwnProperty('BTC') && marketData['BTC'].bid > 0){
|
||||||
|
depthTasks.push(function(callback){
|
||||||
|
_this.getMarketDepthFromMintpal('BTC', symbol, marketData['BTC'].bid, callback)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (marketData.hasOwnProperty('LTC') && marketData['LTC'].bid > 0){
|
||||||
|
depthTasks.push(function(callback){
|
||||||
|
_this.getMarketDepthFromMintpal('LTC', symbol, marketData['LTC'].bid, callback)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!depthTasks.length){
|
||||||
|
taskCallback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
async.series(depthTasks, function(err){
|
||||||
|
if (err){
|
||||||
|
taskCallback(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
taskCallback();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
], function(err){
|
], function(err){
|
||||||
if (err){
|
if (err){
|
||||||
@ -298,7 +337,31 @@ module.exports = function(logger){
|
|||||||
}
|
}
|
||||||
callback(null);
|
callback(null);
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
this.getMarketDepthFromMintpal = function(symbolA, symbolB, coinPrice, callback){
|
||||||
|
mintpalApi.getBuyOrderBook(symbolA, symbolB, function(err, response){
|
||||||
|
if (err){
|
||||||
|
callback(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var depth = new Number(0);
|
||||||
|
if (response.hasOwnProperty('data')){
|
||||||
|
response['data'].forEach(function(order){
|
||||||
|
var price = new Number(order.price);
|
||||||
|
var limit = new Number(coinPrice * portalConfig.profitSwitch.depth);
|
||||||
|
var qty = new Number(order.amount);
|
||||||
|
// only measure the depth down to configured depth
|
||||||
|
if (price >= limit){
|
||||||
|
depth += (qty * price);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var marketData = profitStatus[symbolToAlgorithmMap[symbolB]][symbolB].exchangeInfo['Mintpal'];
|
||||||
|
marketData[symbolA].depth = depth;
|
||||||
|
callback();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -386,7 +449,6 @@ module.exports = function(logger){
|
|||||||
logger.error(logSystem, 'Check', 'Error while checking profitability: ' + err);
|
logger.error(logSystem, 'Check', 'Error while checking profitability: ' + err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
logger.debug(logSystem, 'Check', JSON.stringify(profitStatus));
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
setInterval(checkProfitability, portalConfig.profitSwitch.updateInterval * 1000);
|
setInterval(checkProfitability, portalConfig.profitSwitch.updateInterval * 1000);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user