Commit b3afa61f authored by Ahmad Nemati's avatar Ahmad Nemati

init

parent a4e1231d
......@@ -162,7 +162,8 @@ function run(data, config,risk,pfTrade) {
minus: minus,
risk:risk,
levels:newLevelText,
pftrade:newP
pftrade:newP,
countOfTrade:data.length
}
......
......@@ -6,61 +6,63 @@ let moment = require('moment-timezone')
let ai = require('./ai')
async function parse(directory,name, configs,risk,pfTrade) {
async function parse(directory, name, configs, risk, pfTrade, side) {
return new Promise(function (resolve, reject) {
let arr = []
// console.log(name)
fs.createReadStream(directory+'/' + name)
// console.log(name)
fs.createReadStream(directory + '/' + name)
.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)));
.on('end', rowCount => resolve(initData(arr, configs, name, risk, pfTrade, side)));
});
}
function initData(data, config, name,risk,pfTrade) {
function initData(data, config, name, risk, pfTrade, side) {
data = JSON.stringify(data)
data = _.replace(data, new RegExp('Trade #', 'g'), 'id')
data = _.replace(data, new RegExp('Profit %', 'g'), 'profit')
data = _.replace(data, new RegExp('Run-up %', 'g'), 'runUp')
data = _.replace(data, new RegExp('Drawdown %', 'g'), 'drawDown')
data = _.replace(data, new RegExp('Price', 'g'), 'price')
data = _.replace(data, new RegExp('Date/Time', 'g'), 'date')
// data = _.replace(data, new RegExp('Open_Price', 'g'), 'openPrice')
// data = _.replace(data, new RegExp('Num.', 'g'), 'id')
// data = _.replace(data, new RegExp('Open_Price', 'g'), 'openPrice')
// data = _.replace(data, new RegExp('Num.', 'g'), 'id')
let t = data
// console.log(data)
// console.log(data)
data = JSON.parse(data)
let arr = []
let arr = []
if (t.includes('Open_Time')) {
for (let i = 0; i < data.length; i++) {
if (data.length -1 ===i)
if (data.length - 1 === i)
continue
// console.log(data[i])
// console.log(data[i])
if (data[i].dAgeHiPrfInPrPc_RunUpPc === '')
continue
let obj = {}
obj.id = (i+1)
obj.id = (i + 1)
obj.signal = name
if (data[i].Type.includes('Buy'))
obj.side = 'LONG'
else
obj.side = 'SHORT'
if (side === 'long' && obj.side === 'SHORT')
continue
if (side === 'short' && obj.side === 'LONG')
continue
obj.openPrice = parseFloat(data[i].Open_price)
obj.closePrice = parseFloat(data[i].Close_price)
obj.openDate = moment(data[i].Open_Time,'YYYY.MM.DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')
obj.openDate = moment(data[i].Open_Time, 'YYYY.MM.DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')
obj.closeDate = moment(data[i].Close_Time,'YYYY.MM.DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')
obj.closeDate = moment(data[i].Close_Time, 'YYYY.MM.DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')
obj.profit = parseFloat(data[i].dPrfPipWrtOpPrPc)
obj.runUp = parseFloat(data[i].dAgeHiPrfInPrPc_RunUpPc)
......@@ -103,10 +105,9 @@ function initData(data, config, name,risk,pfTrade) {
}
let cz = []
for (let i = 0; i < config.length; i++) {
cz.push(ai.run(arr, config[i],risk,pfTrade))
cz.push(ai.run(arr, config[i], risk, pfTrade))
}
return cz
......
......@@ -20,7 +20,7 @@ run()
async function run()
{
let obj={sort:'profitPerMonthDrawDown',alocatedReserve:3,alocatedReserveCompound:3,risk:0,start:10000,pfTrade:0.1}
let obj={sort:'profitPerMonthDrawDown',alocatedReserve:3,alocatedReserveCompound:3,risk:0,start:10000,pfTrade:0.1,side:'both'}
let all=[]
for (let i=0;i<arr.length;i++)
all.push(add(arr[i]))
......
......@@ -20,7 +20,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))
arr.push(csv.parse(directory, files[i], configs.data, configs.risk, configs.pfTrade,configs.side))
}
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