Is it better to trade one at a time? or is 'all' just as good?
Solution 1:
Looking at the game code, the tradeAll function, in diplomacy.js, delegates the work off to tradeMultiple. That function takes in an amount, subtracts the costs, then does the following:
for (var i = 0; i<amt; i++){
var yieldRes = this.tradeInternal(true); //supress msg
for (var res in yieldRes) {
yieldResTotal[res] = yieldResTotal[res] ? yieldResTotal[res] + yieldRes[res] : yieldRes[res];
}
}
this.printYieldOutput(yieldResTotal);
Thus, all that happens when you hit Trade All, is that the exact same code runs over and over, the results are summed up, and a single line is printed in the log. The results are therefore guaranteed to be no different than if you had hit the Trade button over and over.
Incidentally, the same sort of design is used for things like crafting, hunting, etc. to make sure the calculations always line up the same, no matter what sized batches you craft in.