There might be a 5th way to do it with pre-signed and stored txs... also very dangerous if that gets attacked :D
The internal market is so underrated. There are heaps of interesting information missing in the dex api, which you could get by streaming blocks, instead... like who's order it is and things.
The other way i mentioned means no one is giving authority to any other accounts and our BOT will hold no money for more than a couple seconds so i don't see it as dangerous ... however just more work for the UI i think.
edit: nvm