Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
ai
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
ai
Commits
8e583ece
Commit
8e583ece
authored
May 09, 2022
by
Ahmad Nemati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git pu
parent
49655c01
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
208 additions
and
327 deletions
+208
-327
ai.js
ai.js
+208
-327
No files found.
ai.js
View file @
8e583ece
...
@@ -12,36 +12,33 @@ let timeFrame = 0
...
@@ -12,36 +12,33 @@ let timeFrame = 0
let
avgRunup
=
0
let
avgRunup
=
0
let
avgDrawdown
=
0
let
avgDrawdown
=
0
let
avgProfit
=
0
let
avgProfit
=
0
let
startt
=
30
let
startt
=
30
//
//
function
run
(
data
,
config
,
risk
,
pfTrade
,
riskFreeLevel
,
detail
,
loss
,
durs
,
maxTradeDays
,
targetPercentage
,
candlesData
,
fft
,
ProfitZeroProfit
,
fftRunup
,
ProfitZeroProfitRunup
,
ProfitZeroDrawDownProfit
,
ProfitZeroDrawDown
,
ddPlusRunCount
,
RunupDrawDownZeroRunupDrawDown
,
ProfitZeroRunupProfit
,
ProfitZeroRunupDrawDown
,
RunUpDrawDownZeroProfit
,
RunUpDrawDownZeroDrawDownProfit
,
RunUpDrawDownZeroDrawdown
,
RunUpDrawDownZeroRunupProfit
,
RunupZeroRunupDrawDown
,
RunupZeroProfit
,
RunupZeroProfitDrawDown
,
RunupZeroDrawDown
,
RunupZeroProfitRunup
,
DrawDownZeroDrawDown
,
DrawDownnZeroProfit
,
DrawDownZeroProfitDrawDown
,
DrawDownZeroProfitRunup
,
DrawDownZeroRunupDrawDown
,
ProfitDrawDownZeroDrawDown
,
ProfitDrawDownZeroProfit
,
ProfitDrawDownZeroProfitDrawDown
,
ProfitDrawDownZeroProfitRunup
,
ProfitDrawDownZeroRunupDrawDown
function
run
(
data
,
config
,
risk
,
pfTrade
,
riskFreeLevel
,
detail
,
loss
,
durs
,
maxTradeDays
,
targetPercentage
,
candlesData
,
fft
,
ProfitZeroProfit
,
fftRunup
,
ProfitZeroProfitRunup
,
ProfitZeroDrawDownProfit
,
ProfitZeroDrawDown
,
ddPlusRunCount
,
RunupDrawDownZeroRunupDrawDown
,
ProfitZeroRunupProfit
,
ProfitZeroRunupDrawDown
,
RunUpDrawDownZeroProfit
,
RunUpDrawDownZeroDrawDownProfit
,
RunUpDrawDownZeroDrawdown
,
RunUpDrawDownZeroRunupProfit
,
RunupZeroRunupDrawDown
,
RunupZeroProfit
,
RunupZeroProfitDrawDown
,
RunupZeroDrawDown
,
RunupZeroProfitRunup
,
DrawDownZeroDrawDown
,
DrawDownnZeroProfit
,
DrawDownZeroProfitDrawDown
,
DrawDownZeroProfitRunup
,
DrawDownZeroRunupDrawDown
,
ProfitDrawDownZeroDrawDown
,
ProfitDrawDownZeroProfit
,
ProfitDrawDownZeroProfitDrawDown
,
ProfitDrawDownZeroProfitRunup
,
ProfitDrawDownZeroRunupDrawDown
,
ProfitRunupZeroDrawDown
,
ProfitRunupZeroProfit
,
ProfitRunupZeroProfitDrawDown
,
ProfitRunupZeroProfitRunup
,
ProfitRunupZeroRunupDrawDown
,
usage
)
{
,
ProfitRunupZeroDrawDown
,
ProfitRunupZeroProfit
,
ProfitRunupZeroProfitDrawDown
,
ProfitRunupZeroProfitRunup
,
ProfitRunupZeroRunupDrawDown
,
usage
)
{
let
data2
=
[]
let
data2
=
[]
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
{
let
ft
=
data
[
i
].
openDate
.
split
(
'
-
'
)
let
ft
=
data
[
i
].
openDate
.
split
(
'
-
'
)
let
y
=
parseFloat
(
ft
[
0
])
let
y
=
parseFloat
(
ft
[
0
])
let
m
=
parseFloat
(
ft
[
1
])
let
m
=
parseFloat
(
ft
[
1
])
if
(
y
<
2017
)
if
(
y
<
2017
)
continue
continue
if
(
y
>
2017
)
{
if
(
y
>
2017
)
{
data2
.
push
(
data
[
i
])
data2
.
push
(
data
[
i
])
continue
continue
}
}
if
(
y
===
2017
)
if
(
y
===
2017
)
{
{
if
(
m
<
9
)
if
(
m
<
9
)
continue
continue
else
else
data2
.
push
(
data
[
i
])
data2
.
push
(
data
[
i
])
}
}
}
}
data
=
data2
data
=
data2
let
type
=
config
.
type
+
'
param:
'
+
config
.
param
+
'
base:
'
+
config
.
base
+
'
target:
'
+
config
.
target
+
'
targetPercentage:
'
+
targetPercentage
.
enable
let
type
=
config
.
type
+
'
param:
'
+
config
.
param
+
'
base:
'
+
config
.
base
+
'
target:
'
+
config
.
target
+
'
targetPercentage:
'
+
targetPercentage
.
enable
...
@@ -61,117 +58,63 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -61,117 +58,63 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
type
=
type
+
'
'
+
usage
+
'
'
+
ddPlusRunCount
type
=
type
+
'
'
+
usage
+
'
'
+
ddPlusRunCount
}
else
if
(
usage
===
'
RunupDrawDownZeroRunupDrawDown
'
)
{
}
else
if
(
usage
===
'
RunupDrawDownZeroRunupDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupDrawDownZeroRunupDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
RunupDrawDownZeroRunupDrawDown
}
}
else
if
(
usage
===
'
ProfitZeroRunupProfit
'
)
{
else
if
(
usage
===
'
ProfitZeroRunupProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitZeroRunupProfit
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitZeroRunupProfit
}
}
else
if
(
usage
===
'
ProfitZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
ProfitZeroRunupDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitZeroRunupDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitZeroRunupDrawDown
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroProfit
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroProfit
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroProfit
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroDrawDownProfit
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroDrawDownProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroDrawDownProfit
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroDrawDownProfit
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroDrawdown
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroDrawdown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroDrawdown
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroDrawdown
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroRunupProfit
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroRunupProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroRunupProfit
type
=
type
+
'
'
+
usage
+
'
'
+
RunUpDrawDownZeroRunupProfit
}
}
else
if
(
usage
===
'
RunupZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
RunupZeroRunupDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroRunupDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroRunupDrawDown
}
}
else
if
(
usage
===
'
RunupZeroProfit
'
)
{
else
if
(
usage
===
'
RunupZeroProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfit
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfit
}
}
else
if
(
usage
===
'
RunupZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
RunupZeroProfitDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfitDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfitDrawDown
}
}
else
if
(
usage
===
'
RunupZeroDrawDown
'
)
{
else
if
(
usage
===
'
RunupZeroDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroDrawDown
}
}
else
if
(
usage
===
'
RunupZeroProfitRunup
'
)
{
else
if
(
usage
===
'
RunupZeroProfitRunup
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfitRunup
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfitRunup
}
}
else
if
(
usage
===
'
RunupZeroProfitRunup
'
)
{
else
if
(
usage
===
'
RunupZeroProfitRunup
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfitRunup
type
=
type
+
'
'
+
usage
+
'
'
+
RunupZeroProfitRunup
}
}
else
if
(
usage
===
'
DrawDownZeroDrawDown
'
)
{
else
if
(
usage
===
'
DrawDownZeroDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroDrawDown
}
}
else
if
(
usage
===
'
DrawDownnZeroProfit
'
)
{
else
if
(
usage
===
'
DrawDownnZeroProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownnZeroProfit
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownnZeroProfit
}
}
else
if
(
usage
===
'
DrawDownZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
DrawDownZeroProfitDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroProfitDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroProfitDrawDown
}
}
else
if
(
usage
===
'
DrawDownZeroProfitRunup
'
)
{
else
if
(
usage
===
'
DrawDownZeroProfitRunup
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroProfitRunup
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroProfitRunup
}
}
else
if
(
usage
===
'
DrawDownZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
DrawDownZeroRunupDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroRunupDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
DrawDownZeroRunupDrawDown
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroDrawDown
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroDrawDown
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroProfit
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroProfit
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroProfit
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroProfitDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroProfitDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroProfitDrawDown
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroProfitRunup
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroProfitRunup
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroProfitRunup
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroProfitRunup
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroRunupDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroRunupDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitDrawDownZeroRunupDrawDown
}
}
else
if
(
usage
===
'
ProfitRunupZeroDrawDown
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroDrawDown
}
}
else
if
(
usage
===
'
ProfitRunupZeroProfit
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroProfit
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroProfit
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroProfit
}
}
else
if
(
usage
===
'
ProfitRunupZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroProfitDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroProfitDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroProfitDrawDown
}
}
else
if
(
usage
===
'
ProfitRunupZeroProfitRunup
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroProfitRunup
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroProfitRunup
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroProfitRunup
}
}
else
if
(
usage
===
'
ProfitRunupZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroRunupDrawDown
'
)
{
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroRunupDrawDown
type
=
type
+
'
'
+
usage
+
'
'
+
ProfitRunupZeroRunupDrawDown
}
}
let
saveData
=
[]
let
saveData
=
[]
candles
=
candlesData
candles
=
candlesData
timeFrame
=
candles
[
1
].
t
-
candles
[
0
].
t
timeFrame
=
candles
[
1
].
t
-
candles
[
0
].
t
...
@@ -186,22 +129,22 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -186,22 +129,22 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let
maxDays
=
0
let
maxDays
=
0
let
startDays
=
0
let
startDays
=
0
let
allTotal
=
0
let
allTotal
=
0
let
targetDone
=
0
let
targetDone
=
0
let
targetDonePer
=
0
let
targetDonePer
=
0
let
lossDone
=
0
let
lossDone
=
0
let
allDone
=
0
let
allDone
=
0
let
allDonePer
=
0
let
allDonePer
=
0
let
allLongDone
=
0
let
allLongDone
=
0
let
allLongDonePer
=
0
let
allLongDonePer
=
0
let
lossLongDone
=
0
let
lossLongDone
=
0
let
lossLongDonePer
=
0
let
lossLongDonePer
=
0
let
allShortDone
=
0
let
allShortDone
=
0
let
allShortDonePer
=
0
let
allShortDonePer
=
0
let
lossShortDone
=
0
let
lossShortDone
=
0
let
lossShortDonePer
=
0
let
lossShortDonePer
=
0
let
lossDonePer
=
0
let
lossDonePer
=
0
let
lossPlusDone
=
0
let
lossPlusDone
=
0
let
lossPlusDonePer
=
0
let
lossPlusDonePer
=
0
let
listDays
=
[]
let
listDays
=
[]
let
maxReserve
=
0
let
maxReserve
=
0
let
maxMeta
=
0
let
maxMeta
=
0
...
@@ -213,7 +156,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -213,7 +156,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let
realProfit
=
0
let
realProfit
=
0
let
dateString
=
''
let
dateString
=
''
let
runupString
=
''
let
runupString
=
''
let
profitLossString
=
''
let
profitLossString
=
''
let
sideString
=
''
let
sideString
=
''
// console.log(data)
// console.log(data)
...
@@ -237,9 +180,9 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -237,9 +180,9 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let
RunUpDrawDownAllLossProfit
=
0
let
RunUpDrawDownAllLossProfit
=
0
let
drawDownPlusRunUpCount
=
0
let
drawDownPlusRunUpCount
=
0
let
drawDownPlusRunUpPercent
=
0
let
drawDownPlusRunUpPercent
=
0
let
VarProfitZeroRunupProfit
=
0
let
VarProfitZeroRunupProfit
=
0
let
VarDrawDownZeroProfit
=
0
let
VarDrawDownZeroProfit
=
0
let
VarProfitZeroRunupDrawDown
=
0
let
VarProfitZeroRunupDrawDown
=
0
let
countDropRunup
=
0
let
countDropRunup
=
0
let
ProfitZeroDrawDownPercent
=
0
let
ProfitZeroDrawDownPercent
=
0
...
@@ -249,37 +192,32 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -249,37 +192,32 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
let
diffDrawdownProfitAll
=
0
let
diffDrawdownProfitAll
=
0
let
RunupDrawDownDiffDrawdownProfitAll
=
0
let
RunupDrawDownDiffDrawdownProfitAll
=
0
let
VarRunupZeroDrawDown
=
0
let
VarRunupZeroDrawDown
=
0
let
VarRunupZeroProfit
=
0
let
VarRunupZeroProfit
=
0
let
VarRunupZeroProfitDrawDown
=
0
let
VarRunupZeroProfitDrawDown
=
0
let
VarRunupZeroProfitRunup
=
0
let
VarRunupZeroProfitRunup
=
0
let
VarRunupZeroRunupDrawDown
=
0
let
VarRunupZeroRunupDrawDown
=
0
let
VarDrawDownZeroDrawDown
=
0
let
VarDrawDownnZeroProfit
=
0
let
VarDrawDownZeroProfitDrawDown
=
0
let
VarDrawDownZeroProfitRunup
=
0
let
VarDrawDownZeroRunupDrawDown
=
0
let
VarProfitDrawDownZeroDrawDown
=
0
let
VarProfitDrawDownZeroProfit
=
0
let
VarProfitDrawDownZeroProfitDrawDown
=
0
let
VarProfitDrawDownZeroProfitRunup
=
0
let
VarProfitDrawDownZeroRunupDrawDown
=
0
let
VarDrawDownZeroDrawDown
=
0
let
VarDrawDownnZeroProfit
=
0
let
VarDrawDownZeroProfitDrawDown
=
0
let
VarDrawDownZeroProfitRunup
=
0
let
VarDrawDownZeroRunupDrawDown
=
0
let
VarProfitDrawDownZeroDrawDown
=
0
let
VarProfitDrawDownZeroProfit
=
0
let
VarProfitDrawDownZeroProfitDrawDown
=
0
let
VarProfitDrawDownZeroProfitRunup
=
0
let
VarProfitDrawDownZeroRunupDrawDown
=
0
let
VarProfitRunupZeroDrawDown
=
0
let
VarProfitRunupZeroProfit
=
0
let
VarProfitRunupZeroProfitDrawDown
=
0
let
VarProfitRunupZeroProfitRunup
=
0
let
VarProfitRunupZeroRunupDrawDown
=
0
let
VarProfitRunupZeroDrawDown
=
0
let
VarProfitRunupZeroProfit
=
0
let
VarProfitRunupZeroProfitDrawDown
=
0
let
VarProfitRunupZeroProfitRunup
=
0
let
VarProfitRunupZeroRunupDrawDown
=
0
let
dur
let
dur
...
@@ -311,7 +249,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -311,7 +249,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
allDonePer
<
-
70
)
if
(
allDonePer
<
-
70
)
return
null
return
null
if
(
maxDays
>
maxTradeDays
)
if
(
maxDays
>
maxTradeDays
)
return
null
return
null
...
@@ -357,178 +295,132 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -357,178 +295,132 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitZeroRunupProfit
'
)
{
else
if
(
usage
===
'
ProfitZeroRunupProfit
'
)
{
if
(
VarProfitZeroRunupProfit
>
ProfitZeroRunupProfit
)
if
(
VarProfitZeroRunupProfit
>
ProfitZeroRunupProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
ProfitZeroRunupDrawDown
'
)
{
if
(
VarProfitZeroRunupDrawDown
>
ProfitZeroRunupDrawDown
)
if
(
VarProfitZeroRunupDrawDown
>
ProfitZeroRunupDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroProfit
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroProfit
'
)
{
if
(
RunUpDrawDownAllLossProfit
>
RunUpDrawDownZeroProfit
)
if
(
RunUpDrawDownAllLossProfit
>
RunUpDrawDownZeroProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroDrawDownProfit
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroDrawDownProfit
'
)
{
if
(
RunupDrawDownDiffDrawdownProfitAll
>
RunUpDrawDownZeroDrawDownProfit
)
if
(
RunupDrawDownDiffDrawdownProfitAll
>
RunUpDrawDownZeroDrawDownProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroDrawdown
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroDrawdown
'
)
{
if
(
runUpDrawDownZeroDrawDownPercent
>
RunUpDrawDownZeroDrawdown
)
if
(
runUpDrawDownZeroDrawDownPercent
>
RunUpDrawDownZeroDrawdown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunUpDrawDownZeroRunupProfit
'
)
{
else
if
(
usage
===
'
RunUpDrawDownZeroRunupProfit
'
)
{
if
(
VarDrawDownZeroProfit
>
RunUpDrawDownZeroRunupProfit
)
if
(
VarDrawDownZeroProfit
>
RunUpDrawDownZeroRunupProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunupZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
RunupZeroRunupDrawDown
'
)
{
if
(
VarRunupZeroRunupDrawDown
>
RunupZeroRunupDrawDown
)
if
(
VarRunupZeroRunupDrawDown
>
RunupZeroRunupDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunupZeroProfit
'
)
{
else
if
(
usage
===
'
RunupZeroProfit
'
)
{
if
(
VarRunupZeroProfit
>
RunupZeroProfit
)
if
(
VarRunupZeroProfit
>
RunupZeroProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunupZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
RunupZeroProfitDrawDown
'
)
{
if
(
VarRunupZeroProfitDrawDown
>
RunupZeroProfitDrawDown
)
if
(
VarRunupZeroProfitDrawDown
>
RunupZeroProfitDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunupZeroDrawDown
'
)
{
else
if
(
usage
===
'
RunupZeroDrawDown
'
)
{
if
(
VarRunupZeroDrawDown
>
RunupZeroDrawDown
)
if
(
VarRunupZeroDrawDown
>
RunupZeroDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
RunupZeroProfitRunup
'
)
{
else
if
(
usage
===
'
RunupZeroProfitRunup
'
)
{
if
(
VarRunupZeroProfitRunup
>
RunupZeroProfitRunup
)
if
(
VarRunupZeroProfitRunup
>
RunupZeroProfitRunup
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
DrawDownZeroDrawDown
'
)
{
else
if
(
usage
===
'
DrawDownZeroDrawDown
'
)
{
if
(
VarDrawDownZeroDrawDown
>
DrawDownZeroDrawDown
)
if
(
VarDrawDownZeroDrawDown
>
DrawDownZeroDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
DrawDownnZeroProfit
'
)
{
else
if
(
usage
===
'
DrawDownnZeroProfit
'
)
{
if
(
VarDrawDownnZeroProfit
>
DrawDownnZeroProfit
)
if
(
VarDrawDownnZeroProfit
>
DrawDownnZeroProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
DrawDownZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
DrawDownZeroProfitDrawDown
'
)
{
if
(
VarDrawDownZeroProfitDrawDown
>
DrawDownZeroProfitDrawDown
)
if
(
VarDrawDownZeroProfitDrawDown
>
DrawDownZeroProfitDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
DrawDownZeroProfitRunup
'
)
{
else
if
(
usage
===
'
DrawDownZeroProfitRunup
'
)
{
if
(
VarDrawDownZeroProfitRunup
>
DrawDownZeroProfitRunup
)
if
(
VarDrawDownZeroProfitRunup
>
DrawDownZeroProfitRunup
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
DrawDownZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
DrawDownZeroRunupDrawDown
'
)
{
if
(
VarDrawDownZeroRunupDrawDown
>
DrawDownZeroRunupDrawDown
)
if
(
VarDrawDownZeroRunupDrawDown
>
DrawDownZeroRunupDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroDrawDown
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroDrawDown
'
)
{
if
(
VarProfitDrawDownZeroDrawDown
>
ProfitDrawDownZeroDrawDown
)
if
(
VarProfitDrawDownZeroDrawDown
>
ProfitDrawDownZeroDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroProfit
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroProfit
'
)
{
if
(
VarProfitDrawDownZeroProfit
>
ProfitDrawDownZeroProfit
)
if
(
VarProfitDrawDownZeroProfit
>
ProfitDrawDownZeroProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroProfitDrawDown
'
)
{
if
(
VarProfitDrawDownZeroProfitDrawDown
>
ProfitDrawDownZeroProfitDrawDown
)
if
(
VarProfitDrawDownZeroProfitDrawDown
>
ProfitDrawDownZeroProfitDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroProfitRunup
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroProfitRunup
'
)
{
if
(
VarProfitDrawDownZeroProfitRunup
>
ProfitDrawDownZeroProfitRunup
)
if
(
VarProfitDrawDownZeroProfitRunup
>
ProfitDrawDownZeroProfitRunup
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitDrawDownZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
ProfitDrawDownZeroRunupDrawDown
'
)
{
if
(
VarProfitDrawDownZeroRunupDrawDown
>
ProfitDrawDownZeroRunupDrawDown
)
if
(
VarProfitDrawDownZeroRunupDrawDown
>
ProfitDrawDownZeroRunupDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitRunupZeroDrawDown
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroDrawDown
'
)
{
if
(
VarProfitRunupZeroDrawDown
>
ProfitRunupZeroDrawDown
)
if
(
VarProfitRunupZeroDrawDown
>
ProfitRunupZeroDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitRunupZeroProfit
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroProfit
'
)
{
if
(
VarProfitRunupZeroProfit
>
ProfitRunupZeroProfit
)
if
(
VarProfitRunupZeroProfit
>
ProfitRunupZeroProfit
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitRunupZeroProfitDrawDown
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroProfitDrawDown
'
)
{
if
(
VarProfitRunupZeroProfitDrawDown
>
ProfitRunupZeroProfitDrawDown
)
if
(
VarProfitRunupZeroProfitDrawDown
>
ProfitRunupZeroProfitDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitRunupZeroProfitRunup
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroProfitRunup
'
)
{
if
(
VarProfitRunupZeroProfitRunup
>
ProfitRunupZeroProfitRunup
)
if
(
VarProfitRunupZeroProfitRunup
>
ProfitRunupZeroProfitRunup
)
runBefore
=
false
runBefore
=
false
else
else
runBefore
=
true
runBefore
=
true
}
}
else
if
(
usage
===
'
ProfitRunupZeroRunupDrawDown
'
)
{
else
if
(
usage
===
'
ProfitRunupZeroRunupDrawDown
'
)
{
if
(
VarProfitRunupZeroRunupDrawDown
>
ProfitRunupZeroRunupDrawDown
)
if
(
VarProfitRunupZeroRunupDrawDown
>
ProfitRunupZeroRunupDrawDown
)
runBefore
=
false
runBefore
=
false
else
else
...
@@ -536,48 +428,25 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -536,48 +428,25 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
}
//
//
}
}
if
((
data
[
i
].
profit
+
data
[
i
].
runUp
)
<
0
)
{
if
((
data
[
i
].
profit
+
data
[
i
].
runUp
)
<
0
)
{
VarProfitRunupZeroRunupDrawDown
=
VarProfitRunupZeroRunupDrawDown
+
(
data
[
i
].
runUp
+
data
[
i
].
drawDown
)
VarProfitRunupZeroRunupDrawDown
=
VarProfitRunupZeroRunupDrawDown
+
(
data
[
i
].
runUp
+
data
[
i
].
drawDown
)
VarProfitRunupZeroProfit
=
VarProfitRunupZeroProfit
+
data
[
i
].
profit
VarProfitRunupZeroProfit
=
VarProfitRunupZeroProfit
+
data
[
i
].
profit
VarProfitRunupZeroProfitDrawDown
=
VarProfitRunupZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarProfitRunupZeroProfitDrawDown
=
VarProfitRunupZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarProfitRunupZeroDrawDown
=
VarProfitRunupZeroDrawDown
+
data
[
i
].
drawDown
VarProfitRunupZeroDrawDown
=
VarProfitRunupZeroDrawDown
+
data
[
i
].
drawDown
VarProfitRunupZeroProfitRunup
=
VarProfitRunupZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarProfitRunupZeroProfitRunup
=
VarProfitRunupZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
}
else
{
}
else
{
VarProfitRunupZeroDrawDown
=
0
VarProfitRunupZeroDrawDown
=
0
VarProfitRunupZeroProfit
=
0
VarProfitRunupZeroProfit
=
0
VarProfitRunupZeroProfitDrawDown
=
0
VarProfitRunupZeroProfitDrawDown
=
0
VarProfitRunupZeroProfitRunup
=
0
VarProfitRunupZeroProfitRunup
=
0
VarProfitRunupZeroRunupDrawDown
=
0
VarProfitRunupZeroRunupDrawDown
=
0
}
}
if
((
data
[
i
].
profit
+
data
[
i
].
drawDown
)
<
0
)
{
if
((
data
[
i
].
profit
+
data
[
i
].
drawDown
)
<
0
)
{
...
@@ -585,14 +454,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -585,14 +454,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
VarProfitDrawDownZeroProfit
=
VarProfitDrawDownZeroProfit
+
data
[
i
].
profit
VarProfitDrawDownZeroProfit
=
VarProfitDrawDownZeroProfit
+
data
[
i
].
profit
VarProfitDrawDownZeroProfitDrawDown
=
VarProfitDrawDownZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarProfitDrawDownZeroProfitDrawDown
=
VarProfitDrawDownZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarProfitDrawDownZeroDrawDown
=
VarProfitDrawDownZeroDrawDown
+
data
[
i
].
drawDown
VarProfitDrawDownZeroDrawDown
=
VarProfitDrawDownZeroDrawDown
+
data
[
i
].
drawDown
VarProfitDrawDownZeroProfitRunup
=
VarProfitDrawDownZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarProfitDrawDownZeroProfitRunup
=
VarProfitDrawDownZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
}
else
{
}
else
{
VarProfitDrawDownZeroDrawDown
=
0
VarProfitDrawDownZeroDrawDown
=
0
VarProfitDrawDownZeroProfit
=
0
VarProfitDrawDownZeroProfit
=
0
VarProfitDrawDownZeroProfitDrawDown
=
0
VarProfitDrawDownZeroProfitDrawDown
=
0
VarProfitDrawDownZeroProfitRunup
=
0
VarProfitDrawDownZeroProfitRunup
=
0
VarProfitDrawDownZeroRunupDrawDown
=
0
VarProfitDrawDownZeroRunupDrawDown
=
0
}
}
...
@@ -601,14 +470,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -601,14 +470,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
VarDrawDownnZeroProfit
=
VarDrawDownnZeroProfit
+
data
[
i
].
profit
VarDrawDownnZeroProfit
=
VarDrawDownnZeroProfit
+
data
[
i
].
profit
VarDrawDownZeroProfitDrawDown
=
VarDrawDownZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarDrawDownZeroProfitDrawDown
=
VarDrawDownZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarDrawDownZeroDrawDown
=
VarDrawDownZeroDrawDown
+
data
[
i
].
drawDown
VarDrawDownZeroDrawDown
=
VarDrawDownZeroDrawDown
+
data
[
i
].
drawDown
VarDrawDownZeroProfitRunup
=
VarDrawDownZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarDrawDownZeroProfitRunup
=
VarDrawDownZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
}
else
{
}
else
{
VarDrawDownZeroDrawDown
=
0
VarDrawDownZeroDrawDown
=
0
VarDrawDownnZeroProfit
=
0
VarDrawDownnZeroProfit
=
0
VarDrawDownZeroProfitDrawDown
=
0
VarDrawDownZeroProfitDrawDown
=
0
VarDrawDownZeroProfitRunup
=
0
VarDrawDownZeroProfitRunup
=
0
VarDrawDownZeroRunupDrawDown
=
0
VarDrawDownZeroRunupDrawDown
=
0
//zero
//zero
}
}
...
@@ -620,14 +489,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -620,14 +489,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
VarRunupZeroProfit
=
VarRunupZeroProfit
+
data
[
i
].
profit
VarRunupZeroProfit
=
VarRunupZeroProfit
+
data
[
i
].
profit
VarRunupZeroProfitDrawDown
=
VarRunupZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarRunupZeroProfitDrawDown
=
VarRunupZeroProfitDrawDown
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
VarRunupZeroDrawDown
=
VarRunupZeroDrawDown
+
data
[
i
].
drawDown
VarRunupZeroDrawDown
=
VarRunupZeroDrawDown
+
data
[
i
].
drawDown
VarRunupZeroProfitRunup
=
VarRunupZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarRunupZeroProfitRunup
=
VarRunupZeroProfitRunup
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
}
else
{
}
else
{
VarRunupZeroRunupDrawDown
=
0
VarRunupZeroRunupDrawDown
=
0
VarRunupZeroProfit
=
0
VarRunupZeroProfit
=
0
VarRunupZeroProfitDrawDown
=
0
VarRunupZeroProfitDrawDown
=
0
VarRunupZeroDrawDown
=
0
VarRunupZeroDrawDown
=
0
VarRunupZeroProfitRunup
=
0
VarRunupZeroProfitRunup
=
0
//zero
//zero
}
}
...
@@ -637,14 +506,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -637,14 +506,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
RunUpDrawDownAllLossProfit
=
RunUpDrawDownAllLossProfit
+
data
[
i
].
profit
RunUpDrawDownAllLossProfit
=
RunUpDrawDownAllLossProfit
+
data
[
i
].
profit
RunupDrawDownDiffDrawdownProfitAll
=
RunupDrawDownDiffDrawdownProfitAll
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
RunupDrawDownDiffDrawdownProfitAll
=
RunupDrawDownDiffDrawdownProfitAll
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
runUpDrawDownZeroDrawDownPercent
=
runUpDrawDownZeroDrawDownPercent
+
data
[
i
].
drawDown
runUpDrawDownZeroDrawDownPercent
=
runUpDrawDownZeroDrawDownPercent
+
data
[
i
].
drawDown
VarDrawDownZeroProfit
=
VarDrawDownZeroProfit
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarDrawDownZeroProfit
=
VarDrawDownZeroProfit
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
}
else
{
}
else
{
drawDownPlusRunUpCount
=
0
drawDownPlusRunUpCount
=
0
drawDownPlusRunUpPercent
=
0
drawDownPlusRunUpPercent
=
0
RunUpDrawDownAllLossProfit
=
0
RunUpDrawDownAllLossProfit
=
0
RunupDrawDownDiffDrawdownProfitAll
=
0
RunupDrawDownDiffDrawdownProfitAll
=
0
runUpDrawDownZeroDrawDownPercent
=
0
runUpDrawDownZeroDrawDownPercent
=
0
VarDrawDownZeroProfit
=
0
VarDrawDownZeroProfit
=
0
}
}
...
@@ -652,13 +521,13 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -652,13 +521,13 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
allLossProfit
=
allLossProfit
+
data
[
i
].
profit
allLossProfit
=
allLossProfit
+
data
[
i
].
profit
diffDrawdownProfitAll
=
diffDrawdownProfitAll
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
diffDrawdownProfitAll
=
diffDrawdownProfitAll
+
(
data
[
i
].
drawDown
-
data
[
i
].
profit
)
ProfitZeroDrawDownPercent
=
ProfitZeroDrawDownPercent
+
data
[
i
].
drawDown
ProfitZeroDrawDownPercent
=
ProfitZeroDrawDownPercent
+
data
[
i
].
drawDown
VarProfitZeroRunupProfit
=
VarProfitZeroRunupProfit
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarProfitZeroRunupProfit
=
VarProfitZeroRunupProfit
+
(
data
[
i
].
runUp
+
data
[
i
].
profit
)
VarProfitZeroRunupDrawDown
=
VarProfitZeroRunupDrawDown
+
(
data
[
i
].
runUp
+
data
[
i
].
drawDown
)
VarProfitZeroRunupDrawDown
=
VarProfitZeroRunupDrawDown
+
(
data
[
i
].
runUp
+
data
[
i
].
drawDown
)
countDrop
++
countDrop
++
}
else
{
}
else
{
allLossProfit
=
0
allLossProfit
=
0
VarProfitZeroRunupProfit
=
0
VarProfitZeroRunupProfit
=
0
VarProfitZeroRunupDrawDown
=
0
VarProfitZeroRunupDrawDown
=
0
diffDrawdownProfitAll
=
0
diffDrawdownProfitAll
=
0
countDrop
=
0
countDrop
=
0
ProfitZeroDrawDownPercent
=
0
ProfitZeroDrawDownPercent
=
0
...
@@ -696,8 +565,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -696,8 +565,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
if
(
data
[
i
].
side
===
'
LONG
'
)
{
if
(
data
[
i
].
side
===
'
LONG
'
)
{
allLongDone
++
allLongDone
++
}
}
else
{
else
{
allShortDone
++
allShortDone
++
}
}
if
(
step
===
0
)
{
if
(
step
===
0
)
{
...
@@ -772,8 +640,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -772,8 +640,8 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
obj
=
d
obj
=
d
obj
.
signal
=
data
[
i
]
obj
.
signal
=
data
[
i
]
obj
.
avgRunup
=
avgRunup
obj
.
avgRunup
=
avgRunup
obj
.
avgDrawdown
=
avgDrawdown
obj
.
avgDrawdown
=
avgDrawdown
// obj.signal.openTimeStamp = data[i].unixOpen
// obj.signal.openTimeStamp = data[i].unixOpen
...
@@ -859,14 +727,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -859,14 +727,14 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
lastMoney
=
0
lastMoney
=
0
allTotal
++
allTotal
++
targetDone
++
targetDone
++
allDonePer
=
allDonePer
+
config
.
target
allDonePer
=
allDonePer
+
config
.
target
targetDonePer
=
targetDonePer
+
config
.
target
targetDonePer
=
targetDonePer
+
config
.
target
if
(
data
[
i
].
side
===
'
LONG
'
)
if
(
data
[
i
].
side
===
'
LONG
'
)
allLongDonePer
=
allLongDonePer
+
config
.
target
allLongDonePer
=
allLongDonePer
+
config
.
target
else
else
allShortDonePer
=
allShortDonePer
+
config
.
target
allShortDonePer
=
allShortDonePer
+
config
.
target
if
(
!
d
.
riskFree
)
if
(
!
d
.
riskFree
)
total
++
total
++
...
@@ -875,36 +743,32 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -875,36 +743,32 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
profitLossString
=
profitLossString
+
data
[
i
].
profit
+
'
_
'
profitLossString
=
profitLossString
+
data
[
i
].
profit
+
'
_
'
lossDone
++
lossDone
++
lossDonePer
=
lossDonePer
+
data
[
i
].
profit
-
0.1
lossDonePer
=
lossDonePer
+
data
[
i
].
profit
-
0.1
allDonePer
=
allDonePer
+
data
[
i
].
profit
-
0.1
allDonePer
=
allDonePer
+
data
[
i
].
profit
-
0.1
if
(
data
[
i
].
side
===
'
LONG
'
)
{
if
(
data
[
i
].
side
===
'
LONG
'
)
{
allLongDonePer
=
allLongDonePer
+
data
[
i
].
profit
-
0.1
allLongDonePer
=
allLongDonePer
+
data
[
i
].
profit
-
0.1
if
(
data
[
i
].
profit
<=
0.1
)
if
(
data
[
i
].
profit
<=
0.1
)
{
{
lossLongDone
++
lossLongDone
++
lossLongDonePer
=
lossLongDonePer
+
(
data
[
i
].
profit
+
-
0.1
)
lossLongDonePer
=
lossLongDonePer
+
(
data
[
i
].
profit
+
-
0.1
)
}
}
}
}
else
{
else
{
allShortDonePer
=
allShortDonePer
+
data
[
i
].
profit
-
0.1
allShortDonePer
=
allShortDonePer
+
data
[
i
].
profit
-
0.1
if
(
data
[
i
].
profit
<=
0.1
)
if
(
data
[
i
].
profit
<=
0.1
)
{
{
lossShortDone
++
lossShortDone
++
lossShortDonePer
=
lossShortDonePer
+
(
data
[
i
].
profit
+
-
0.1
)
lossShortDonePer
=
lossShortDonePer
+
(
data
[
i
].
profit
+
-
0.1
)
}
}
}
}
if
(
data
[
i
].
profit
>
0.1
)
if
(
data
[
i
].
profit
>
0.1
)
{
{
lossPlusDone
++
lossPlusDone
++
lossPlusDonePer
=
lossPlusDonePer
+
(
data
[
i
].
profit
+
-
0.1
)
lossPlusDonePer
=
lossPlusDonePer
+
(
data
[
i
].
profit
+
-
0.1
)
}
}
// unixMid = data[i].unixClose
// unixMid = data[i].unixClose
// step++
// step++
step
=
0
step
=
0
profit
=
profit
+
d
.
profit
profit
=
profit
+
d
.
profit
lastMoney
=
d
.
lastMoney
lastMoney
=
d
.
lastMoney
lastCom
=
lastCom
+
d
.
com
lastCom
=
lastCom
+
d
.
com
...
@@ -1050,22 +914,22 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -1050,22 +914,22 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
type
:
type
,
type
:
type
,
total
:
total
,
total
:
total
,
allTotal
:
allTotal
,
allTotal
:
allTotal
,
allDone
:
allDone
,
allDone
:
allDone
,
allDonePer
:
allDonePer
,
allDonePer
:
allDonePer
,
allLongDone
:
allLongDone
,
allLongDone
:
allLongDone
,
allLongDonePer
:
allLongDonePer
,
allLongDonePer
:
allLongDonePer
,
allShortDone
:
allShortDone
,
allShortDone
:
allShortDone
,
allShortDonePer
:
allShortDonePer
,
allShortDonePer
:
allShortDonePer
,
targetDone
:
targetDone
,
targetDone
:
targetDone
,
targetDonePer
:
targetDonePer
,
targetDonePer
:
targetDonePer
,
lossDone
:
lossDone
,
lossDone
:
lossDone
,
lossDonePer
:
lossDonePer
,
lossDonePer
:
lossDonePer
,
lossPlusDone
:
lossPlusDone
,
lossPlusDone
:
lossPlusDone
,
lossPlusDonePer
:
lossPlusDonePer
,
lossPlusDonePer
:
lossPlusDonePer
,
lossLongDone
:
lossLongDone
,
lossLongDone
:
lossLongDone
,
lossLongDonePer
:
lossLongDonePer
,
lossLongDonePer
:
lossLongDonePer
,
lossShortDone
:
lossShortDone
,
lossShortDone
:
lossShortDone
,
lossShortDonePer
:
lossShortDonePer
,
lossShortDonePer
:
lossShortDonePer
,
avgLevel
:
maxLevel
/
total
,
avgLevel
:
maxLevel
/
total
,
maxLevel
:
maxLevel
,
maxLevel
:
maxLevel
,
dur
:
dur
,
dur
:
dur
,
...
@@ -1081,7 +945,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -1081,7 +945,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
dateString
:
dateString
,
dateString
:
dateString
,
runupString
:
runupString
,
runupString
:
runupString
,
sideString
:
sideString
,
sideString
:
sideString
,
profitLossString
:
profitLossString
,
profitLossString
:
profitLossString
,
firstMaxAllocatedMoney
:
firstMaxAllocatedMoney
,
firstMaxAllocatedMoney
:
firstMaxAllocatedMoney
,
maxAllocatedMoney
:
maxAllocatedMoney
,
maxAllocatedMoney
:
maxAllocatedMoney
,
avgAllocatedMoney
:
maxAllocatedMoney
/
total
,
avgAllocatedMoney
:
maxAllocatedMoney
/
total
,
...
@@ -1106,7 +970,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -1106,7 +970,7 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
}
if
(
opt
.
allDonePer
<
1
)
if
(
opt
.
allDonePer
<
1
)
return
null
return
null
// if (opt.allDone <60)
// if (opt.allDone <60)
...
@@ -1123,9 +987,26 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
...
@@ -1123,9 +987,26 @@ function run(data, config, risk, pfTrade, riskFreeLevel, detail, loss, durs, max
}
}
delete
opt
.
allTotal
delete
opt
.
avgLevel
delete
opt
.
maxDays
delete
opt
.
avgDays
delete
opt
.
maxRuntime
delete
opt
.
allLoss
delete
opt
.
totalFinal
delete
opt
.
totalPlus
delete
opt
.
firstMaxAllocatedMoney
delete
opt
.
maxAllocatedMoney
delete
opt
.
avgAllocatedMoney
delete
opt
.
avgReserve
delete
opt
.
percentage
delete
opt
.
allocatedReserve
delete
opt
.
minus
delete
opt
.
risk
delete
opt
.
levels
return
opt
return
opt
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment