Move to Phase

This commit is contained in:
Luis Fernando Molina committed 2020-04-20 14:56:18 +02:00
1 parent 7bb4e5b64e
commit ea519e2525
1 file changed
+206
+206
View File
@@ -873,6 +873,28 @@
}
}
}
/* move to phase events */
for (let n = 0; n < phase.moveToPhaseEvents.length; n++) {
let moveToPhaseEvent = phase.moveToPhaseEvents[n];
if (moveToPhaseEvent !== undefined) {
for (let k = 0; k < moveToPhaseEvent.situations.length; k++) {
let situation = moveToPhaseEvent.situations[k];
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'stopLoss' + '-' + p + '-' + n + '-' + k + '-' + m;
if (condition.javascriptCode !== undefined) {
newCondition(key, condition.javascriptCode, chart);
}
}
}
}
}
}
}
@@ -939,6 +961,28 @@
}
}
}
/* move to phase events */
for (let n = 0; n < phase.moveToPhaseEvents.length; n++) {
let moveToPhaseEvent = phase.moveToPhaseEvents[n];
if (moveToPhaseEvent !== undefined) {
for (let k = 0; k < moveToPhaseEvent.situations.length; k++) {
let situation = moveToPhaseEvent.situations[k];
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'takeProfit' + '-' + p + '-' + n + '-' + k + '-' + m;
if (condition.javascriptCode !== undefined) {
newCondition(key, condition.javascriptCode, chart);
}
}
}
}
}
}
}
}
@@ -1015,6 +1059,28 @@
}
}
}
/* move to phase events */
for (let n = 0; n < phase.moveToPhaseEvents.length; n++) {
let moveToPhaseEvent = phase.moveToPhaseEvents[n];
if (moveToPhaseEvent !== undefined) {
for (let k = 0; k < moveToPhaseEvent.situations.length; k++) {
let situation = moveToPhaseEvent.situations[k];
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + 'manageStage' + '-' + 'stopLoss' + '-' + p + '-' + n + '-' + k + '-' + m;
if (condition.javascriptCode !== undefined) {
newCondition(key, condition.javascriptCode, chart);
}
}
}
}
}
}
}
@@ -1082,6 +1148,28 @@
}
}
}
/* move to phase events */
for (let n = 0; n < phase.moveToPhaseEvents.length; n++) {
let moveToPhaseEvent = phase.moveToPhaseEvents[n];
if (moveToPhaseEvent !== undefined) {
for (let k = 0; k < moveToPhaseEvent.situations.length; k++) {
let situation = moveToPhaseEvent.situations[k];
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + 'manageStage' + '-' + 'takeProfit' + '-' + p + '-' + n + '-' + k + '-' + m;
if (condition.javascriptCode !== undefined) {
newCondition(key, condition.javascriptCode, chart);
}
}
}
}
}
}
}
}
@@ -1418,6 +1506,7 @@
if (parentNode !== undefined) {
let phase = parentNode.stopLoss.phases[p];
/* Check the next Phase Event. */
let nextPhaseEvent = phase.nextPhaseEvent;
if (nextPhaseEvent !== undefined) {
@@ -1461,6 +1550,64 @@
}
}
}
/* Check the Move to Phase Events. */
for (let n = 0; n < phase.moveToPhaseEvents.length; n++) {
let moveToPhaseEvent = phase.moveToPhaseEvents[n];
if (moveToPhaseEvent !== undefined) {
for (let k = 0; k < moveToPhaseEvent.situations.length; k++) {
let situation = moveToPhaseEvent.situations[k];
let passed = true;
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + stageKey + initialDefinitionKey + '-' + 'stopLoss' + '-' + p + '-' + n + '-' + k + '-' + m;
let value = false
if (conditions.get(key) !== undefined) {
value = conditions.get(key).value;
}
if (value === false) { passed = false; }
}
if (passed) {
let moveToPhase = moveToPhaseEvent.referenceParent
if (moveToPhase !== undefined) {
for (let q = 0; q < parentNode.stopLoss.phases.length; q++) {
if (parentNode.stopLoss.phases[q].id === moveToPhase.id) {
stopLossPhase = q + 1
}
}
} else {
moveToPhaseEvent.error = "This Node needs to reference a Phase."
continue
}
stopLossStage = 'Manage Stage'
if (takeProfitPhase > 0) {
strategyStage = 'Manage Stage'
checkAnnouncements(manageStage, 'Take Profit')
}
if (processingDailyFiles) {
if (positionedAtYesterday) {
yesterday.stopLossPhase = stopLossPhase;
yesterday.stopLossStage = stopLossStage;
yesterday.strategyStage = strategyStage;
}
}
checkAnnouncements(moveToPhaseEvent)
return;
}
}
}
}
}
}
@@ -1553,6 +1700,7 @@
let phase = parentNode.takeProfit.phases[p];
if (phase === undefined) {return} // trying to jump to a phase that does not exists.
/* Check the next Phase Event. */
let nextPhaseEvent = phase.nextPhaseEvent;
if (nextPhaseEvent !== undefined) {
@@ -1596,6 +1744,64 @@
}
}
}
/* Check the Move to Phase Events. */
for (let n = 0; n < phase.moveToPhaseEvents.length; n++) {
let moveToPhaseEvent = phase.moveToPhaseEvents[n];
if (moveToPhaseEvent !== undefined) {
for (let k = 0; k < moveToPhaseEvent.situations.length; k++) {
let situation = moveToPhaseEvent.situations[k];
let passed = true;
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + stageKey + initialDefinitionKey + '-' + 'takeProfit' + '-' + p + '-' + n + '-' + k + '-' + m;
let value = false
if (conditions.get(key) !== undefined) {
value = conditions.get(key).value;
}
if (value === false) { passed = false; }
}
if (passed) {
let moveToPhase = moveToPhaseEvent.referenceParent
if (moveToPhase !== undefined) {
for (let q = 0; q < parentNode.takeProfit.phases.length; q++) {
if (parentNode.takeProfit.phases[q].id === moveToPhase.id) {
takeProfitPhase = q + 1
}
}
} else {
moveToPhaseEvent.error = "This Node needs to reference a Phase."
continue
}
takeProfitStage = 'Manage Stage'
if (stopLossPhase > 0) {
strategyStage = 'Manage Stage'
checkAnnouncements(manageStage, 'Stop')
}
if (processingDailyFiles) {
if (positionedAtYesterday) {
yesterday.takeProfitPhase = takeProfitPhase;
yesterday.takeProfitStage = takeProfitStage;
yesterday.strategyStage = strategyStage;
}
}
checkAnnouncements(moveToPhaseEvent)
return;
}
}
}
}
}
}