Commit 6390824b authored by Ahmad Nemati's avatar Ahmad Nemati

git pu

parent a085766f
......@@ -11,7 +11,7 @@ let candles = []
let timeFrame = 0
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData, fft, fftPercent, fftRunup, fftPercentRunup, fftDiffDrawDownProfit,fftDrawDown, usage) {
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData, fft, fftPercent, fftRunup, fftPercentRunup, fftDiffDrawDownProfit, fftDrawDown, ddPlusRunCount, usage) {
let type = config.type + ' param:' + config.param + ' base:' + config.base + ' target:' + config.target + ' targetPercentage:' + targetPercentage.enable
if (usage === 'fft') {
type = type + ' ' + usage + ' ' + fft
......@@ -19,14 +19,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
type = type + ' ' + usage + ' ' + fftPercent
} else if (usage === 'fftRunup') {
type = type + ' ' + usage + ' ' + fftRunup
} else if (usage ==='fftDiffDrawDownProfit') {
} else if (usage === 'fftDiffDrawDownProfit') {
type = type + ' ' + usage + ' ' + fftDiffDrawDownProfit
}
else if (usage ==='fftPercentRunup') {
type = type + ' ' + usage + ' Count:' + fftPercentRunup.count +' Percent:'+fftPercentRunup.percent
}
else if (usage ==='fftDrawDown') {
} else if (usage === 'fftPercentRunup') {
type = type + ' ' + usage + ' Count:' + fftPercentRunup.count + ' Percent:' + fftPercentRunup.percent
} else if (usage === 'fftDrawDown') {
type = type + ' ' + usage + ' ' + fftDrawDown
} else if (usage === 'ddPlusRunCount') {
type = type + ' ' + usage + ' ' + ddPlusRunCount
}
......@@ -53,7 +53,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let maxLevel = 0
let maxRuntime = 0
let realProfit = 0
let dateString=''
let dateString = ''
// console.log(data)
......@@ -69,13 +69,13 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let detailLevel = []
let durDetail = []
let runBefore = false
let canCreateRunupPercent=false
let canCreateRunupPercent = false
let countDrop = 0
let allLossProfit = 0
let drawDownPlusRunUpCount = 0
let countDropRunup = 0
let fftDrawDownPercent=0
let fftDrawDownPercent = 0
let allLossProfitRunup = 0
let diffDrawdownProfitAll = 0
......@@ -106,51 +106,63 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
if (usage === 'fft') {
if (countDrop < fft)
runBefore=false
runBefore = false
else
runBefore=true
runBefore = true
} else if (usage === 'drawDownPlusRunUpCount') {
if (drawDownPlusRunUpCount < ddPlusRunCount)
runBefore = false
else
runBefore = true
} else if (usage === 'fftPercent') {
if (allLossProfit > fftPercent)
runBefore=false
runBefore = false
else
runBefore=true
}else if (usage === 'fftDrawDown') {
runBefore = true
} else if (usage === 'fftDrawDown') {
if (fftDrawDownPercent > fftDrawDown)
runBefore=false
runBefore = false
else
runBefore=true
}
else if (usage === 'fftRunup') {
runBefore = true
} else if (usage === 'fftRunup') {
if (countDropRunup < fftRunup)
runBefore=false
runBefore = false
else
runBefore=true
} else if (usage ==='fftDiffDrawDownProfit') {
runBefore = true
} else if (usage === 'fftDiffDrawDownProfit') {
if (diffDrawdownProfitAll > fftDiffDrawDownProfit)
runBefore=false
runBefore = false
else
runBefore=true
}
else if (usage ==='fftPercentRunup') {
if (canCreateRunupPercent ===false)
runBefore=false
runBefore = true
} else if (usage === 'fftPercentRunup') {
if (canCreateRunupPercent === false)
runBefore = false
else
runBefore=true
runBefore = true
}
}
if ((data[i].runUp + data[i].drawDown) <0)
{
drawDownPlusRunUpCount++
}
else
{
drawDownPlusRunUpCount=0
}
if (data[i].profit < 0) {
allLossProfit = allLossProfit + data[i].profit
diffDrawdownProfitAll = diffDrawdownProfitAll + (data[i].drawDown - data[i].profit)
fftDrawDownPercent=fftDrawDownPercent+data[i].drawDown
fftDrawDownPercent = fftDrawDownPercent + data[i].drawDown
countDrop++
} else {
allLossProfit = 0
diffDrawdownProfitAll = 0
countDrop = 0
fftDrawDownPercent=0
fftDrawDownPercent = 0
}
if (data[i].runUp < config.target) {
allLossProfitRunup = allLossProfitRunup + data[i].runUp
......@@ -160,35 +172,29 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
countDropRunup = 0
}
if (usage ==='fftPercentRunup')
{
if (usage === 'fftPercentRunup') {
let temp = 0
for (let z = i + 1; z <= (i + fftPercentRunup.count); z++) {
try {
let runup = data[z].runUp
temp = temp + runup
}
catch (e)
{
} catch (e) {
}
}
if (temp <= fftPercentRunup.percent) {
canCreateRunupPercent=true
canCreateRunupPercent = true
}
}
if (runBefore ===false)
if (runBefore === false)
continue
if (step ===0)
dateString=dateString+data[i].openDate.split(' ')[0]+'_'
canCreateRunupPercent=false
if (step === 0)
dateString = dateString + data[i].openDate.split(' ')[0] + '_'
canCreateRunupPercent = false
runBefore = true
let obj
if (step === 0) {
......@@ -490,7 +496,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
totalCompound: sum,
profitPerMonth: Math.abs(profitPerMonth),
compoundPerMonth: compoundPerMonth,
dateString:dateString,
dateString: dateString,
firstMaxAllocatedMoney: firstMaxAllocatedMoney,
maxAllocatedMoney: maxAllocatedMoney,
......
......@@ -64,6 +64,7 @@ async function run() {
i.fftPercentRunup= config.fftPercentRunup
i.fftDiffDrawDownProfit=config.fftDiffDrawDownProfit
i.fftDrawDown=config.fftDrawDown
i.ddPlusRunCount=config.ddPlusRunCount
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,config[i].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].usage)
let d = ai.run(arr, config[i], config[i].risk, config[i].pfTrade, config[i].riskFreeLevel,config[i].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].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,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,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