Checking that announcements are not fired more than once for the same reason.

This commit is contained in:
Luis Fernando Molina committed 2019-10-21 08:23:11 +02:00
1 parent 189d9ea9da
commit 28ccfdaa90
1 file changed
+34 -5
+34 -5
View File
@@ -253,7 +253,7 @@
yesterday.ROI = 0;
yesterday.anualizedRateOfReturn = 0;
if (interExecutionMemory.roundtrips === undefined) {
if (interExecutionMemory.roundtrips === undefined) { // This just means that the inter execution memory was never used before.
/* Initialize the data structure we will use inter execution. */
@@ -321,6 +321,8 @@
interExecutionMemory.ROI = 0;
interExecutionMemory.anualizedRateOfReturn = 0;
interExecutionMemory.announcements = []
} else {
/* We get the initial values from the day previous to the candles we receive at the current execution */
@@ -1980,7 +1982,7 @@
}
}
This validation is disbled for now because we do not have the correct end date at this point.
/*We wont take a position if we are past the final datetime */
if (bot.VALUES_TO_USE.timeRange.finalDatetime !== undefined) {
if (candle.begin > bot.VALUES_TO_USE.timeRange.finalDatetime.valueOf()) {
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> putOpeningOrder -> Not placing the trade at the exchange because current candle begins after the end date. -> bot.VALUES_TO_USE.timeRange.finalDatetime = " + bot.VALUES_TO_USE.timeRange.finalDatetime); }
@@ -2671,11 +2673,38 @@
}
function checkAnnouncements(node) {
if (node.announcements !== undefined) {
if (node.announcements !== undefined) {
for (let i = 0; i < node.announcements.length; i++) {
let announcement = node.announcements[i]
bot.SESSION.socialBots.announce(announcement)
}
let key = node.type + "-" + announcement.name + "-" + announcement.id
let lastPeriodAnnounced = -1
let newAnnouncementRecord
for (let j = 0; j < interExecutionMemory.announcements.length; j++) {
let announcementRecord = interExecutionMemory.announcements[j]
if (announcementRecord.key === key) {
lastPeriodAnnounced = announcementRecord.periods
newAnnouncementRecord = announcementRecord
break
}
}
if (periods > lastPeriodAnnounced) {
bot.SESSION.socialBots.announce(announcement)
/* Next, we will remmeber this announcement was already done, so that it is not announced again in further processing of the same day. */
if (newAnnouncementRecord !== undefined) {
newAnnouncementRecord.periods = periods
} else {
newAnnouncementRecord = {
key: key,
periods: periods
}
interExecutionMemory.announcements.push(newAnnouncementRecord)
}
}
}
}
}
}