Commit 34cf61c0 authored by Ahmad Nemati's avatar Ahmad Nemati

init

parent a35e3027
......@@ -4,19 +4,19 @@ let _ = require('lodash')
let directory
let configFileName
let csvFile
let checks=[]
let drawDown=[30,40,50]
let checks = []
let drawDown = [30, 40, 50]
//const perf = require('execution-time')();
run()
async function run() {
var args = process.argv.slice(2);
directory = args[0]
configFileName=args[1]
checks=args[2]
configFileName = args[1]
checks = args[2]
await makeStatus(directory, '1')
// perf.start()
let configs = await fs.readFileSync('./configs/'+configFileName, 'utf8')
let configs = await fs.readFileSync('./configs/' + configFileName, 'utf8')
checks = await fs.readFileSync('./detail.json', 'utf8')
configs = JSON.parse(configs)
let arr = []
......@@ -25,7 +25,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))
arr.push(csv.parse(directory, files[i], configs.data, configs.risk, configs.pfTrade, configs.side, configs.riskFreeLevel, JSON.parse(checks), configs.onlyShortLong, configs.loss))
}
arr = await Promise.all(arr)
......@@ -35,6 +35,7 @@ async function run() {
for (let i = 0; i < arr.length; i++) {
let inline = arr[i]
for (let j = 0; j < inline.length; j++) {
if (inline[j].maxLevel < configs.level)
arr2.push(inline[j])
......@@ -61,7 +62,6 @@ async function run() {
}
let arr20MaxNew = []
let arrReservCompoundNew = []
for (let i = 0; i < 1000; i++) {
......@@ -78,8 +78,8 @@ async function run() {
let timestamp = Date.now()
try {
await fs.mkdirSync('result/'+configFileName+'/' + csvFile)
await fs.mkdirSync('result/'+configFileName+'/' + csvFile+'/default')
await fs.mkdirSync('result/' + configFileName + '/' + csvFile)
await fs.mkdirSync('result/' + configFileName + '/' + csvFile + '/default')
// await fs.mkdirSync('result/' + csvFile+'/drawDown30')
// await fs.mkdirSync('result/' + csvFile+'/drawdown40')
// await fs.mkdirSync('result/' + csvFile+'/drawdown50')
......@@ -89,9 +89,9 @@ async function run() {
await fs.unlinkSync(directory + '/' + csvFile)
// createfileADV('allDataSortedByProfit', JSON.stringify(arr2, null, 2))
createfileADV('default','profitPerMonth1000', JSON.stringify(arr3, null, 2))
createfileADV('default', 'profitPerMonth1000', JSON.stringify(arr3, null, 2))
// createfileADV('percentage1000', JSON.stringify(arrResrv200, null, 2))
createfileADV('default','compound1000', JSON.stringify(arr1000Compound, null, 2))
createfileADV('default', 'compound1000', JSON.stringify(arr1000Compound, null, 2))
// createfileADV('allocatedReservePerMonthUnder3', JSON.stringify(arr20MaxNew, null, 2))
// createfileADV('allocatedReserveCompoundUnder3' , JSON.stringify(arrReservCompoundNew, null, 2))
......@@ -120,7 +120,7 @@ async function run() {
// createfileADV('allocatedReservePerMonthUnder2', JSON.stringify(arr20MaxNew, null, 2))
// createfileADV('allocatedReserveCompoundUnder2' , JSON.stringify(arrReservCompoundNew, null, 2))
startAgain(arr, configs.start,configs.level)
startAgain(arr, configs.start, configs.level)
// generateBaseDrawDown(arr2)
// generateDrawDownBaseStart(arr2,configs.start)
console.log('Done')
......@@ -129,26 +129,24 @@ async function run() {
// console.log(d)
}
async function generateBaseDrawDown(arrLast)
{
async function generateBaseDrawDown(arrLast) {
for (let z=0;z<drawDown.length;z++)
{
let arr2=arrLast
let newArr=[]
for (let z = 0; z < drawDown.length; z++) {
let arr2 = arrLast
let newArr = []
for (let i=0;i<arr2.length;i++) {
for (let i = 0; i < arr2.length; i++) {
// console.log(arr2[i].drawDown)
if (arr2[i].drawDown >= drawDown[z])
newArr.push(arr2[i])
}
arr2=newArr
arr2 = newArr
arr2 = _.orderBy(arr2, ['profitPerMonthDrawDown'], ['desc']);
let arr20Max = []
let arr1000Compound = []
let arr3=[]
let arr3 = []
let arrReserv = _.orderBy(arr2, ['percentage'], ['asc']);
let arrCompound = _.orderBy(arr2, ['CompoundPerMonthDrawDown'], ['desc']);
......@@ -164,7 +162,6 @@ async function generateBaseDrawDown(arrLast)
}
let arr20MaxNew = []
let arrReservCompoundNew = []
for (let i = 0; i < 1000; i++) {
......@@ -178,29 +175,26 @@ async function generateBaseDrawDown(arrLast)
}
createfileADV('drawDown'+drawDown[z],'profitPerMonth1000DrawDown'+drawDown[z], JSON.stringify(arr3, null, 2))
createfileADV('drawDown'+drawDown[z],'compound1000DrawDown'+drawDown[z], JSON.stringify(arr1000Compound, null, 2))
createfileADV('drawDown' + drawDown[z], 'profitPerMonth1000DrawDown' + drawDown[z], JSON.stringify(arr3, null, 2))
createfileADV('drawDown' + drawDown[z], 'compound1000DrawDown' + drawDown[z], JSON.stringify(arr1000Compound, null, 2))
}
}
async function generateDrawDownBaseStart(arrLast,start)
{
for (let z=0;z<drawDown.length;z++)
{
async function generateDrawDownBaseStart(arrLast, start) {
for (let z = 0; z < drawDown.length; z++) {
let arr2 = arrLast
let newArr=[]
let newArr = []
let arr3 = []
for (let i=0;i<arr2.length;i++) {
for (let i = 0; i < arr2.length; i++) {
// console.log(arr2[i].drawDown)
if (arr2[i].drawDown >= drawDown[z] && arr2[i].maxAllocatedMoney < start)
newArr.push(arr2[i])
}
// console.log(arr2)
arr2=newArr
arr2 = newArr
arr2 = _.without(arr2, undefined, null);
arr2 = _.orderBy(arr2, ['profitPerMonthDrawDown'], ['desc']);
let arr20Max = []
......@@ -220,7 +214,6 @@ async function generateDrawDownBaseStart(arrLast,start)
}
let arr20MaxNew = []
let arrReservCompoundNew = []
for (let i = 0; i < 1000; i++) {
......@@ -237,9 +230,9 @@ async function generateDrawDownBaseStart(arrLast,start)
// await fs.unlinkSync(directory + '/' + csvFile)
// createfileADV('allDataSortedByProfit', JSON.stringify(arr2, null, 2))
createfileADV('drawDown'+drawDown[z],'profitPerMonth1000StartDrawDown'+drawDown[z], JSON.stringify(arr3, null, 2))
createfileADV('drawDown' + drawDown[z], 'profitPerMonth1000StartDrawDown' + drawDown[z], JSON.stringify(arr3, null, 2))
// createfileADV('percentage1000', JSON.stringify(arrResrv200, null, 2))
createfileADV('drawDown'+drawDown[z],'compound1000StartDrawDown'+drawDown[z], JSON.stringify(arr1000Compound, null, 2))
createfileADV('drawDown' + drawDown[z], 'compound1000StartDrawDown' + drawDown[z], JSON.stringify(arr1000Compound, null, 2))
// createfileADV('allocatedReservePerMonthUnder3', JSON.stringify(arr20MaxNew, null, 2))
// createfileADV('allocatedReserveCompoundUnder3' , JSON.stringify(arrReservCompoundNew, null, 2))
......@@ -247,7 +240,7 @@ async function generateDrawDownBaseStart(arrLast,start)
}
async function startAgain(arr, start,level) {
async function startAgain(arr, start, level) {
let count = 0
let arr2 = []
let arr3 = []
......@@ -255,11 +248,10 @@ async function startAgain(arr, start,level) {
let inline = arr[i]
inline = _.without(inline, undefined, null);
for (let j = 0; j < inline.length; j++) {
if (inline[j].maxAllocatedMoney < start && inline[j].maxLevel < level)
if (inline[j].maxAllocatedMoney < start)
arr2.push(inline[j])
}
}
// console.log(arr2)
......@@ -310,9 +302,9 @@ async function startAgain(arr, start,level) {
// await fs.unlinkSync(directory + '/' + csvFile)
// createfileADV('allDataSortedByProfit', JSON.stringify(arr2, null, 2))
createfileADV('default','profitPerMonth1000Start', JSON.stringify(arr3, null, 2))
createfileADV('default', 'profitPerMonth1000Start', JSON.stringify(arr3, null, 2))
// createfileADV('percentage1000', JSON.stringify(arrResrv200, null, 2))
createfileADV('default','compound1000Start', JSON.stringify(arr1000Compound, null, 2))
createfileADV('default', 'compound1000Start', JSON.stringify(arr1000Compound, null, 2))
// createfileADV('allocatedReservePerMonthUnder3', JSON.stringify(arr20MaxNew, null, 2))
// createfileADV('allocatedReserveCompoundUnder3' , JSON.stringify(arrReservCompoundNew, null, 2))
......@@ -328,9 +320,9 @@ function createfile(data) {
});
}
function createfileADV(type,filename, data) {
function createfileADV(type, filename, data) {
return new Promise(function (resolve, reject) {
fs.writeFile('result/'+configFileName+'/' + csvFile + '/'+type+ '/' + filename + '.json', data, 'utf8', function (err) {
fs.writeFile('result/' + configFileName + '/' + csvFile + '/' + type + '/' + filename + '.json', data, 'utf8', function (err) {
if (err) reject(err);
else resolve(data);
});
......
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