Commit 8e583ece authored by Ahmad Nemati's avatar Ahmad Nemati

git pu

parent 49655c01
......@@ -12,36 +12,33 @@ let timeFrame = 0
let avgRunup = 0
let avgDrawdown = 0
let avgProfit = 0
let startt=30
let startt = 30
//
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData, fft, ProfitZeroProfit, fftRunup, ProfitZeroProfitRunup, ProfitZeroDrawDownProfit, ProfitZeroDrawDown, ddPlusRunCount, RunupDrawDownZeroRunupDrawDown,ProfitZeroRunupProfit,ProfitZeroRunupDrawDown,RunUpDrawDownZeroProfit,RunUpDrawDownZeroDrawDownProfit,RunUpDrawDownZeroDrawdown,RunUpDrawDownZeroRunupProfit,RunupZeroRunupDrawDown,RunupZeroProfit,RunupZeroProfitDrawDown,RunupZeroDrawDown,RunupZeroProfitRunup, DrawDownZeroDrawDown,DrawDownnZeroProfit,DrawDownZeroProfitDrawDown,DrawDownZeroProfitRunup,DrawDownZeroRunupDrawDown,ProfitDrawDownZeroDrawDown,ProfitDrawDownZeroProfit,ProfitDrawDownZeroProfitDrawDown,ProfitDrawDownZeroProfitRunup,ProfitDrawDownZeroRunupDrawDown
,ProfitRunupZeroDrawDown,ProfitRunupZeroProfit,ProfitRunupZeroProfitDrawDown,ProfitRunupZeroProfitRunup,ProfitRunupZeroRunupDrawDown, usage) {
let data2=[]
for (let i=0;i<data.length;i++)
{
let ft=data[i].openDate.split('-')
let y=parseFloat(ft[0])
let m=parseFloat(ft[1])
if (y < 2017)
continue
if (y>2017) {
data2.push(data[i])
continue
}
if ( y ===2017)
{
if (m<9)
continue
else
data2.push(data[i])
}
}
data=data2
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData, fft, ProfitZeroProfit, fftRunup, ProfitZeroProfitRunup, ProfitZeroDrawDownProfit, ProfitZeroDrawDown, ddPlusRunCount, RunupDrawDownZeroRunupDrawDown, ProfitZeroRunupProfit, ProfitZeroRunupDrawDown, RunUpDrawDownZeroProfit, RunUpDrawDownZeroDrawDownProfit, RunUpDrawDownZeroDrawdown, RunUpDrawDownZeroRunupProfit, RunupZeroRunupDrawDown, RunupZeroProfit, RunupZeroProfitDrawDown, RunupZeroDrawDown, RunupZeroProfitRunup, DrawDownZeroDrawDown, DrawDownnZeroProfit, DrawDownZeroProfitDrawDown, DrawDownZeroProfitRunup, DrawDownZeroRunupDrawDown, ProfitDrawDownZeroDrawDown, ProfitDrawDownZeroProfit, ProfitDrawDownZeroProfitDrawDown, ProfitDrawDownZeroProfitRunup, ProfitDrawDownZeroRunupDrawDown
, ProfitRunupZeroDrawDown, ProfitRunupZeroProfit, ProfitRunupZeroProfitDrawDown, ProfitRunupZeroProfitRunup, ProfitRunupZeroRunupDrawDown, usage) {
let data2 = []
for (let i = 0; i < data.length; i++) {
let ft = data[i].openDate.split('-')
let y = parseFloat(ft[0])
let m = parseFloat(ft[1])
if (y < 2017)
continue
if (y > 2017) {
data2.push(data[i])
continue
}
if (y === 2017) {
if (m < 9)
continue
else
data2.push(data[i])
}
}
data = data2
let type = config.type + ' param:' + config.param + ' base:' + config.base + ' target:' + config.target + ' targetPercentage:' + targetPercentage.enable
......@@ -61,117 +58,63 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
type = type + ' ' + usage + ' ' + ddPlusRunCount
} else if (usage === 'RunupDrawDownZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + RunupDrawDownZeroRunupDrawDown
}
else if (usage === 'ProfitZeroRunupProfit') {
} else if (usage === 'ProfitZeroRunupProfit') {
type = type + ' ' + usage + ' ' + ProfitZeroRunupProfit
}
else if (usage === 'ProfitZeroRunupDrawDown') {
} else if (usage === 'ProfitZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + ProfitZeroRunupDrawDown
}
else if (usage === 'RunUpDrawDownZeroProfit') {
} else if (usage === 'RunUpDrawDownZeroProfit') {
type = type + ' ' + usage + ' ' + RunUpDrawDownZeroProfit
}
else if (usage === 'RunUpDrawDownZeroDrawDownProfit') {
} else if (usage === 'RunUpDrawDownZeroDrawDownProfit') {
type = type + ' ' + usage + ' ' + RunUpDrawDownZeroDrawDownProfit
}
else if (usage === 'RunUpDrawDownZeroDrawdown') {
} else if (usage === 'RunUpDrawDownZeroDrawdown') {
type = type + ' ' + usage + ' ' + RunUpDrawDownZeroDrawdown
}
else if (usage === 'RunUpDrawDownZeroRunupProfit') {
} else if (usage === 'RunUpDrawDownZeroRunupProfit') {
type = type + ' ' + usage + ' ' + RunUpDrawDownZeroRunupProfit
}
else if (usage === 'RunupZeroRunupDrawDown') {
} else if (usage === 'RunupZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + RunupZeroRunupDrawDown
}
else if (usage === 'RunupZeroProfit') {
} else if (usage === 'RunupZeroProfit') {
type = type + ' ' + usage + ' ' + RunupZeroProfit
}
else if (usage === 'RunupZeroProfitDrawDown') {
} else if (usage === 'RunupZeroProfitDrawDown') {
type = type + ' ' + usage + ' ' + RunupZeroProfitDrawDown
}
else if (usage === 'RunupZeroDrawDown') {
} else if (usage === 'RunupZeroDrawDown') {
type = type + ' ' + usage + ' ' + RunupZeroDrawDown
}
else if (usage === 'RunupZeroProfitRunup') {
} else if (usage === 'RunupZeroProfitRunup') {
type = type + ' ' + usage + ' ' + RunupZeroProfitRunup
}
else if (usage === 'RunupZeroProfitRunup') {
} else if (usage === 'RunupZeroProfitRunup') {
type = type + ' ' + usage + ' ' + RunupZeroProfitRunup
}
else if (usage === 'DrawDownZeroDrawDown') {
} else if (usage === 'DrawDownZeroDrawDown') {
type = type + ' ' + usage + ' ' + DrawDownZeroDrawDown
}
else if (usage === 'DrawDownnZeroProfit') {
} else if (usage === 'DrawDownnZeroProfit') {
type = type + ' ' + usage + ' ' + DrawDownnZeroProfit
}
else if (usage === 'DrawDownZeroProfitDrawDown') {
} else if (usage === 'DrawDownZeroProfitDrawDown') {
type = type + ' ' + usage + ' ' + DrawDownZeroProfitDrawDown
}
else if (usage === 'DrawDownZeroProfitRunup') {
} else if (usage === 'DrawDownZeroProfitRunup') {
type = type + ' ' + usage + ' ' + DrawDownZeroProfitRunup
}
else if (usage === 'DrawDownZeroRunupDrawDown') {
} else if (usage === 'DrawDownZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + DrawDownZeroRunupDrawDown
}
else if (usage === 'ProfitDrawDownZeroDrawDown') {
} else if (usage === 'ProfitDrawDownZeroDrawDown') {
type = type + ' ' + usage + ' ' + ProfitDrawDownZeroDrawDown
}
else if (usage === 'ProfitDrawDownZeroProfit') {
} else if (usage === 'ProfitDrawDownZeroProfit') {
type = type + ' ' + usage + ' ' + ProfitDrawDownZeroProfit
}
else if (usage === 'ProfitDrawDownZeroProfitDrawDown') {
} else if (usage === 'ProfitDrawDownZeroProfitDrawDown') {
type = type + ' ' + usage + ' ' + ProfitDrawDownZeroProfitDrawDown
}
else if (usage === 'ProfitDrawDownZeroProfitRunup') {
} else if (usage === 'ProfitDrawDownZeroProfitRunup') {
type = type + ' ' + usage + ' ' + ProfitDrawDownZeroProfitRunup
}
else if (usage === 'ProfitDrawDownZeroRunupDrawDown') {
} else if (usage === 'ProfitDrawDownZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + ProfitDrawDownZeroRunupDrawDown
}
else if (usage === 'ProfitRunupZeroDrawDown') {
} else if (usage === 'ProfitRunupZeroDrawDown') {
type = type + ' ' + usage + ' ' + ProfitRunupZeroDrawDown
}
else if (usage === 'ProfitRunupZeroProfit') {
} else if (usage === 'ProfitRunupZeroProfit') {
type = type + ' ' + usage + ' ' + ProfitRunupZeroProfit
}
else if (usage === 'ProfitRunupZeroProfitDrawDown') {
} else if (usage === 'ProfitRunupZeroProfitDrawDown') {
type = type + ' ' + usage + ' ' + ProfitRunupZeroProfitDrawDown
}
else if (usage === 'ProfitRunupZeroProfitRunup') {
} else if (usage === 'ProfitRunupZeroProfitRunup') {
type = type + ' ' + usage + ' ' + ProfitRunupZeroProfitRunup
}
else if (usage === 'ProfitRunupZeroRunupDrawDown') {
} else if (usage === 'ProfitRunupZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + ProfitRunupZeroRunupDrawDown
}
let saveData = []
candles = candlesData
timeFrame = candles[1].t - candles[0].t
......@@ -186,22 +129,22 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let maxDays = 0
let startDays = 0
let allTotal = 0
let targetDone=0
let targetDonePer=0
let lossDone=0
let allDone=0
let allDonePer=0
let allLongDone=0
let allLongDonePer=0
let lossLongDone=0
let lossLongDonePer=0
let allShortDone=0
let allShortDonePer=0
let lossShortDone=0
let lossShortDonePer=0
let lossDonePer=0
let lossPlusDone=0
let lossPlusDonePer=0
let targetDone = 0
let targetDonePer = 0
let lossDone = 0
let allDone = 0
let allDonePer = 0
let allLongDone = 0
let allLongDonePer = 0
let lossLongDone = 0
let lossLongDonePer = 0
let allShortDone = 0
let allShortDonePer = 0
let lossShortDone = 0
let lossShortDonePer = 0
let lossDonePer = 0
let lossPlusDone = 0
let lossPlusDonePer = 0
let listDays = []
let maxReserve = 0
let maxMeta = 0
......@@ -213,7 +156,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let realProfit = 0
let dateString = ''
let runupString = ''
let profitLossString=''
let profitLossString = ''
let sideString = ''
// console.log(data)
......@@ -237,9 +180,9 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let RunUpDrawDownAllLossProfit = 0
let drawDownPlusRunUpCount = 0
let drawDownPlusRunUpPercent = 0
let VarProfitZeroRunupProfit=0
let VarDrawDownZeroProfit=0
let VarProfitZeroRunupDrawDown=0
let VarProfitZeroRunupProfit = 0
let VarDrawDownZeroProfit = 0
let VarProfitZeroRunupDrawDown = 0
let countDropRunup = 0
let ProfitZeroDrawDownPercent = 0
......@@ -249,37 +192,32 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let diffDrawdownProfitAll = 0
let RunupDrawDownDiffDrawdownProfitAll = 0
let VarRunupZeroDrawDown=0
let VarRunupZeroProfit=0
let VarRunupZeroProfitDrawDown=0
let VarRunupZeroProfitRunup=0
let VarRunupZeroRunupDrawDown=0
let VarRunupZeroDrawDown = 0
let VarRunupZeroProfit = 0
let VarRunupZeroProfitDrawDown = 0
let VarRunupZeroProfitRunup = 0
let VarRunupZeroRunupDrawDown = 0
let VarDrawDownZeroDrawDown = 0
let VarDrawDownnZeroProfit = 0
let VarDrawDownZeroProfitDrawDown = 0
let VarDrawDownZeroProfitRunup = 0
let VarDrawDownZeroRunupDrawDown = 0
let VarDrawDownZeroDrawDown=0
let VarDrawDownnZeroProfit=0
let VarDrawDownZeroProfitDrawDown=0
let VarDrawDownZeroProfitRunup=0
let VarDrawDownZeroRunupDrawDown=0
let VarProfitDrawDownZeroDrawDown = 0
let VarProfitDrawDownZeroProfit = 0
let VarProfitDrawDownZeroProfitDrawDown = 0
let VarProfitDrawDownZeroProfitRunup = 0
let VarProfitDrawDownZeroRunupDrawDown = 0
let VarProfitDrawDownZeroDrawDown=0
let VarProfitDrawDownZeroProfit=0
let VarProfitDrawDownZeroProfitDrawDown=0
let VarProfitDrawDownZeroProfitRunup=0
let VarProfitDrawDownZeroRunupDrawDown=0
let VarProfitRunupZeroDrawDown=0
let VarProfitRunupZeroProfit=0
let VarProfitRunupZeroProfitDrawDown=0
let VarProfitRunupZeroProfitRunup=0
let VarProfitRunupZeroRunupDrawDown=0
let VarProfitRunupZeroDrawDown = 0
let VarProfitRunupZeroProfit = 0
let VarProfitRunupZeroProfitDrawDown = 0
let VarProfitRunupZeroProfitRunup = 0
let VarProfitRunupZeroRunupDrawDown = 0
let dur
......@@ -311,7 +249,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
for (let i = 0; i < data.length; i++) {
if (allDonePer<-70)
if (allDonePer < -70)
return null
if (maxDays > maxTradeDays)
return null
......@@ -357,178 +295,132 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitZeroRunupProfit') {
} else if (usage === 'ProfitZeroRunupProfit') {
if (VarProfitZeroRunupProfit > ProfitZeroRunupProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitZeroRunupDrawDown') {
} else if (usage === 'ProfitZeroRunupDrawDown') {
if (VarProfitZeroRunupDrawDown > ProfitZeroRunupDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunUpDrawDownZeroProfit') {
} else if (usage === 'RunUpDrawDownZeroProfit') {
if (RunUpDrawDownAllLossProfit > RunUpDrawDownZeroProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunUpDrawDownZeroDrawDownProfit') {
} else if (usage === 'RunUpDrawDownZeroDrawDownProfit') {
if (RunupDrawDownDiffDrawdownProfitAll > RunUpDrawDownZeroDrawDownProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunUpDrawDownZeroDrawdown') {
} else if (usage === 'RunUpDrawDownZeroDrawdown') {
if (runUpDrawDownZeroDrawDownPercent > RunUpDrawDownZeroDrawdown)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunUpDrawDownZeroRunupProfit') {
} else if (usage === 'RunUpDrawDownZeroRunupProfit') {
if (VarDrawDownZeroProfit > RunUpDrawDownZeroRunupProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunupZeroRunupDrawDown') {
} else if (usage === 'RunupZeroRunupDrawDown') {
if (VarRunupZeroRunupDrawDown > RunupZeroRunupDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunupZeroProfit') {
} else if (usage === 'RunupZeroProfit') {
if (VarRunupZeroProfit > RunupZeroProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunupZeroProfitDrawDown') {
} else if (usage === 'RunupZeroProfitDrawDown') {
if (VarRunupZeroProfitDrawDown > RunupZeroProfitDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunupZeroDrawDown') {
} else if (usage === 'RunupZeroDrawDown') {
if (VarRunupZeroDrawDown > RunupZeroDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'RunupZeroProfitRunup') {
} else if (usage === 'RunupZeroProfitRunup') {
if (VarRunupZeroProfitRunup > RunupZeroProfitRunup)
runBefore = false
else
runBefore = true
}
else if (usage === 'DrawDownZeroDrawDown') {
} else if (usage === 'DrawDownZeroDrawDown') {
if (VarDrawDownZeroDrawDown > DrawDownZeroDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'DrawDownnZeroProfit') {
} else if (usage === 'DrawDownnZeroProfit') {
if (VarDrawDownnZeroProfit > DrawDownnZeroProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'DrawDownZeroProfitDrawDown') {
} else if (usage === 'DrawDownZeroProfitDrawDown') {
if (VarDrawDownZeroProfitDrawDown > DrawDownZeroProfitDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'DrawDownZeroProfitRunup') {
} else if (usage === 'DrawDownZeroProfitRunup') {
if (VarDrawDownZeroProfitRunup > DrawDownZeroProfitRunup)
runBefore = false
else
runBefore = true
}
else if (usage === 'DrawDownZeroRunupDrawDown') {
} else if (usage === 'DrawDownZeroRunupDrawDown') {
if (VarDrawDownZeroRunupDrawDown > DrawDownZeroRunupDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitDrawDownZeroDrawDown') {
} else if (usage === 'ProfitDrawDownZeroDrawDown') {
if (VarProfitDrawDownZeroDrawDown > ProfitDrawDownZeroDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitDrawDownZeroProfit') {
} else if (usage === 'ProfitDrawDownZeroProfit') {
if (VarProfitDrawDownZeroProfit > ProfitDrawDownZeroProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitDrawDownZeroProfitDrawDown') {
} else if (usage === 'ProfitDrawDownZeroProfitDrawDown') {
if (VarProfitDrawDownZeroProfitDrawDown > ProfitDrawDownZeroProfitDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitDrawDownZeroProfitRunup') {
} else if (usage === 'ProfitDrawDownZeroProfitRunup') {
if (VarProfitDrawDownZeroProfitRunup > ProfitDrawDownZeroProfitRunup)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitDrawDownZeroRunupDrawDown') {
} else if (usage === 'ProfitDrawDownZeroRunupDrawDown') {
if (VarProfitDrawDownZeroRunupDrawDown > ProfitDrawDownZeroRunupDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitRunupZeroDrawDown') {
} else if (usage === 'ProfitRunupZeroDrawDown') {
if (VarProfitRunupZeroDrawDown > ProfitRunupZeroDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitRunupZeroProfit') {
} else if (usage === 'ProfitRunupZeroProfit') {
if (VarProfitRunupZeroProfit > ProfitRunupZeroProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitRunupZeroProfitDrawDown') {
} else if (usage === 'ProfitRunupZeroProfitDrawDown') {
if (VarProfitRunupZeroProfitDrawDown > ProfitRunupZeroProfitDrawDown)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitRunupZeroProfitRunup') {
} else if (usage === 'ProfitRunupZeroProfitRunup') {
if (VarProfitRunupZeroProfitRunup > ProfitRunupZeroProfitRunup)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitRunupZeroRunupDrawDown') {
} else if (usage === 'ProfitRunupZeroRunupDrawDown') {
if (VarProfitRunupZeroRunupDrawDown > ProfitRunupZeroRunupDrawDown)
runBefore = false
else
......@@ -536,48 +428,25 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
//
}
if ((data[i].profit + data[i].runUp) < 0) {
VarProfitRunupZeroRunupDrawDown = VarProfitRunupZeroRunupDrawDown + (data[i].runUp + data[i].drawDown)
VarProfitRunupZeroProfit = VarProfitRunupZeroProfit + data[i].profit
VarProfitRunupZeroProfitDrawDown = VarProfitRunupZeroProfitDrawDown + (data[i].drawDown - data[i].profit)
VarProfitRunupZeroDrawDown = VarProfitRunupZeroDrawDown + data[i].drawDown
VarProfitRunupZeroProfitRunup=VarProfitRunupZeroProfitRunup+(data[i].runUp + data[i].profit)
VarProfitRunupZeroProfitRunup = VarProfitRunupZeroProfitRunup + (data[i].runUp + data[i].profit)
} else {
VarProfitRunupZeroDrawDown=0
VarProfitRunupZeroProfit=0
VarProfitRunupZeroProfitDrawDown=0
VarProfitRunupZeroProfitRunup=0
VarProfitRunupZeroRunupDrawDown=0
VarProfitRunupZeroDrawDown = 0
VarProfitRunupZeroProfit = 0
VarProfitRunupZeroProfitDrawDown = 0
VarProfitRunupZeroProfitRunup = 0
VarProfitRunupZeroRunupDrawDown = 0
}
if ((data[i].profit + data[i].drawDown) < 0) {
......@@ -585,14 +454,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
VarProfitDrawDownZeroProfit = VarProfitDrawDownZeroProfit + data[i].profit
VarProfitDrawDownZeroProfitDrawDown = VarProfitDrawDownZeroProfitDrawDown + (data[i].drawDown - data[i].profit)
VarProfitDrawDownZeroDrawDown = VarProfitDrawDownZeroDrawDown + data[i].drawDown
VarProfitDrawDownZeroProfitRunup=VarProfitDrawDownZeroProfitRunup+(data[i].runUp + data[i].profit)
VarProfitDrawDownZeroProfitRunup = VarProfitDrawDownZeroProfitRunup + (data[i].runUp + data[i].profit)
} else {
VarProfitDrawDownZeroDrawDown=0
VarProfitDrawDownZeroProfit=0
VarProfitDrawDownZeroProfitDrawDown=0
VarProfitDrawDownZeroProfitRunup=0
VarProfitDrawDownZeroRunupDrawDown=0
VarProfitDrawDownZeroDrawDown = 0
VarProfitDrawDownZeroProfit = 0
VarProfitDrawDownZeroProfitDrawDown = 0
VarProfitDrawDownZeroProfitRunup = 0
VarProfitDrawDownZeroRunupDrawDown = 0
}
......@@ -601,33 +470,33 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
VarDrawDownnZeroProfit = VarDrawDownnZeroProfit + data[i].profit
VarDrawDownZeroProfitDrawDown = VarDrawDownZeroProfitDrawDown + (data[i].drawDown - data[i].profit)
VarDrawDownZeroDrawDown = VarDrawDownZeroDrawDown + data[i].drawDown
VarDrawDownZeroProfitRunup=VarDrawDownZeroProfitRunup+(data[i].runUp + data[i].profit)
VarDrawDownZeroProfitRunup = VarDrawDownZeroProfitRunup + (data[i].runUp + data[i].profit)
} else {
VarDrawDownZeroDrawDown=0
VarDrawDownnZeroProfit=0
VarDrawDownZeroProfitDrawDown=0
VarDrawDownZeroProfitRunup=0
VarDrawDownZeroRunupDrawDown=0
VarDrawDownZeroDrawDown = 0
VarDrawDownnZeroProfit = 0
VarDrawDownZeroProfitDrawDown = 0
VarDrawDownZeroProfitRunup = 0
VarDrawDownZeroRunupDrawDown = 0
//zero
}
//console.log(VarRunupZeroProfit)
// console.log(VarRunupZeroProfitRunup,RunupZeroProfitRunup)
// console.log(VarRunupZeroProfitRunup,RunupZeroProfitRunup)
if (data[i].runUp < avgRunup) {
VarRunupZeroRunupDrawDown = VarRunupZeroRunupDrawDown + (data[i].runUp + data[i].drawDown)
VarRunupZeroProfit = VarRunupZeroProfit + data[i].profit
VarRunupZeroProfitDrawDown = VarRunupZeroProfitDrawDown + (data[i].drawDown - data[i].profit)
VarRunupZeroDrawDown = VarRunupZeroDrawDown + data[i].drawDown
VarRunupZeroProfitRunup=VarRunupZeroProfitRunup+(data[i].runUp + data[i].profit)
VarRunupZeroProfitRunup = VarRunupZeroProfitRunup + (data[i].runUp + data[i].profit)
} else {
VarRunupZeroRunupDrawDown=0
VarRunupZeroProfit=0
VarRunupZeroProfitDrawDown=0
VarRunupZeroDrawDown=0
VarRunupZeroProfitRunup=0
VarRunupZeroRunupDrawDown = 0
VarRunupZeroProfit = 0
VarRunupZeroProfitDrawDown = 0
VarRunupZeroDrawDown = 0
VarRunupZeroProfitRunup = 0
//zero
}
......@@ -637,14 +506,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
RunUpDrawDownAllLossProfit = RunUpDrawDownAllLossProfit + data[i].profit
RunupDrawDownDiffDrawdownProfitAll = RunupDrawDownDiffDrawdownProfitAll + (data[i].drawDown - data[i].profit)
runUpDrawDownZeroDrawDownPercent = runUpDrawDownZeroDrawDownPercent + data[i].drawDown
VarDrawDownZeroProfit=VarDrawDownZeroProfit+(data[i].runUp + data[i].profit)
VarDrawDownZeroProfit = VarDrawDownZeroProfit + (data[i].runUp + data[i].profit)
} else {
drawDownPlusRunUpCount = 0
drawDownPlusRunUpPercent = 0
RunUpDrawDownAllLossProfit=0
RunupDrawDownDiffDrawdownProfitAll=0
runUpDrawDownZeroDrawDownPercent=0
VarDrawDownZeroProfit=0
RunUpDrawDownAllLossProfit = 0
RunupDrawDownDiffDrawdownProfitAll = 0
runUpDrawDownZeroDrawDownPercent = 0
VarDrawDownZeroProfit = 0
}
......@@ -652,13 +521,13 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
allLossProfit = allLossProfit + data[i].profit
diffDrawdownProfitAll = diffDrawdownProfitAll + (data[i].drawDown - data[i].profit)
ProfitZeroDrawDownPercent = ProfitZeroDrawDownPercent + data[i].drawDown
VarProfitZeroRunupProfit=VarProfitZeroRunupProfit+(data[i].runUp + data[i].profit)
VarProfitZeroRunupDrawDown=VarProfitZeroRunupDrawDown+(data[i].runUp + data[i].drawDown)
VarProfitZeroRunupProfit = VarProfitZeroRunupProfit + (data[i].runUp + data[i].profit)
VarProfitZeroRunupDrawDown = VarProfitZeroRunupDrawDown + (data[i].runUp + data[i].drawDown)
countDrop++
} else {
allLossProfit = 0
VarProfitZeroRunupProfit=0
VarProfitZeroRunupDrawDown=0
VarProfitZeroRunupProfit = 0
VarProfitZeroRunupDrawDown = 0
diffDrawdownProfitAll = 0
countDrop = 0
ProfitZeroDrawDownPercent = 0
......@@ -696,8 +565,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
if (data[i].side === 'LONG') {
allLongDone++
}
else {
} else {
allShortDone++
}
if (step === 0) {
......@@ -706,7 +574,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
sideString = sideString + data[i].side + '_'
}
canCreateRunupPercent = false
// runBefore = true
// runBefore = true
let obj
if (step === 0) {
// unixStart = data[i].unixOpen
......@@ -772,8 +640,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
obj = d
obj.signal = data[i]
obj.avgRunup=avgRunup
obj.avgDrawdown=avgDrawdown
obj.avgRunup = avgRunup
obj.avgDrawdown = avgDrawdown
// obj.signal.openTimeStamp = data[i].unixOpen
......@@ -859,14 +727,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
lastMoney = 0
allTotal++
targetDone++
allDonePer=allDonePer+config.target
targetDonePer=targetDonePer+config.target
allDonePer = allDonePer + config.target
targetDonePer = targetDonePer + config.target
if (data[i].side === 'LONG')
allLongDonePer=allLongDonePer+config.target
allLongDonePer = allLongDonePer + config.target
else
allShortDonePer=allShortDonePer+config.target
allShortDonePer = allShortDonePer + config.target
if (!d.riskFree)
total++
......@@ -875,36 +743,32 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
profitLossString = profitLossString + data[i].profit + '_'
lossDone++
lossDonePer=lossDonePer+data[i].profit-0.1
allDonePer=allDonePer+data[i].profit-0.1
lossDonePer = lossDonePer + data[i].profit - 0.1
allDonePer = allDonePer + data[i].profit - 0.1
if (data[i].side === 'LONG') {
allLongDonePer = allLongDonePer + data[i].profit - 0.1
if (data[i].profit<=0.1)
{
if (data[i].profit <= 0.1) {
lossLongDone++
lossLongDonePer=lossLongDonePer+(data[i].profit+-0.1)
lossLongDonePer = lossLongDonePer + (data[i].profit + -0.1)
}
}
else {
} else {
allShortDonePer = allShortDonePer + data[i].profit - 0.1
if (data[i].profit<=0.1)
{
if (data[i].profit <= 0.1) {
lossShortDone++
lossShortDonePer=lossShortDonePer+(data[i].profit+-0.1)
lossShortDonePer = lossShortDonePer + (data[i].profit + -0.1)
}
}
if (data[i].profit>0.1)
{
if (data[i].profit > 0.1) {
lossPlusDone++
lossPlusDonePer=lossPlusDonePer+(data[i].profit+-0.1)
lossPlusDonePer = lossPlusDonePer + (data[i].profit + -0.1)
}
// unixMid = data[i].unixClose
// step++
step=0
// step++
step = 0
profit = profit + d.profit
lastMoney = d.lastMoney
lastCom = lastCom + d.com
......@@ -1050,22 +914,22 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
type: type,
total: total,
allTotal: allTotal,
allDone:allDone,
allDonePer:allDonePer,
allLongDone:allLongDone,
allLongDonePer:allLongDonePer,
allShortDone:allShortDone,
allShortDonePer:allShortDonePer,
targetDone:targetDone,
targetDonePer:targetDonePer,
lossDone:lossDone,
lossDonePer:lossDonePer,
lossPlusDone:lossPlusDone,
lossPlusDonePer:lossPlusDonePer,
lossLongDone:lossLongDone,
lossLongDonePer:lossLongDonePer,
lossShortDone:lossShortDone,
lossShortDonePer:lossShortDonePer,
allDone: allDone,
allDonePer: allDonePer,
allLongDone: allLongDone,
allLongDonePer: allLongDonePer,
allShortDone: allShortDone,
allShortDonePer: allShortDonePer,
targetDone: targetDone,
targetDonePer: targetDonePer,
lossDone: lossDone,
lossDonePer: lossDonePer,
lossPlusDone: lossPlusDone,
lossPlusDonePer: lossPlusDonePer,
lossLongDone: lossLongDone,
lossLongDonePer: lossLongDonePer,
lossShortDone: lossShortDone,
lossShortDonePer: lossShortDonePer,
avgLevel: maxLevel / total,
maxLevel: maxLevel,
dur: dur,
......@@ -1081,7 +945,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
dateString: dateString,
runupString: runupString,
sideString: sideString,
profitLossString:profitLossString,
profitLossString: profitLossString,
firstMaxAllocatedMoney: firstMaxAllocatedMoney,
maxAllocatedMoney: maxAllocatedMoney,
avgAllocatedMoney: maxAllocatedMoney / total,
......@@ -1106,8 +970,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
if (opt.allDonePer <1)
return null
if (opt.allDonePer < 1)
return null
// if (opt.allDone <60)
// return null
......@@ -1123,9 +987,26 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
delete opt.allTotal
delete opt.avgLevel
delete opt.maxDays
delete opt.avgDays
delete opt.maxRuntime
delete opt.allLoss
delete opt.totalFinal
delete opt.totalPlus
delete opt.firstMaxAllocatedMoney
delete opt.maxAllocatedMoney
delete opt.avgAllocatedMoney
delete opt.avgReserve
delete opt.percentage
delete opt.allocatedReserve
delete opt.minus
delete opt.risk
delete opt.levels
return opt
return opt
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment