Răsfoiți Sursa

成功接入ma

skyfffire 2 ani în urmă
părinte
comite
dcfdede007

+ 4 - 7
kit/tick-kit.js

@@ -1,3 +1,5 @@
+const NumKit = require("./num-kit");
+
 class TickKit {}
 
 /**
@@ -29,17 +31,12 @@ TickKit.MA = function (ticks, day) {
       let valueSum = 0
       for (let j = i; j > i - day; j--) {
         valueSum += ticks[j]
-
-        if (i === ticks.length - 1) {
-          // console.log(day, ticks[j])
-        }
-      }
-      if (i === ticks.length - 1) {
-        // console.log(day, valueSum)
       }
+
       mas.push(valueSum / day)
     }
   }
+
   return mas
 }
 

+ 6 - 0
libs/binance/binance-kit.js

@@ -71,4 +71,10 @@ module.exports = class BinanceKit {
 
     return filterMap
   }
+
+  static parseCloseTicks(originKlines) {
+    return originKlines.map(kline => {
+      return parseFloat(kline[4])
+    })
+  }
 }

+ 12 - 0
libs/binance/binance-spot.js

@@ -25,6 +25,10 @@ class BinanceSpot {
   static BASE_TOKEN = {
     BUSD: 'BUSD'
   }
+  static INTERVAL = {
+    H1: '1h',
+    H4: '4h'
+  }
   
   constructor(apiKey, secretKey) {
     this.apiKey = apiKey
@@ -47,6 +51,14 @@ class BinanceSpot {
     }
   }
 
+  static async klines(symbol='BNBBUSD', interval=BinanceSpot.INTERVAL.H1, limit=20) {
+    const url = `${BinanceSpot.BASE_URL}/api/v3/klines?symbol=${symbol}&interval=${interval}&limit=${limit}`
+
+    const { data: rst } = await HttpKit.get(url)
+
+    return rst
+  }
+
   static async exchangeInfo(symbols=['BNBBUSD', 'BTCBUSD']) {
     const url = `${BinanceSpot.BASE_URL}/api/v3/exchangeInfo?symbols=${BinanceKit.buildExchangeInfoSymbols(symbols)}`
 

+ 11 - 1
libs/binance/test/binance-spot-test.js

@@ -2,9 +2,11 @@ const logger = require('../../../kit/logger-kit').getLogger('binance-spot-test')
 const BinanceSpot = require('../binance-spot')
 const BinanceKit = require('../binance-kit')
 const assert = require("assert");
+const Context = require("../../context");
+const TickKit = require("../../../kit/tick-kit");
 
 describe('binance-spot-test', () => {
-  const context = {}
+  const context = new Context()
   const binanceSpot = context.binanceSpot
   const config = context.config
 
@@ -45,4 +47,12 @@ describe('binance-spot-test', () => {
 
     logger.info(sellMarketRst)
   })
+
+  it('klines test', async () => {
+    const klines = await BinanceSpot.klines()
+    const ticks = BinanceKit.parseCloseTicks(klines)
+
+    logger.info(ticks)
+    logger.info(TickKit.MA(ticks, 5))
+  })
 })