3.secondary-sell.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const BinanceSpot = require('./libs/BinanceSpot.js')
  2. const Config = require('../config/Config.js')
  3. const ListenConfig = require('../config/ListenConfig.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. async function main() {
  31. while (true) {
  32. try {
  33. await onTick()
  34. } catch (e) {
  35. console.log(e)
  36. }
  37. await MyKit.sleep(5000)
  38. }
  39. }
  40. main()