Conditions working from simulationLogic

This commit is contained in:
Luis Fernando Molina committed 2019-03-07 13:56:27 +01:00
1 parent f1205ff63b
commit 5fd4d9045f
1 file changed
+58 -64
+58 -64
View File
@@ -133,6 +133,7 @@
let candles = [];
let recordsArray = [];
let conditionsArray = [];
let simulationLogic = {};
nextPercentageBandwidth();
@@ -532,6 +533,7 @@
bollingerSubChannelsArray,
recordsArray,
conditionsArray,
simulationLogic,
outputPeriod,
writeRecordsFile)
@@ -664,7 +666,7 @@
}
fileContent = "[" + fileContent + "]";
fileContent = "[" + JSON.stringify(simulationLogic) + "," + fileContent + "]";
let fileName = '' + market.assetA + '_' + market.assetB + '.json';
let filePathRoot = bot.devTeam + "/" + bot.codeName + "." + bot.version.major + "." + bot.version.minor + "/" + global.PLATFORM_CONFIG.codeName + "." + global.PLATFORM_CONFIG.version.major + "." + global.PLATFORM_CONFIG.version.minor + "/" + global.EXCHANGE_NAME + "/" + bot.dataSetVersion;
@@ -770,6 +772,7 @@
bollingerSubChannelsArray,
recordsArray,
conditionsArray,
simulationLogic,
outputPeriod,
callback) {
@@ -830,61 +833,58 @@
let newStopLoss;
let initialBuffer = 3;
let conditionsHeadersSent = false;
const simulationLogic = {
strategies: [
{
name: "Trend Following",
entryPoint: {
situations: [
{
name: "Price Collapsing",
conditions: [
{
name: "%B Moving Average going up",
code: "percentageBandwidth2.movingAverage > percentageBandwidth1.movingAverage && percentageBandwidth1.movingAverage > percentageBandwidth.movingAverage"
},
{
name: "%B Bandwidth going up",
code: "percentageBandwidth2.bandwidth < percentageBandwidth1.bandwidth && percentageBandwidth1.bandwidth < percentageBandwidth.bandwidth"
},
{
name: "Candles Min going down",
code: "candles[i - 2].min > candles[i - 1].min && candles[i - 1].min > candle.min"
}
]
}
]
}
},
{
name: "Range Trading",
entryPoint: {
situations: [
{
name: "Gentle Up Trend",
conditions: [
{
name: "Sub-Channel going up",
code: "subChannel.direction === 'Up'"
},
{
name: "Sub-Channel Side|Gentle|Medium",
code: "subChannel.slope === 'Side' || subChannel.slope === 'Gentle' || subChannel.slope === 'Medium'"
},
{
name: "Candle Close above Lower Band",
code: "candle.close > band.movingAverage + band.deviation"
}
]
}
]
}
simulationLogic.strategies = [
{
name: "Trend Following",
entryPoint: {
situations: [
{
name: "Price Collapsing",
conditions: [
{
name: "%B Moving Average going up",
code: "percentageBandwidth2.movingAverage > percentageBandwidth1.movingAverage && percentageBandwidth1.movingAverage > percentageBandwidth.movingAverage"
},
{
name: "%B Bandwidth going up",
code: "percentageBandwidth2.bandwidth < percentageBandwidth1.bandwidth && percentageBandwidth1.bandwidth < percentageBandwidth.bandwidth"
},
{
name: "Candles Min going down",
code: "candles[i - 2].min > candles[i - 1].min && candles[i - 1].min > candle.min"
}
]
}
]
}
]
};
},
{
name: "Range Trading",
entryPoint: {
situations: [
{
name: "Gentle Up Trend",
conditions: [
{
name: "Sub-Channel going up",
code: "subChannel.direction === 'Up'"
},
{
name: "Sub-Channel Side|Gentle|Medium",
code: "subChannel.slope === 'Side' || subChannel.slope === 'Gentle' || subChannel.slope === 'Medium'"
},
{
name: "Candle Close above Lower Band",
code: "candle.close > band.movingAverage + band.deviation"
}
]
}
]
}
}
];
/* Main Simulation Loop: We go thourgh all the candles at this time period. */
for (let i = 0 + initialBuffer; i < candles.length; i++) {
@@ -947,19 +947,13 @@
conditions.set(condition.key, condition);
if (conditionsHeadersSent === false) {
conditionsArrayRecord.push('"' + condition.key + '"');
if (condition.value) {
conditionsArrayRecord.push(1);
} else {
if (condition.value) {
conditionsArrayRecord.push(1);
} else {
conditionsArrayRecord.push(0);
}
}
conditionsArrayRecord.push(0);
}
}
conditionsHeadersSent = true;
/* While we are outside all strategies, we evaluate whether it is time to enter one or not. */
if (strategyNumber === 0 &&