Upgrade to Protocol v.0.1
This commit is contained in:
1 parent
6ea5ad985c
commit
45b0c5a6ab
3 files changed
+149
-51
No files matched your search
+136
-38
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in new issue
Block a user