You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.1 KiB

const bittrex = require('node-bittrex-api');
7 years ago
const targetLskUsdtPrice = process.env['TARGET_LSK_USDT_PRICE'];
const quantityToSell = process.env['QUANTITY_TO_SELL'];
const howOftenToCheckInSecs = 10;
const howOftenToCheckInMs = howOftenToCheckInSecs * 1000;
7 years ago
console.log('Target Price', targetLskUsdtPrice);
console.log('Quantity to sell', quantityToSell);
7 years ago
console.log('Key', process.env['API_KEY']);
console.log('Checking every ', howOftenToCheckInSecs + ' seconds.');
7 years ago
bittrex.options({
'apikey': process.env['API_KEY'] || '',
'apisecret': process.env['API_SECRET'] || ''
});
async function main() {
7 years ago
const lskBtcPrice = await getLastPriceForMarket('BTC-LSK');
const btcUsdtPrice = await getLastPriceForMarket('USDT-BTC');
7 years ago
if (lskBtcPrice === -1 || btcUsdtPrice === -1) {
7 years ago
console.log('Failed to get price(s). Will try again in ' + howOftenToCheckInSecs + ' seconds.');
7 years ago
return;
}
7 years ago
const lskUsdtPrice = lskBtcPrice * btcUsdtPrice;
7 years ago
console.log(new Date() + ': Current LSK price on Bittrex in USDT: ', lskUsdtPrice);
7 years ago
if (lskUsdtPrice >= targetLskUsdtPrice) {
7 years ago
console.log("Triggered sell. Attempting...");
await tradesell(lskBtcPrice);
7 years ago
console.log('Terminating program');
process.exit();
}
}
async function getLastPriceForMarket(market) {
return new Promise(function(resolve) {
bittrex.getticker({ market }, function (rate) {
if(rate) {
return resolve(parseFloat(rate.result.Last));
} else {
return resolve(-1);
}
})
})
}
7 years ago
async function tradesell(rate) {
return new Promise(function(resolve) {
bittrex.tradesell({
MarketName: 'BTC-LSK',
OrderType: 'LIMIT',
Quantity: quantityToSell,
7 years ago
Rate: rate,
TimeInEffect: 'GOOD_TIL_CANCELLED',
ConditionType: 'NONE',
Target: 0
}, function (data, err) {
if (err) {
console.log('Trigger reached, but error occured whilst creating order:', err);
} else {
console.log('Trigger reached and trade created:', data);
}
resolve();
}
);
})
7 years ago
}
main();
setInterval(main, howOftenToCheckInMs);