Commit 0a8bca4c authored by Ahmad Nemati's avatar Ahmad Nemati

init

parent 0fa9862e
......@@ -6,7 +6,7 @@ let zarib = 'zarib'
let base = 'base'
function run(data, config) {
function run(data, config,risk) {
let commision = config.commision
let money = config.base
let total = 0
......@@ -65,6 +65,13 @@ function run(data, config) {
}
}
let firstMaxAllocatedMoney=maxAllocatedMoney
if (config.param !==0)
{
for (let i=0;i<risk;i++)
maxAllocatedMoney=maxAllocatedMoney*config.param
}
let dur = getMinDiff(data[0].openDate, data[data.length - 1].closeDate)
......@@ -110,7 +117,10 @@ function run(data, config) {
totalCompound: sum,
profitPerMonth: Math.abs(profitPerMonth),
compoundPerMonth: compoundPerMonth,
risk:risk,
firstMaxAllocatedMoney:firstMaxAllocatedMoney,
maxAllocatedMoney: maxAllocatedMoney,
avgAllocatedMoney: maxAllocatedMoney / total,
drawDown: drawDown,
CompoundPerMonthDrawDown:compoundPerMonth/drawDown,
......
......@@ -6,7 +6,7 @@ let moment = require('moment-timezone')
let ai = require('./ai')
async function parse(directory,name, configs) {
async function parse(directory,name, configs,risk) {
return new Promise(function (resolve, reject) {
let arr = []
// console.log(name)
......@@ -14,12 +14,12 @@ async function parse(directory,name, configs) {
.pipe(csv.parse({headers: true}))
.on('error', error => reject(error))
.on('data', row => arr.push(row))
.on('end', rowCount => resolve(initData(arr, configs, name)));
.on('end', rowCount => resolve(initData(arr, configs, name,risk)));
});
}
function initData(data, config, name) {
function initData(data, config, name,risk) {
data = JSON.stringify(data)
......@@ -106,7 +106,7 @@ function initData(data, config, name) {
let cz = []
for (let i = 0; i < config.length; i++) {
cz.push(ai.run(arr, config[i]))
cz.push(ai.run(arr, config[i],risk))
}
return cz
......
......@@ -20,7 +20,7 @@ run()
async function run()
{
let obj={sort:'profitPerMonthDrawDown',alocatedReserve:3,alocatedReserveCompound:3}
let obj={sort:'profitPerMonthDrawDown',alocatedReserve:3,alocatedReserveCompound:3,risk:0}
let all=[]
for (let i=0;i<arr.length;i++)
all.push(add(arr[i]))
......
......@@ -19,7 +19,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))
arr.push(csv.parse(directory, files[i], configs.data,configs.risk))
}
arr = await Promise.all(arr)
......
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