|
@@ -48,7 +48,7 @@ function getFakeDragonMap(kLinesMap, FIRST_FEW_DAYS, BUY_LIMIT_RATE) {
|
|
|
if (maxRate > BUY_LIMIT_RATE && rate < BUY_LIMIT_RATE) {
|
|
if (maxRate > BUY_LIMIT_RATE && rate < BUY_LIMIT_RATE) {
|
|
|
kLine.Rate = rate
|
|
kLine.Rate = rate
|
|
|
kLine.MaxRate = maxRate
|
|
kLine.MaxRate = maxRate
|
|
|
- kLine.Profit = rate - BUY_LIMIT_RATE
|
|
|
|
|
|
|
+ kLine.Profit = rate > 0 ? rate - BUY_LIMIT_RATE : -BUY_LIMIT_RATE
|
|
|
fakeDragonMap[symbol] = kLine
|
|
fakeDragonMap[symbol] = kLine
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -60,10 +60,11 @@ async function main() {
|
|
|
let kLinesMap = await readData()
|
|
let kLinesMap = await readData()
|
|
|
|
|
|
|
|
const FIRST_FEW_DAYS = 0 // 第几天的数据,0表示今天,1表示昨天,2表示前天,以此类推
|
|
const FIRST_FEW_DAYS = 0 // 第几天的数据,0表示今天,1表示昨天,2表示前天,以此类推
|
|
|
- const BUY_LIMIT_RATE = 1 // 从什么比例入场
|
|
|
|
|
|
|
+ const BUY_LIMIT_RATE = 3 // 从什么比例入场
|
|
|
|
|
+ const BAKE_TEST_DAYS = 30 // 一共回测多少天
|
|
|
|
|
|
|
|
let totalProfit = 0
|
|
let totalProfit = 0
|
|
|
- for (let i = FIRST_FEW_DAYS; i <= kLinesMap['BTC_USDT'].length - 2; i++) {
|
|
|
|
|
|
|
+ for (let i = FIRST_FEW_DAYS; i < BAKE_TEST_DAYS; i++) {
|
|
|
// 真龙榜
|
|
// 真龙榜
|
|
|
let realDragonProfit = 0
|
|
let realDragonProfit = 0
|
|
|
let realDragonMap = getRealDragonMap(kLinesMap, i, BUY_LIMIT_RATE)
|
|
let realDragonMap = getRealDragonMap(kLinesMap, i, BUY_LIMIT_RATE)
|
|
@@ -101,7 +102,7 @@ async function main() {
|
|
|
totalProfit = NumKit.getSubFloat(totalProfit, 2)
|
|
totalProfit = NumKit.getSubFloat(totalProfit, 2)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- let dayProfit = NumKit.getSubFloat(totalProfit / (kLinesMap['BTC_USDT'].length - 2), 2)
|
|
|
|
|
|
|
+ let dayProfit = NumKit.getSubFloat(totalProfit / BAKE_TEST_DAYS, 2)
|
|
|
logger.info(`利润期望值总和:${totalProfit}%,平均日化${dayProfit}%。`)
|
|
logger.info(`利润期望值总和:${totalProfit}%,平均日化${dayProfit}%。`)
|
|
|
}
|
|
}
|
|
|
|
|
|