Upgrade to Protocol v.0.1

This commit is contained in:
Luis Fernando Molina committed 2019-06-06 09:24:40 +02:00
1 parent 6ea5ad985c
commit 45b0c5a6ab
3 files changed
+149 -51

No files matched your search

+136 -38
View File
@@ -334,7 +334,7 @@
record.strategyNumber = dailyFile[2][i][2];
record.strategyPhase = dailyFile[2][i][3];
record.stopLossPhase = dailyFile[2][i][4];
record.buyOrderPhase = dailyFile[2][i][5];
record.takeProfitPhase = dailyFile[2][i][5];
record.conditions = dailyFile[2][i][6];
if (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) {
@@ -413,7 +413,7 @@
record.strategyNumber = marketFile[2][i][2];
record.strategyPhase = marketFile[2][i][3];
record.stopLossPhase = marketFile[2][i][4];
record.buyOrderPhase = marketFile[2][i][5];
record.takeProfitPhase = marketFile[2][i][5];
record.conditions = marketFile[2][i][6];
if (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) {
@@ -492,7 +492,7 @@
strategyNumber: conditionRecord.strategyNumber,
strategyPhase: conditionRecord.strategyPhase,
stopLossPhase: conditionRecord.stopLossPhase,
buyOrderPhase: conditionRecord.buyOrderPhase,
takeProfitPhase: conditionRecord.takeProfitPhase,
conditionsValues: conditionRecord.conditions
};
@@ -514,12 +514,12 @@
browserCanvasContext.beginPath();
let simulationLogic = currentRecord.conditionsNames;
let tradingSystem = currentRecord.conditionsNames;
let conditionIndex = 0;
for (let j = 0; j < simulationLogic.strategies.length; j++) {
for (let j = 0; j < tradingSystem.strategies.length; j++) {
let strategy = simulationLogic.strategies[j];
let strategy = tradingSystem.strategies[j];
if (currentRecord.strategyNumber - 1 === j) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].payload.uiObject.isExecuting = true
@@ -527,55 +527,153 @@
canvas.strategySpace.workspace.tradingSystem.strategies[j].payload.uiObject.isExecuting = false
}
for (let k = 0; k < strategy.entryPoint.situations.length; k++) {
let triggerStage = strategy.triggerStage
let situation = strategy.entryPoint.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].entryPoint.situations[k]);
}
if (triggerStage !== undefined) {
for (let k = 0; k < strategy.exitPoint.situations.length; k++) {
if (triggerStage.triggerOn !== undefined) {
let situation = strategy.exitPoint.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].exitPoint.situations[k]);
}
for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) {
for (let k = 0; k < strategy.sellPoint.situations.length; k++) {
let situation = triggerStage.triggerOn.situations[k];
let situation = strategy.sellPoint.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].sellPoint.situations[k]);
}
for (let p = 0; p < strategy.stopLoss.phases.length; p++) {
if (currentRecord.strategyNumber - 1 === j && currentRecord.stopLossPhase - 1 === p) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].stopLoss.phases[p].payload.uiObject.isExecuting = true
} else {
canvas.strategySpace.workspace.tradingSystem.strategies[j].stopLoss.phases[p].payload.uiObject.isExecuting = false
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].triggerStage.triggerOn.situations[k]);
}
}
let phase = strategy.stopLoss.phases[p];
if (triggerStage.triggerOff !== undefined) {
for (let k = 0; k < phase.situations.length; k++) {
for (let k = 0; k < triggerStage.triggerOff.situations.length; k++) {
let situation = phase.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].stopLoss.phases[p].situations[k]);
let situation = triggerStage.triggerOff.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].triggerStage.triggerOff.situations[k]);
}
}
if (triggerStage.takePosition !== undefined) {
for (let k = 0; k < triggerStage.takePosition.situations.length; k++) {
let situation = triggerStage.takePosition.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].triggerStage.takePosition.situations[k]);
}
}
}
for (let p = 0; p < strategy.buyOrder.phases.length; p++) {
let openStage = strategy.openStage
if (currentRecord.strategyNumber - 1 === j && currentRecord.buyOrderPhase - 1 === p) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].buyOrder.phases[p].payload.uiObject.isExecuting = true
} else {
canvas.strategySpace.workspace.tradingSystem.strategies[j].buyOrder.phases[p].payload.uiObject.isExecuting = false
if (openStage !== undefined) {
let initialDefinition = openStage.initialDefinition
if (initialDefinition !== undefined) {
if (initialDefinition.stopLoss !== undefined) {
for (let p = 0; p < initialDefinition.stopLoss.phases.length; p++) {
if (currentRecord.strategyNumber - 1 === j && currentRecord.stopLossPhase - 1 === p) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].payload.uiObject.isExecuting = true
} else {
canvas.strategySpace.workspace.tradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].payload.uiObject.isExecuting = false
}
let phase = initialDefinition.stopLoss.phases[p];
let nextPhaseEvent = phase.nextPhaseEvent;
if (nextPhaseEvent !== undefined) {
for (let k = 0; k < nextPhaseEvent.situations.length; k++) {
let situation = nextPhaseEvent.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].openStage.initialDefinition.stopLoss.phases[p].nextPhaseEvent.situations[k]);
}
}
}
}
if (initialDefinition.takeProfit !== undefined) {
for (let p = 0; p < initialDefinition.takeProfit.phases.length; p++) {
if (currentRecord.strategyNumber - 1 === j && currentRecord.stopLossPhase - 1 === p) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].payload.uiObject.isExecuting = true
} else {
canvas.strategySpace.workspace.tradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].payload.uiObject.isExecuting = false
}
let phase = initialDefinition.takeProfit.phases[p];
let nextPhaseEvent = phase.nextPhaseEvent;
if (nextPhaseEvent !== undefined) {
for (let k = 0; k < nextPhaseEvent.situations.length; k++) {
let situation = nextPhaseEvent.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].openStage.initialDefinition.takeProfit.phases[p].nextPhaseEvent.situations[k]);
}
}
}
}
}
}
let manageStage = strategy.manageStage
if (manageStage !== undefined) {
if (manageStage.stopLoss !== undefined) {
for (let p = 0; p < manageStage.stopLoss.phases.length; p++) {
if (currentRecord.strategyNumber - 1 === j && currentRecord.stopLossPhase - 2 === p) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].manageStage.stopLoss.phases[p].payload.uiObject.isExecuting = true
} else {
canvas.strategySpace.workspace.tradingSystem.strategies[j].manageStage.stopLoss.phases[p].payload.uiObject.isExecuting = false
}
let phase = manageStage.stopLoss.phases[p];
let nextPhaseEvent = phase.nextPhaseEvent;
if (nextPhaseEvent !== undefined) {
for (let k = 0; k < nextPhaseEvent.situations.length; k++) {
let situation = nextPhaseEvent.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].manageStage.stopLoss.phases[p].nextPhaseEvent.situations[k]);
}
}
}
}
let phase = strategy.buyOrder.phases[p];
if (manageStage.takeProfit !== undefined) {
for (let k = 0; k < phase.situations.length; k++) {
for (let p = 0; p < manageStage.takeProfit.phases.length; p++) {
let situation = phase.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].buyOrder.phases[p].situations[k]);
if (currentRecord.strategyNumber - 1 === j && currentRecord.stopLossPhase - 2 === p) {
canvas.strategySpace.workspace.tradingSystem.strategies[j].manageStage.takeProfit.phases[p].payload.uiObject.isExecuting = true
} else {
canvas.strategySpace.workspace.tradingSystem.strategies[j].manageStage.takeProfit.phases[p].payload.uiObject.isExecuting = false
}
let phase = manageStage.takeProfit.phases[p];
let nextPhaseEvent = phase.nextPhaseEvent;
if (nextPhaseEvent !== undefined) {
for (let k = 0; k < nextPhaseEvent.situations.length; k++) {
let situation = nextPhaseEvent.situations[k];
processSituation(situation, canvas.strategySpace.workspace.tradingSystem.strategies[j].manageStage.takeProfit.phases[p].nextPhaseEvent.situations[k]);
}
}
}
}
}
}
+12 -12
View File
@@ -335,9 +335,9 @@
record.lastProfitPercent = dailyFile[i][19];
record.strategy = dailyFile[i][20];
record.strategyPhase = dailyFile[i][21];
record.buyOrder = dailyFile[i][22];
record.takeProfit = dailyFile[i][22];
record.stopLossPhase = dailyFile[i][23];
record.buyOrderPhase = dailyFile[i][24];
record.takeProfitPhase = dailyFile[i][24];
record.sellAmount = dailyFile[i][26]; // 25 is the message for the executor
if (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) {
@@ -425,9 +425,9 @@
record.lastProfitPercent = marketFile[i][19];
record.strategy = marketFile[i][20];
record.strategyPhase = marketFile[i][21];
record.buyOrder = marketFile[i][22];
record.takeProfit = marketFile[i][22];
record.stopLossPhase = marketFile[i][23];
record.buyOrderPhase = marketFile[i][24];
record.takeProfitPhase = marketFile[i][24];
record.sellAmount = marketFile[i][26]; // 25 is the message for the executor
if (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) {
@@ -506,15 +506,15 @@
}
let stopLossPhase = 0;
let buyOrderPhase = 0;
let takeProfitPhase = 0;
if (i > 0) {
if (record.stopLossPhase !== records[i - 1].stopLossPhase) {
stopLossPhase = record.stopLossPhase;
}
if (record.buyOrderPhase !== records[i - 1].buyOrderPhase) {
buyOrderPhase = record.buyOrderPhase;
if (record.takeProfitPhase !== records[i - 1].takeProfitPhase) {
takeProfitPhase = record.takeProfitPhase;
}
}
@@ -567,15 +567,15 @@
let recordPoint8 = {
x: record.begin,
y: record.buyOrder
y: record.takeProfit
};
let recordPoint9 = {
x: record.end,
y: record.buyOrder
y: record.takeProfit
};
if (record.buyOrder === 0) { // Put these points out of range if buyOrder is zero.
if (record.takeProfit === 0) { // Put these points out of range if takeProfit is zero.
recordPoint8.x = 0;
recordPoint9.x = 0;
@@ -739,9 +739,9 @@
browserCanvasContext.lineWidth = 5
browserCanvasContext.stroke()
if (imageBuyOrderPhase.canDrawIcon === true && buyOrderPhase > 0) {
if (imageBuyOrderPhase.canDrawIcon === true && takeProfitPhase > 0) {
browserCanvasContext.drawImage(imageBuyOrderPhase, recordPoint9.x - imageSize * 2 / 3, recordPoint9.y + imageSize / 4, imageSize, imageSize);
printLabel(buyOrderPhase, recordPoint9.x - imageSize * 1 / 3, recordPoint9.y + imageSize * 1.9, '0.9', 8);
printLabel(takeProfitPhase, recordPoint9.x - imageSize * 1 / 3, recordPoint9.y + imageSize * 1.9, '0.9', 8);
}
}
+1 -1
View File
@@ -131,7 +131,7 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation
y = y + increment;
printLabel('Take Profit', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1');
y = y + increment;
printLabel(currentRecord.innerRecord.buyOrder, X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.50', 10);
printLabel(currentRecord.innerRecord.takeProfit, X_AXIS, frameTitleHeight + frameBodyHeight * y, '0.50', 10);
y = y + increment;
printLabel('Trades', X_AXIS, frameTitleHeight + frameBodyHeight * y, '1');