skyffire 1 рік тому
батько
коміт
246951a91a
2 змінених файлів з 41 додано та 6 видалено
  1. 1 1
      pull_k_lines.js
  2. 40 5
      十面埋伏分析.js

+ 1 - 1
pull_k_lines.js

@@ -54,7 +54,7 @@ async function main() {
   for (let i = 0; i < symbols.length; i++) {
     let symbol = symbols[i]
     const kLines = await HttpQuery(
-      `${BASE_REST}/api/v3/klines?symbol=${symbol.replace('_', '')}&interval=2h&limit=${NUMBER_OF_DAYS_TO_PULL}`)
+      `${BASE_REST}/api/v3/klines?symbol=${symbol.replace('_', '')}&interval=2h&limit=${NUMBER_OF_DAYS_TO_PULL}&startTime=1685548800000`)
 
     kLinesMap[symbol] = []
     for (let kLine of kLines) {

+ 40 - 5
十面埋伏分析.js

@@ -107,7 +107,7 @@ function statisticE(kLines, index) {
 // }
 
 // 指标过滤
-function filter(btcKLines, kLines, index) {
+function filter(btcKLines, kLines, index, symbol) {
   // 过去N根K的累计涨幅
   let upRateN = statisticA(kLines, index)
   if (upRateN >= 90) {
@@ -124,6 +124,10 @@ function filter(btcKLines, kLines, index) {
     return false
   }
 
+  if (NOOBS.indexOf(symbol) !== -1) {
+    return false
+  }
+
   // if ([4, 6, 14, 22].indexOf(statisticE(kLines, index)) === -1) {
   //   return false
   // }
@@ -145,7 +149,7 @@ function getRealDragonMap(btcKLines, kLinesMap, dayCount, BUY_LIMIT_RATE) {
     if (!kLine || !prevKline) continue
 
     // 指标过滤
-    if (!filter(btcKLines, kLines, index)) continue
+    if (!filter(btcKLines, kLines, index, symbol)) continue
 
     let rate = 100 * (kLine.Close - kLine.Open) / kLine.Open
     // let upRate = 100 * (kLine.High - kLine.Open) / kLine.Open
@@ -183,7 +187,7 @@ function getFakeDragonMap(btcKLines, kLinesMap, dayCount, BUY_LIMIT_RATE) {
     if (!kLine || (!prevKline)) continue
 
     // 指标过滤
-    if (!filter(btcKLines, kLines, index)) continue
+    if (!filter(btcKLines, kLines, index, symbol)) continue
 
     let rate = 100 * (kLine.Close - kLine.Open) / kLine.Open
     if (rate < BUY_LIMIT_RATE) {
@@ -220,7 +224,7 @@ function dragonAnalysis(btcKLines, kLinesMap, dragonMap, dayCount) {
     let y = dragonMap[symbol].Profit
 
     // 打印实际的量
-    if (1 === 2) {
+    if (1 === 1) {
       if (y > 0) {
         if (dataRight[x]) {
           dataRight[x] += y
@@ -256,6 +260,25 @@ function dragonAnalysis(btcKLines, kLinesMap, dragonMap, dayCount) {
   }
 }
 
+let NOOBS = [
+  'ZRX_USDT',   'ID_USDT',    'NULS_USDT',
+  'COS_USDT',   'PROM_USDT',  'JUP_USDT',
+  'COMP_USDT',  'RONIN_USDT', 'PDA_USDT',
+  'CTK_USDT',   'ORN_USDT',   'RARE_USDT',
+  'STG_USDT',   'WIN_USDT',   'MTL_USDT',
+  'CELO_USDT',  'MASK_USDT',  'LQTY_USDT',
+  'MEME_USDT',  'NFP_USDT',   'XAI_USDT',
+  'VIC_USDT',   'DODO_USDT',  'SCRT_USDT',
+  'MANTA_USDT', 'BOME_USDT',  'TKO_USDT',
+  'JTO_USDT',   'REI_USDT',   'RSR_USDT',
+  'STRK_USDT',  'CTXC_USDT',  'FLOKI_USDT',
+  'LSK_USDT',   'PROS_USDT',  'PEOPLE_USDT',
+  'JASMY_USDT', 'SC_USDT',    'AUCTION_USDT',
+  'VTHO_USDT',  'REQ_USDT',   'DEXE_USDT',
+  'FIS_USDT',   'ASTR_USDT',  'AGLD_USDT',
+  'FOR_USDT',   'PYR_USDT'
+]
+
 async function main() {
   let kLinesMap = await readData()
 
@@ -267,7 +290,6 @@ async function main() {
   // const FIRST_FEW_DAYS = 710                   // 第几K的数据,0表示今K,1表示昨K,2表示前K,以此类推
   // const BAKE_TEST_DAYS = 1                     // 一共回测多少K
 
-
   let btcKLines = kLinesMap['BTC_USDT']
   let totalProfit = 0
   for (let day_count = FIRST_FEW_DAYS; day_count < FIRST_FEW_DAYS + BAKE_TEST_DAYS; day_count++) {
@@ -339,6 +361,19 @@ async function main() {
   //   lastData.push([x, dataRight[x]])
   // }
 
+
+  // 这里可以生成noobs
+  // dataY = Object.keys(dataRight)
+  // let noobs = []
+  // for (let symbol in dataLeft) {
+  //   if (dataLeft[symbol] + dataRight[symbol] < 0) {
+  //     noobs.push(symbol)
+  //   }
+  // }
+  // logger.info(noobs)
+  // 如果key是字符串,就要加这些
+  // dataLeft = Object.values(dataLeft)
+  // dataRight = Object.values(dataRight)
   let rst = 'option=' + JSON.stringify(ChartKit.printBar(dataY, dataLeft, dataRight), null, 2)
   // let rst = 'option=' + JSON.stringify(ChartKit.printPointChart(lastData), null, 2)
   require('fs').writeFile('./data/option.txt', rst, 'utf8', (err) => {