Bug Fixes on the Optional Stages Feature

This commit is contained in:
Luis Fernando Molina committed 2020-12-04 17:18:23 +01:00
1 parent e87d3bf3ce
commit 3439c015fc
2 files changed
+23 -11

No files matched your search

@@ -271,7 +271,7 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
if (tradingEngineOrder.orderQuotedAsset.size.value <= 0) {
tradingSystem.warnings.push(
[
[tradingEngineOrder.orderQuotedAsset.size.id, tradingSystemOrder.id ],
[tradingEngineOrder.orderQuotedAsset.size.id, tradingSystemOrder.id],
'Could not open this order because its size is zero.'
]
)
@@ -387,6 +387,8 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
tradingEngineStage.stageBaseAsset.targetSize.value -
tradingEngineStage.stageBaseAsset.sizePlaced.value
tradingEngineOrder.orderBaseAsset.size.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(tradingEngineOrder.orderBaseAsset.size.value, 10)
tradingSystem.warnings.push(
[
[tradingEngineStage.stageBaseAsset.targetSize.id, tradingEngineOrder.orderBaseAsset.size.id, tradingEngineStage.stageBaseAsset.sizePlaced.id],
@@ -397,6 +399,7 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
/* Size in Quoted Asset */
tradingEngineOrder.orderQuotedAsset.size.value = tradingEngineOrder.orderBaseAsset.size.value * tradingEngineOrder.rate.value
tradingEngineOrder.orderQuotedAsset.size.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(tradingEngineOrder.orderQuotedAsset.size.value, 10)
break
}
case 'Quoted Asset': {
@@ -414,6 +417,8 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
tradingEngineStage.stageQuotedAsset.targetSize.value -
tradingEngineStage.stageQuotedAsset.sizePlaced.value
tradingEngineOrder.orderQuotedAsset.size.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(tradingEngineOrder.orderQuotedAsset.size.value, 10)
tradingSystem.warnings.push(
[
[tradingEngineStage.stageQuotedAsset.targetSize.id, tradingEngineOrder.orderQuotedAsset.size.id, tradingEngineStage.stageQuotedAsset.sizePlaced.id],
@@ -424,7 +429,7 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
/* Size in Base Asset */
tradingEngineOrder.orderBaseAsset.size.value = tradingEngineOrder.orderQuotedAsset.size.value / tradingEngineOrder.rate.value
tradingEngineOrder.orderBaseAsset.size.value = TS.projects.superalgos.utilities.miscellaneousFunctions.truncateToThisPrecision(tradingEngineOrder.orderBaseAsset.size.value, 10)
break
}
}
@@ -522,7 +527,7 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
if (order === undefined) {
tradingSystem.warnings.push(
[
[tradingSystemOrder.id, tradingEngineOrder.id],
[tradingSystemOrder.id, tradingEngineOrder.id],
'Could not verify the status of this order at the exchange.'
]
)
@@ -899,7 +904,7 @@ exports.newSuperalgosBotModulesTradingOrders = function (processIndex) {
if (order === undefined) {
tradingSystem.warnings.push(
[
[tradingSystemOrder.id, tradingEngineOrder.id],
[tradingSystemOrder.id, tradingEngineOrder.id],
'Could not verify the status of this order at the exchange, and syncronize the accounting.'
]
)
@@ -85,11 +85,11 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) {
}
function reset() {
resetTradingEngineDataStructure()
tradingPositionModuleObject.reset()
tradingStrategyModuleObject.reset()
tradingExecutionModuleObject.reset()
resetTradingEngineDataStructure()
}
function cycleBasedStatistics() {
@@ -194,7 +194,7 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) {
tradingEngine.current.episode.distanceToEvent.triggerOff.value = 1
announcementsModuleObject.makeAnnoucements(triggerStage.triggerOff)
changeStageStatus('Trigger Stage', 'Closed')
changeStageStatus('Trigger Stage', 'Closed', 'Trigger Off Event')
tradingStrategyModuleObject.closeStrategy('Trigger Off')
}
}
@@ -243,7 +243,7 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) {
}
}
changeStageStatus('Trigger Stage', 'Closed')
changeStageStatus('Trigger Stage', 'Closed', 'Position Taken')
changeStageStatus('Open Stage', 'Opening')
changeStageStatus('Manage Stage', 'Opening')
}
@@ -729,7 +729,7 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.closingPosition('Stop Loss')
changeStageStatus('Close Stage', 'Opening')
changeStageStatus('Manage Stage', 'Closed')
changeStageStatus('Manage Stage', 'Closed', 'Stop Loss Hit')
announcementsModuleObject.makeAnnoucements(strategy.closeStage)
return
}
@@ -749,7 +749,7 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) {
tradingPositionModuleObject.closingPosition('Take Profit')
changeStageStatus('Close Stage', 'Opening')
changeStageStatus('Manage Stage', 'Closed')
changeStageStatus('Manage Stage', 'Closed', 'Take Profit Hit')
announcementsModuleObject.makeAnnoucements(strategy.closeStage)
return
}
@@ -1077,9 +1077,16 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) {
resetStage(tradingEngine.current.strategyManageStage.status)
}
if (tradingEngine.current.strategyCloseStage.status.value === 'Closed') {
resetStage(tradingEngine.current.strategyCloseStage)
resetStage(tradingEngine.current.strategyCloseStage.status)
}
if (tradingEngine.current.position.status.value === 'Closed')
{
resetStage(tradingEngine.current.strategyTriggerStage)
resetStage(tradingEngine.current.strategyOpenStage)
resetStage(tradingEngine.current.strategyManageStage)
resetStage(tradingEngine.current.strategyCloseStage)
}
function resetStage(stage) {
TS.projects.superalgos.globals.processModuleObjects.MODULE_OBJECTS_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_ENGINE_MODULE_OBJECT.initializeNode(stage)
}