On the Kraken API, a limit order and a stop-loss-limit order look similar in a list of order types but do quite different jobs. One is a standing instruction to trade at a price you have chosen; the other waits for the market to reach a trigger before it places a limit order on your behalf. A disciplined bot reaches for each deliberately, and the difference between them is where a lot of avoidable surprises live.
The limit order: a price you name
A limit order says "fill me at this price or better, and not worse." It will not pay more than the limit to buy or accept less than the limit to sell. The trade-off is certainty of price against certainty of execution: if the market never reaches your level, the order simply sits and may never fill. A bot uses a limit order when controlling the entry or exit price matters more than guaranteeing the trade happens.
The stop-loss-limit order: a trigger, then a limit
A stop-loss-limit order has two prices. The first is the stop, or trigger: the market level that activates the order. The second is the limit that the now-live order will respect once triggered. While the market is on the safe side of the stop, the order is dormant. When price crosses the trigger, the order wakes up and becomes an ordinary limit order at the limit price you set.
The gap a stop-limit can leave
Here is the subtlety that catches people out. Because the activated order is a limit, not a market order, it will not fill below its limit price when selling. If price gaps straight through both the trigger and the limit in a fast move — common in a thin, volatile crypto market — the order can activate and still not fill, leaving the position open exactly when you wanted out. That is the cost of price protection: the protection itself can prevent the exit.
When the bot uses each
The choice is a discipline decision, not a preference. A limit order suits patient entries where you would rather miss the trade than overpay. A stop-loss-limit suits a protective exit where you want a trigger to fire but still refuse to sell into a freefall at any price. Either way, the bot records which it used and why in the execution audit trail, so nothing it did is a mystery after the fact.
For the full set of order types and the reasoning behind each, read order types on Kraken. And because fast markets stress both the order book and the connection, see how the bot handles rate limits and reconnection. Described here in plain terms; always confirm current behaviour against Kraken's own API documentation.