- Minimum spread percent
- Minimum possible profit
- Max order amount
Max order amount is not so important IMO because if trigger conditions will remain bot will perform second trade, third and so on and in fact will do the same as without this parameter (only longer). It is only a parameter to set if you don't trust bot (what is understandable) and you are scared that bot will do losing trade with whole wallet because of delay in api communication (hmm... it makes it important than

).
If I was doing it for me I would set it like that:
(BTC/USDT arbitrage example)
conditions on one of exchanges - spread parameter
95% of wallet in BTC, 5% in USDT - perform trde if spread >5x%
80% of wallet in BTC, 20% in USDT - perform trade if spread >2x%
50 % of wallet in BTC, 50% in USDT - perform trade with spread >x%
20% of wallet in BTC, 80% in USDT - perform trade if spread >2x%
5% of wallet in BTC, 95% in USDT - perform trde if spread >5x%
Or I would put it in parabolic/linear function to achieve better performance (better adaptation of the bot to the conditions) with less code.
This should help optimate profit because of limited wallet supply and no withdrawals. You will not sell all BTC on one exchange for 1% profit when few seconds after there is 2% profit conditions. This will somehow work as max order parameter because if spread>x% bot will perform trade and wait for bigger spread or wallet rebalance (it will not go all in one trade).
I would also code "inside 1 exchange arbitrage system" (doing instant circles f.e. USDT-BTC-ETH-USDT).