Commit ec35fdd4 authored by Ahmad Nemati's avatar Ahmad Nemati

init

parent 61b777e3
......@@ -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) {
function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, maxTradeDays, targetPercentage, candlesData,fft,fftPercent,fftRunup,fftPercentRunup,fftDiffDrawDownProfit) {
let type = config.type + ' param:' + config.param + ' base:' + config.base + ' target:' + config.target + ' targetPercentage:' + targetPercentage.enable + ' fft:' + fft + ' fftPercent:' + fftPercent
let saveData = []
candles = candlesData
......@@ -58,6 +58,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let countDropRunup=0
let allLossProfitRunup=0
let diffDrawdownProfitAll=0
let dur
try {
dur = getNewMinDiff(data[0].openDate, data[data.length - 1].closeDate)
......@@ -85,10 +87,12 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
if (data[i].profit <0) {
allLossProfit=allLossProfit+data[i].profit
diffDrawdownProfitAll=diffDrawdownProfitAll+(data[i].drawDown-data[i].profit)
countDrop++
}
else {
allLossProfit=0
diffDrawdownProfitAll=0
countDrop = 0
}
if (data[i].runUp <config.target) {
......@@ -110,7 +114,10 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
// if (allLossProfit> fftPercent)
// continue
if (countDropRunup < fftRunup)
// if (countDropRunup < fftRunup)
// continue
if (diffDrawdownProfitAll> fftDiffDrawDownProfit)
continue
......
......@@ -6,7 +6,7 @@ let moment = require('moment-timezone')
let ai = require('./ai')
async function parse(directory, name, configs, risk, pfTrade, side, riskFreeLevel,detail,onlyShortLong,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup) {
async function parse(directory, name, configs, risk, pfTrade, side, riskFreeLevel,detail,onlyShortLong,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup,fftDiffDrawDownProfit) {
return new Promise(function (resolve, reject) {
let arr = []
......@@ -15,12 +15,12 @@ async function parse(directory, name, configs, risk, pfTrade, side, riskFreeLeve
.pipe(csv.parse({headers: true}))
.on('error', error => reject(error))
.on('data', row => arr.push(row))
.on('end', rowCount => resolve(initData(arr, configs, name, risk, pfTrade, side, riskFreeLevel,detail,onlyShortLong,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup)));
.on('end', rowCount => resolve(initData(arr, configs, name, risk, pfTrade, side, riskFreeLevel,detail,onlyShortLong,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup,fftDiffDrawDownProfit)));
});
}
function initData(data, config, name, risk, pfTrade, side, riskFreeLevel,detail,onlyShortLong,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup) {
function initData(data, config, name, risk, pfTrade, side, riskFreeLevel,detail,onlyShortLong,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup,fftDiffDrawDownProfit) {
data = JSON.stringify(data)
......@@ -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], risk, pfTrade, riskFreeLevel,detail,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup)
let d = ai.run(arr, config[i], risk, pfTrade, riskFreeLevel,detail,loss,dur,maxTradeDays,targetPercentage,candles,fft,fftPercent,fftRunup,fftPercentRunup,fftDiffDrawDownProfit)
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:2}
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:2,fftDiffDrawDownProfit:-0.5}
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=[]
......
......@@ -44,7 +44,7 @@ async function run() {
for (let i = 0; i < files.length; i++)
if (files[i].includes('.csv')) {
csvFile = files[i]
arr.push(csv.parse(directory, files[i], configs.data, configs.risk, configs.pfTrade, configs.side, configs.riskFreeLevel, JSON.parse(checks), configs.onlyShortLong, configs.loss,configs.dur,configs.maxTradeDays,configs.targetPercentage,arr5,configs.fft,configs.fftPercent,configs.fftRunup,configs.fftPercentRunup))
arr.push(csv.parse(directory, files[i], configs.data, configs.risk, configs.pfTrade, configs.side, configs.riskFreeLevel, JSON.parse(checks), configs.onlyShortLong, configs.loss,configs.dur,configs.maxTradeDays,configs.targetPercentage,arr5,configs.fft,configs.fftPercent,configs.fftRunup,configs.fftPercentRunup,configs.fftDiffDrawDownProfit))
}
arr = await Promise.all(arr)
......
console.log(typeof Math.abs(-10.2))
\ No newline at end of file
console.log(-1.5,-1)
function calPer(entry, last) {
return ((last - entry) / entry) * 100
}
\ No newline at end of file
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