3.secondary-sell.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const BinanceSpot = require('./libs/BinanceSpot.js')
  2. const Config = require('../config/config.js')
  3. const ListenConfig = require('../config/listen-config.js')
  4. const PrivateConfig = require('./PrivateConfig.js')
  5. const MyKit = require('./kit/MyKit.js')
  6. const bs = new BinanceSpot(PrivateConfig.binanceAPIKey, PrivateConfig.binanceSecretKey)
  7. function findBalanceBySymbol(accountInfo, symbol='BUSD') {
  8. for (const asset of accountInfo.balances) {
  9. if (asset.asset === symbol) {
  10. return parseFloat(asset.free)
  11. }
  12. }
  13. return 0
  14. }
  15. async function onTick() {
  16. const accountInfo = await bs.accountInfo()
  17. if (accountInfo && accountInfo.balances) {
  18. for (const token of ListenConfig.tokenList) {
  19. const amount = MyKit._N(findBalanceBySymbol(accountInfo, token.symbol), token.binanceDecimals)
  20. const pair = token.symbol + Config.baseToken.symbol
  21. if (amount >= Math.pow(10, -token.binanceDecimals)) {
  22. const orderRst = await bs.sell(pair, -1, amount)
  23. const time = MyKit.getTimeByMillisecond(new Date().getTime())
  24. console.log(`[${time} 二级交易所产生新的卖出]币种:${token.symbol}, 数量:${amount}, 卖出(${Config.baseToken.symbol}):${orderRst.cummulativeQuoteQty}.`)
  25. console.log(`下单回执:${JSON.stringify(orderRst)}\n\n\n`)
  26. }
  27. }
  28. }
  29. }
  30. while (true) {
  31. try {
  32. await onTick()
  33. } catch (e) {
  34. console.log(e)
  35. }
  36. await MyKit.sleep(5000)
  37. }