Commit fd8b0d66 authored by Ahmad Nemati's avatar Ahmad Nemati

git pu

parent f1daad1f
......@@ -9,9 +9,12 @@ let dynamic = 'dynamic'
let elsa = 'elsa'
let candles = []
let timeFrame = 0
let avgRunup = 0
let avgDrawdown = 0
let avgProfit = 0
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData, fft, fftPercent, fftRunup, fftPercentRunup, fftDiffDrawDownProfit, fftDrawDown, ddPlusRunCount, ddPlusRunPercent, usage) {
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData, fft, fftPercent, fftRunup, fftPercentRunup, fftDiffDrawDownProfit, fftDrawDown, ddPlusRunCount, ddPlusRunPercent,ProfitZeroRunupProfit,ProfitZeroRunupDrawDown, usage) {
let type = config.type + ' param:' + config.param + ' base:' + config.base + ' target:' + config.target + ' targetPercentage:' + targetPercentage.enable
if (usage === 'fft') {
type = type + ' ' + usage + ' ' + fft
......@@ -30,6 +33,12 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
} else if (usage === 'ddPlusRunPercent') {
type = type + ' ' + usage + ' ' + ddPlusRunPercent
}
else if (usage === 'ProfitZeroRunupProfit') {
type = type + ' ' + usage + ' ' + ProfitZeroRunupProfit
}
else if (usage === 'ProfitZeroRunupDrawDown') {
type = type + ' ' + usage + ' ' + ProfitZeroRunupDrawDown
}
let saveData = []
......@@ -78,7 +87,9 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let countDrop = 0
let allLossProfit = 0
let drawDownPlusRunUpCount = 0
let drawDownPlusRunUpPercent= 0
let drawDownPlusRunUpPercent = 0
let VarProfitZeroRunupProfit=0
let VarProfitZeroRunupDrawDown=0
let countDropRunup = 0
let fftDrawDownPercent = 0
......@@ -103,6 +114,15 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
if (pfTrade < newP)
return null
for (let i = 0; i < data.length; i++) {
avgProfit = avgProfit + data[i].profit
avgDrawdown = avgDrawdown + data[i].drawDown
avgRunup = avgRunup + data[i].runUp
}
avgProfit = avgProfit / data.length
avgRunup = avgRunup / data.length
avgDrawdown = avgDrawdown / data.length
for (let i = 0; i < data.length; i++) {
......@@ -152,24 +172,75 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
runBefore = true
}
else if (usage === 'ProfitZeroRunupProfit') {
if (VarProfitZeroRunupProfit > ProfitZeroRunupProfit)
runBefore = false
else
runBefore = true
}
else if (usage === 'ProfitZeroRunupDrawDown') {
if (VarProfitZeroRunupDrawDown > ProfitZeroRunupDrawDown)
runBefore = false
else
runBefore = true
}
}
if ((data[i].runUp + data[i].drawDown) < 0) {
drawDownPlusRunUpCount++
drawDownPlusRunUpPercent=drawDownPlusRunUpPercent+(data[i].runUp + data[i].drawDown)
drawDownPlusRunUpPercent = drawDownPlusRunUpPercent + (data[i].runUp + data[i].drawDown)
} else {
drawDownPlusRunUpCount = 0
drawDownPlusRunUpPercent=0
drawDownPlusRunUpPercent = 0
}
if ((data[i].profit + data[i].runUp) < 0) {
} else {
//zero
}
if ((data[i].profit + data[i].drawDown) < 0) {
} else {
//zero
}
if (data[i].drawDown < avgDrawdown) {
} else {
//zero
}
if (data[i].runUp < avgRunup) {
} else {
//zero
}
if (data[i].profit < 0) {
allLossProfit = allLossProfit + data[i].profit
diffDrawdownProfitAll = diffDrawdownProfitAll + (data[i].drawDown - data[i].profit)
fftDrawDownPercent = fftDrawDownPercent + 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
diffDrawdownProfitAll = 0
countDrop = 0
fftDrawDownPercent = 0
......@@ -204,8 +275,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
continue
if (step === 0) {
dateString = dateString + data[i].openDate.split(' ')[0] + '_'
runupString=runupString+data[i].runUp + '_'
sideString=sideString+data[i].side + '_'
runupString = runupString + data[i].runUp + '_'
sideString = sideString + data[i].side + '_'
}
canCreateRunupPercent = false
runBefore = true
......@@ -510,8 +581,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
profitPerMonth: Math.abs(profitPerMonth),
compoundPerMonth: compoundPerMonth,
dateString: dateString,
runupString:runupString,
sideString:sideString,
runupString: runupString,
sideString: sideString,
firstMaxAllocatedMoney: firstMaxAllocatedMoney,
maxAllocatedMoney: maxAllocatedMoney,
......@@ -537,8 +608,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
if (opt.total ===0)
return null
if (opt.total === 0)
return null
if (needPrintData) {
fs.writeFile('detail/' + opt.platform + '-' + 'param' + config.param + 'base' + config.base + 'target' + config.target + '.json', JSON.stringify(saveData, null, 2), 'utf8', function (err) {
......
......@@ -31,60 +31,35 @@ async function format(name) {
// console.log(res.length)
let counter = 0
let sum=0
let green=0
let red=0
for (let i = 1; i < (res.length ); i++) {
let d = res[i].split(',')
let profit = parseFloat(d[7])
let runup= parseFloat(d[8])
let drawDown=parseFloat(d[9])
console.log(drawDown)
if (profit+drawDown >0)
green++
else
red++
// if (runup>=-1.66)
// green++
// else
// red++
// console.log(runup)
sum=sum+runup
for (let i = 1; i < (res.length - 1); i++) {
// let d = res[i].split(',')
// try {
//
// let runup = parseFloat(d[8])
// if (runup>=15) {
//
// let temp=0
// for (let z=i-5;z<i;z++)
// {
// let d2 = res[z].split(',')
// let inlineRunup=parseFloat(d2[8])
// temp=temp+inlineRunup
//
// }
// if (temp<15) {
// counter++
// console.log('run up:' + runup + ' with 5 inline runup:' + temp)
// }
//
// }
//
//
//
//
//
// } catch (e) {
//
// }
let temp = 0
for (let z = i + 1; z <= (i + 7); z++) {
try {
let d = res[z].split(',')
let runup = parseFloat(d[8])
temp = temp + runup
}
catch (e)
{
}
}
if (temp <= 10) {
counter++
console.log('run 15 up:'+temp )
}
}
console.log(green,red)
}
console.log(counter)
}
......
......@@ -66,6 +66,9 @@ async function run() {
i.fftDrawDown=config.fftDrawDown
i.ddPlusRunCount=config.ddPlusRunCount
i.ddPlusRunPercent=config.ddPlusRunPercent
i.ProfitZeroRunupProfit=config.ProfitZeroRunupProfit
i.ProfitZeroRunupDrawDown=config.ProfitZeroRunupDrawDown
i.usage= config.usage
i.detail=config.detail
......
......@@ -140,7 +140,7 @@ function initData(data, config, name, risk, pfTrade, side, riskFreeLevel,detail,
let cz = []
for (let i = 0; i < config.length; i++) {
let d = ai.run(arr, config[i], config[i].risk, config[i].pfTrade, config[i].riskFreeLevel,detail,config[i].loss,config[i].dur,config[i].maxTradeDays,config[i].targetPercentage,candles,config[i].fft,config[i].fftPercent,config[i].fftRunup,config[i].fftPercentRunup,config[i].fftDiffDrawDownProfit,config[i].fftDrawDown,config[i].ddPlusRunCount,config[i].ddPlusRunPercent,config[i].usage)
let d = ai.run(arr, config[i], config[i].risk, config[i].pfTrade, config[i].riskFreeLevel,detail,config[i].loss,config[i].dur,config[i].maxTradeDays,config[i].targetPercentage,candles,config[i].fft,config[i].fftPercent,config[i].fftRunup,config[i].fftPercentRunup,config[i].fftDiffDrawDownProfit,config[i].fftDrawDown,config[i].ddPlusRunCount,config[i].ddPlusRunPercent,config[i].ProfitZeroRunupProfit,config[i].ProfitZeroRunupDrawDown,config[i].usage)
if (d !== null)
cz.push(d)
}
......
......@@ -20,7 +20,7 @@ run()
async function run()
{
let obj={sort:'profitPerMonthDrawDown',alocatedReserve:3,alocatedReserveCompound:3,risk:0,start:10000,pfTrade:2,side:'both',riskFreeLevel:100,onlyShortLong:false,loss:0,level:200,dur:1500,maxTradeDays:40,targetPercentage:{enable:true},fft:1,fftPercent:-2,fftRunup:2,fftPercentRunup:{count:7,percent:15},fftDiffDrawDownProfit:-0.5,fftDrawDown:-1,ddPlusRunCount:4,ddPlusRunPercent:-2,usage:'fft'}
let obj={sort:'profitPerMonthDrawDown',alocatedReserve:3,alocatedReserveCompound:3,risk:0,start:10000,pfTrade:2,side:'both',riskFreeLevel:100,onlyShortLong:false,loss:0,level:200,dur:1500,maxTradeDays:40,targetPercentage:{enable:true},fft:1,fftPercent:-2,fftRunup:2,fftPercentRunup:{count:7,percent:15},fftDiffDrawDownProfit:-0.5,fftDrawDown:-1,ddPlusRunCount:4,ddPlusRunPercent:-2,ProfitZeroRunupProfit:-2,ProfitZeroRunupDrawDown:-20,usage:'fft'}
let detail=['configs2.json-211021092159_O1_BNC_BTCUSD_Lp1_Y211020a - Copy_Mn.csv&zarib param:1.1 base:200 target:1']
obj.detail=detail
let all=[]
......
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