Trading Orders Exchange API
This commit is contained in:
1 parent
bac5525b68
commit
61451ddd92
4 files changed
+34
-23
No files matched your search
@@ -645,6 +645,20 @@
|
||||
"functionName": "newSuperalgosBotModulesSnapshots",
|
||||
"fileName": "Snapshots.js",
|
||||
"folderName": "Trading-Bot/Low-Frequency-Trading"
|
||||
},
|
||||
{
|
||||
"name": "Exchange API",
|
||||
"propertyName": "exchangeAPI",
|
||||
"functionName": "newSuperalgosBotModulesExchangeAPI",
|
||||
"fileName": "ExchangeAPI.js",
|
||||
"folderName": "Trading-Bot/Low-Frequency-Trading"
|
||||
},
|
||||
{
|
||||
"name": "Trading Orders",
|
||||
"propertyName": "tradingOrders",
|
||||
"functionName": "newSuperalgosBotModulesTradingOrders",
|
||||
"fileName": "TradingOrders.js",
|
||||
"folderName": "Trading-Bot/Low-Frequency-Trading"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
exports.newExchangeAPI = function (processIndex) {
|
||||
exports.newSuperalgosBotModulesExchangeAPI = function (processIndex) {
|
||||
|
||||
let MODULE_NAME = "Exchange API";
|
||||
|
||||
+10
-11
@@ -16,8 +16,7 @@ exports.newSuperalgosBotModulesTradingExecution = function (processIndex, tradin
|
||||
let tradingSystem
|
||||
let sessionParameters
|
||||
|
||||
const TRADING_ORDERS_MODULE = require('./TradingOrders.js')
|
||||
let tradingOrdersModule = TRADING_ORDERS_MODULE.newTradingOrders(processIndex, tradingEngineModuleObject)
|
||||
let tradingOrdersModuleObject = TS.projects.superalgos.botModules.tradingOrders.newSuperalgosBotModulesTradingOrders(processIndex, tradingEngineModuleObject)
|
||||
|
||||
return thisObject
|
||||
|
||||
@@ -26,7 +25,7 @@ exports.newSuperalgosBotModulesTradingExecution = function (processIndex, tradin
|
||||
tradingEngine = TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SIMULATION_STATE.tradingEngine
|
||||
sessionParameters = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.tradingParameters
|
||||
|
||||
tradingOrdersModule.initialize()
|
||||
tradingOrdersModuleObject.initialize()
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
@@ -34,16 +33,16 @@ exports.newSuperalgosBotModulesTradingExecution = function (processIndex, tradin
|
||||
tradingEngine = undefined
|
||||
sessionParameters = undefined
|
||||
|
||||
tradingOrdersModule.finalize()
|
||||
tradingOrdersModule = undefined
|
||||
tradingOrdersModuleObject.finalize()
|
||||
tradingOrdersModuleObject = undefined
|
||||
}
|
||||
|
||||
function mantain() {
|
||||
tradingOrdersModule.mantain()
|
||||
tradingOrdersModuleObject.mantain()
|
||||
}
|
||||
|
||||
function reset() {
|
||||
tradingOrdersModule.reset()
|
||||
tradingOrdersModuleObject.reset()
|
||||
}
|
||||
|
||||
async function runExecution(
|
||||
@@ -68,10 +67,10 @@ exports.newSuperalgosBotModulesTradingExecution = function (processIndex, tradin
|
||||
async function checkExecutionAlgorithms(executionNode) {
|
||||
for (let i = 0; i < executionNode.executionAlgorithms.length; i++) {
|
||||
let executionAlgorithm = executionNode.executionAlgorithms[i]
|
||||
await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.marketBuyOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.marketSellOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.limitBuyOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModule.checkOrders(tradingEngineStage, executionAlgorithm.limitSellOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModuleObject.checkOrders(tradingEngineStage, executionAlgorithm.marketBuyOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModuleObject.checkOrders(tradingEngineStage, executionAlgorithm.marketSellOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModuleObject.checkOrders(tradingEngineStage, executionAlgorithm.limitBuyOrders, executionAlgorithm, executionNode)
|
||||
await tradingOrdersModuleObject.checkOrders(tradingEngineStage, executionAlgorithm.limitSellOrders, executionAlgorithm, executionNode)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
-11
@@ -1,4 +1,4 @@
|
||||
exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
exports.newSuperalgosBotModulesTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
/*
|
||||
The Trading Orders modules manages the execution of orders against the exchanges.
|
||||
*/
|
||||
@@ -16,9 +16,7 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
let tradingSystem
|
||||
let sessionParameters
|
||||
|
||||
const EXCHANGE_API_MODULE = require('./ExchangeAPI.js')
|
||||
let exchangeAPIModule = EXCHANGE_API_MODULE.newExchangeAPI(processIndex)
|
||||
|
||||
let exchangeAPIModuleObject = TS.projects.superalgos.botModules.exchangeAPI.newSuperalgosBotModulesExchangeAPI(processIndex)
|
||||
let announcementsModuleObject = TS.projects.superalgos.botModules.announcements.newSuperalgosBotModulesAnnouncements(processIndex)
|
||||
|
||||
return thisObject
|
||||
@@ -28,7 +26,7 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
tradingEngine = TS.projects.superalgos.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).SIMULATION_STATE.tradingEngine
|
||||
sessionParameters = TS.projects.superalgos.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.tradingParameters
|
||||
|
||||
exchangeAPIModule.initialize()
|
||||
exchangeAPIModuleObject.initialize()
|
||||
announcementsModuleObject.initialize()
|
||||
}
|
||||
|
||||
@@ -37,8 +35,8 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
tradingEngine = undefined
|
||||
sessionParameters = undefined
|
||||
|
||||
exchangeAPIModule.finalize()
|
||||
exchangeAPIModule = undefined
|
||||
exchangeAPIModuleObject.finalize()
|
||||
exchangeAPIModuleObject = undefined
|
||||
|
||||
announcementsModuleObject.finalize()
|
||||
announcementsModuleObject = undefined
|
||||
@@ -490,7 +488,7 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
}
|
||||
}
|
||||
|
||||
let orderId = await exchangeAPIModule.createOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
let orderId = await exchangeAPIModuleObject.createOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
|
||||
if (orderId !== undefined) {
|
||||
tradingEngineOrder.exchangeId.value = orderId
|
||||
@@ -517,7 +515,7 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
}
|
||||
}
|
||||
|
||||
let order = await exchangeAPIModule.getOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
let order = await exchangeAPIModuleObject.getOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
|
||||
if (order === undefined) {
|
||||
tradingSystem.warnings.push(
|
||||
@@ -885,7 +883,7 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
}
|
||||
|
||||
/* Check if we can cancel the order at the Exchange. */
|
||||
let result = await exchangeAPIModule.cancelOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
let result = await exchangeAPIModuleObject.cancelOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
if (result === true) {
|
||||
|
||||
/* At this point we know which is the exit type for this order */
|
||||
@@ -896,7 +894,7 @@ exports.newTradingOrders = function (processIndex, tradingEngineModule) {
|
||||
To sync our accounting, we need to check the order one last time and if it changed, fix it.
|
||||
*/
|
||||
|
||||
let order = await exchangeAPIModule.getOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
let order = await exchangeAPIModuleObject.getOrder(tradingSystemOrder, tradingEngineOrder)
|
||||
|
||||
if (order === undefined) {
|
||||
tradingSystem.warnings.push(
|
||||
Reference in new issue
Block a user