Adding Distance in Periods Counters
This commit is contained in:
1 parent
707c37f08c
commit
2fb6e6e7b9
2 files changed
+140
-3
No files matched your search
+135
-2
@@ -305,6 +305,15 @@
|
||||
let periods = 0;
|
||||
let positionPeriods = 0;
|
||||
|
||||
/* Usefull counters for conditions and formulas */
|
||||
|
||||
let distanceToLast = {
|
||||
triggerOn: 0,
|
||||
triggerOff: 0,
|
||||
takePosition: 0,
|
||||
closePosition: 0
|
||||
}
|
||||
|
||||
/* Message to the Simulation Executor */
|
||||
|
||||
let orderId = 0;
|
||||
@@ -361,6 +370,13 @@
|
||||
yesterday.periods = 0;
|
||||
yesterday.positionPeriods = 0;
|
||||
|
||||
yesterday.distanceToLast = {
|
||||
triggerOn: 0,
|
||||
triggerOff: 0,
|
||||
takePosition: 0,
|
||||
closePosition: 0
|
||||
}
|
||||
|
||||
yesterday.orderId = 0;
|
||||
yesterday.messageId = 0;
|
||||
|
||||
@@ -419,6 +435,13 @@
|
||||
interExecutionMemory.periods = 0;
|
||||
interExecutionMemory.positionPeriods = 0;
|
||||
|
||||
interExecutionMemory.distanceToLast = {
|
||||
triggerOn: 0,
|
||||
triggerOff: 0,
|
||||
takePosition: 0,
|
||||
closePosition: 0
|
||||
}
|
||||
|
||||
interExecutionMemory.orderId = 0;
|
||||
interExecutionMemory.messageId = 0;
|
||||
|
||||
@@ -486,6 +509,11 @@
|
||||
periods = interExecutionMemory.periods;
|
||||
positionPeriods = interExecutionMemory.positionPeriods;
|
||||
|
||||
distanceToLast.triggerOn = interExecutionMemory.distanceToLast.triggerOn
|
||||
distanceToLast.triggerOff = interExecutionMemory.distanceToLast.triggerOff
|
||||
distanceToLast.takePosition = interExecutionMemory.distanceToLast.takePosition
|
||||
distanceToLast.closePosition = interExecutionMemory.distanceToLast.closePosition
|
||||
|
||||
orderId = interExecutionMemory.orderId; // to be deprecated
|
||||
messageId = interExecutionMemory.messageId; // to be deprecated
|
||||
|
||||
@@ -539,6 +567,11 @@
|
||||
yesterday.periods = periods;
|
||||
yesterday.positionPeriods = positionPeriods;
|
||||
|
||||
yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn
|
||||
yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff
|
||||
yesterday.distanceToLast.takePosition = distanceToLast.takePosition
|
||||
yesterday.distanceToLast.closePosition = distanceToLast.closePosition
|
||||
|
||||
yesterday.hitRatio = hitRatio;
|
||||
yesterday.ROI = ROI;
|
||||
yesterday.anualizedRateOfReturn = anualizedRateOfReturn;
|
||||
@@ -1238,6 +1271,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
distanceToLast.triggerOn = 1;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn
|
||||
}
|
||||
}
|
||||
|
||||
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Switching to Trigger Stage because conditions at Trigger On Event were met."); }
|
||||
break;
|
||||
}
|
||||
@@ -1305,6 +1346,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
distanceToLast.triggerOff = 1;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff
|
||||
}
|
||||
}
|
||||
|
||||
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Switching to No Stage because conditions at the Trigger Off Event were met."); }
|
||||
break;
|
||||
}
|
||||
@@ -1636,6 +1685,55 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* Keeping Distance Counters Up-to-date */
|
||||
if (
|
||||
distanceToLast.triggerOn > 0 // with this we avoind counting before the first event happens.
|
||||
) {
|
||||
distanceToLast.triggerOn++;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
distanceToLast.triggerOff > 0 // with this we avoind counting before the first event happens.
|
||||
) {
|
||||
distanceToLast.triggerOff++;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
distanceToLast.takePosition > 0 // with this we avoind counting before the first event happens.
|
||||
) {
|
||||
distanceToLast.takePosition++;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.takePosition = distanceToLast.takePosition
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
distanceToLast.closePosition > 0 // with this we avoind counting before the first event happens.
|
||||
) {
|
||||
distanceToLast.closePosition++;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.takePosition = distanceToLast.closePosition
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Checking if Stop or Take Profit were hit */
|
||||
if (
|
||||
(strategyStage === 'Open Stage' || strategyStage === 'Manage Stage') &&
|
||||
@@ -1820,6 +1918,15 @@
|
||||
takePositionNow = false
|
||||
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> takePositionNow -> Entering code block."); }
|
||||
|
||||
/* Inicializing this counter */
|
||||
distanceToLast.takePosition = 1;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.takePosition = distanceToLast.takePosition
|
||||
}
|
||||
}
|
||||
|
||||
/* Position size and rate */
|
||||
let strategy = tradingSystem.strategies[currentStrategyIndex];
|
||||
|
||||
@@ -2106,6 +2213,15 @@
|
||||
|
||||
closePositionNow = false
|
||||
|
||||
/* Inicializing this counter */
|
||||
distanceToLast.closePosition = 1;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.closePosition = distanceToLast.closePosition
|
||||
}
|
||||
}
|
||||
|
||||
/* Position size and rate */
|
||||
let strategy = tradingSystem.strategies[currentStrategyIndex];
|
||||
|
||||
@@ -2396,6 +2512,14 @@
|
||||
|
||||
timerToCloseStage = 0
|
||||
|
||||
distanceToLast.triggerOff = 1;
|
||||
|
||||
if (processingDailyFiles) {
|
||||
if (positionedAtYesterday) {
|
||||
yesterday.distanceToLast.triggerOff = distanceToLast.triggerOff
|
||||
}
|
||||
}
|
||||
|
||||
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing the Closing Stage -> Exiting Close Stage."); }
|
||||
} else {
|
||||
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Closing the Closing Stage -> Waiting for timer."); }
|
||||
@@ -2489,7 +2613,11 @@
|
||||
maximumBalanceB: maximumBalanceB,
|
||||
baseAsset: quotedBaseAsset,
|
||||
positionPeriods: positionPeriods,
|
||||
positionDays: positionDays
|
||||
positionDays: positionDays,
|
||||
distanceToLastTriggerOn: distanceToLast.triggerOn,
|
||||
distanceToLastTriggerOff: distanceToLast.triggerOff,
|
||||
distanceToLastTakePosition: distanceToLast.takePosition,
|
||||
distanceToLastClosePosition: distanceToLast.closePosition
|
||||
}
|
||||
|
||||
recordsArray.push(simulationRecord);
|
||||
@@ -2644,7 +2772,12 @@
|
||||
interExecutionMemory.fails = yesterday.fails;
|
||||
interExecutionMemory.hits = yesterday.hits;
|
||||
interExecutionMemory.periods = yesterday.periods;
|
||||
interExecutionMemory.positionPeriods = yesterday.positionPeriods;
|
||||
interExecutionMemory.positionPeriods = yesterday.positionPeriods;
|
||||
|
||||
interExecutionMemory.distanceToLast.triggerOn = yesterday.distanceToLast.triggerOn
|
||||
interExecutionMemory.distanceToLast.triggerOff = yesterday.distanceToLast.triggerOff
|
||||
interExecutionMemory.distanceToLast.takePosition = yesterday.distanceToLast.takePosition
|
||||
interExecutionMemory.distanceToLast.closePosition = yesterday.distanceToLast.closePosition
|
||||
|
||||
interExecutionMemory.messageId = interExecutionMemory.messageId + yesterday.messageId;
|
||||
interExecutionMemory.orderId = interExecutionMemory.orderId + yesterday.orderId;
|
||||
|
||||
@@ -220,7 +220,11 @@
|
||||
record.maximumBalanceB + "," +
|
||||
record.baseAsset + "," +
|
||||
record.positionPeriods + "," +
|
||||
record.positionDays + "]";
|
||||
record.positionDays + "," +
|
||||
record.distanceToLastTriggerOn + "," +
|
||||
record.distanceToLastTriggerOff + "," +
|
||||
record.distanceToLastTakePosition + "," +
|
||||
record.distanceToLastClosePosition + "]";
|
||||
|
||||
if (separator === "") { separator = ","; }
|
||||
|
||||
|
||||
Reference in new issue
Block a user