Last active
December 2, 2017 02:08
-
-
Save marce1994/80f4cb0065f548cfacfab7632d29fd65 to your computer and use it in GitHub Desktop.
fitfinex analizer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var minMaxAvg1Min = []; | |
var lastMin = 0; | |
const { | |
BFX_API_KEY = 'APIKEY', | |
BFX_API_SECRET = 'APISECRET', | |
} = process.env; | |
const opts = { | |
version: 2, | |
transform: true | |
}; | |
const bws = new BFX(process.env.BFX_API_KEY, process.env.BFX_API_SECRET, opts).ws | |
setInterval(function() { | |
db.find({}, function (err, docs) { | |
var objs = []; | |
var temptimestamp = Date.now(); | |
docs.forEach(function(element) { | |
if(element.timestamp > lastMin){ | |
objs.push(element); | |
} | |
}, this); | |
lastMin = temptimestamp; | |
console.log('\x1b[32m',minmaxavg(objs)!= undefined? minmaxavg(objs).avg + ' >>> ' + minmaxavg(objs).avg * 0.01 : 'sin datos'); | |
}); | |
}, 30000 ); | |
function minmaxavg(arr){ | |
if(arr.length == 0){ | |
return undefined; | |
} | |
var sell = 0; | |
var buy = 0; | |
var total = 0; | |
var count = 0; | |
var min = arr[0].price; | |
var max = arr[0].price; | |
var avg = 0; | |
for (var index = 0; index < arr.length; index++) { | |
var element = arr[index]; | |
if(element.amount < 0) | |
sell ++; | |
if(element.amount > 0) | |
buy ++; | |
if(element.price > max) | |
max = element.price; | |
if(element.price < min) | |
min = element.price; | |
total += element.price; | |
count ++; | |
} | |
avg = total / count; | |
return {max, min, avg, buy, sell}; | |
} | |
bws.on('auth', () => { | |
// emitted after .auth() | |
// needed for private api endpoints | |
console.log('authenticated'); | |
// bws.submitOrder ... | |
}); | |
bws.on('open', () => { | |
bws.subscribeTrades('BTCUSD'); | |
// authenticate | |
// bws.auth(); | |
}); | |
bws.on('orderbook', (pair, book) => { | |
console.log('Order book:', book); | |
}); | |
bws.on('trade', (pair, trade) => { | |
saveTrade(pair, trade); | |
}); | |
bws.on('ticker', (pair, ticker) => { | |
console.log('Ticker:', ticker); | |
}); | |
bws.on('error', console.error); | |
function saveTrade(pair, trade){ | |
if(trade[0] === 'tu') | |
{ | |
var reg = { pair, 'amount' : trade[1].AMOUNT, 'price' : trade[1].PRICE, 'timestamp' : Date.now()}; | |
db.insert(reg, function(){ | |
//console.log((trade[1].AMOUNT > 0? '\x1b[32m' : '\x1b[31m'),pair + ' -> ' + (trade[1].AMOUNT > 0? 'buy' : 'sell') + ' ' + trade[1].PRICE); | |
}); | |
} | |
}; |
dale gracias, encontré errores igual, es [pair]['sell'] y no [pait, 'sell']. a simple vista parecía funcionar, pero me guardaba todo en el mismo lugar, ya lo solucione :3
al final lo modifique y utilice una base de datos en memoria. posteriormente la voy a persistir posiblemente.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
que tal esto y reducir un poco el codigo ?
para operar:
let operation = trade[1].AMOUNT < 0 ? 'SELL : 'BUY';
let mySubArray = container[pair, operation];
mySubArray.push(.....)
para loguear:
console.info(pair+operation, mySubArray);