Running multiple systems simultaneously via .bat

I'm planning on running several systems simultaneously, e.g

start "path/to/system1.bat"
start "path/to/system2.bat"
start "path/to/system3.bat"
start "path/to/system4.bat"

where each of the batches is;

"C:\Program Files\AmiBroker\Broker.exe" /runbatch "C:\Program Files\AmiBroker\Formulas\Systems\system1.abb" /exit
"C:\Program Files\AmiBroker\Broker.exe" /runbatch "C:\Program Files\AmiBroker\Formulas\Systems\system2.abb" /exit

etc.
One of the scripts in the system requires a pause to wait for a response from the server for 60 seconds, to parse filled orders to files external to the database, so I don't want to run them sequentially if I can avoid it.
If I run these in paralell, as in the top batch file here, then can I assume that even if I am using the same database, and only reading variables to generate signals, I can do so safely?

your post isn't clear enough
like this part

If you are going to start multiple instances of AB on the same DB, they will load Data which was on the disk at that point in time, like symbol data or static variables etc

In theory it should work if this is your only requirement.

If instances are modifying data, the modified data will generally reside in "memory". Cases like flush-to-disk by clicking save DB, or exit will then make disk-writes.
AB would even flush if memory cache size is reached etc so its tricky to predict when/how it will happen.

Again, when these instances exit or write, they will be racing to write in the same files so probably the last instance to write will be the data on the disk.

If you wanted to run in parallel, might as well run all the batch files from a single AB instance. Then AB would be more suited to handle the parallelism. It's not like that more instances would necessarily improve any performance if all of it is on the same DB.

On the contrary, there are scenarios where multiple instances would make AB hog 4 times the RAM for 4 instances, because then they dont share the same address space. (that too, all for the same DB)

Using multiple instances of AB is the only way when you need multiple concurrent DBs.

Yeah, ok, I see. I wasn't clear enough.

So when I run the system, Amibroker launches, runs an exploration, then creates a csv, one columns of which I have created is "Signal" (Via AddTextColumn())

Buy = <SOME CONDITION>
Sell = <SOME CONDITION>
TextList = "No signal\nBuy\nSell\nBuy and Sell"; 
TextSelector = 1 * Buy + 2 * Sell;  
AddMultiTextColumn( TextSelector, TextList, "Signal" ); 

I then use a python script which is executed via "Execute and Wait", which parses the signals and does the position size calculation and capital allocation rules etc in python, externally to Amibroker.

At the exchange end, to save on trading fees, I am placing limit orders and making a, API call to get the order book each time, and then checking afterward to see if the positions have been filled, so a file can be parsed my end keeping record of the trades I have open in that system. This means that the thread can take a minute or more on the hour.

So in the scenario where I am running, say 4 hourly systems at once, it would be quite sub-optimal to do system 1 -> system 2 -> system 3 ->system 4, as by the time system 4 is going, I'll be 6 minutes into the hour.

The next consideration is, that I must ensure that the data import is complete before I launch my systems, so I did not want to simply launch several .abb vi the Amibroker scheduler on the hour, as it would be scanning 1 bar behind data, so I would run "HourlySystems.bat"...

start "path/to/system1.bat"
start "path/to/system2.bat"
start "path/to/system3.bat"
start "path/to/system4.bat"

from the .bat file I use to launch my data import.

So, based on my understanding, is that I am not modifying data, that I am creating csv files only, I am assuming I will be safe to run these.

what does not work if you had a single instance always running and launched all the 4 batch files and then left them running in a scheduler because you could easily import into the same instance without having to do all the circus of opening and closing AB so many times.

Fair enough. Thank you very much.