No, your assumptions about the stop-limit order are not correct.
A "Stop Limit" order is basically a stop-loss order with a safety limit. It means: after reaching the stop price, you place a limit order instead of a market order. This is not the same as buying within in a window.
The common use case is to prevent to buy/sell at any price, which is what could happen with a stop-loss order: if you e.g. place a stop-loss order to sell at $100, it places a market order at the moment the price reaches $100. But a market order executes at any price, so is possible that, if the market is in panic, illiquid (and/or outside of trading hours) or your order size is large, you may only be able to sell at $90. If you place a stop-limit order, you can set the limit at e.g. $95. This means, after reaching $100, you place a limit order to sell only above $95. But this also means it may not be (fully) executed.
So for your implementation, I would suggest to ignore stop-limit and treat it like a stop-loss order, as you don't have the data to know if you get the price or not (and you want it to be executed). You could maybe want to execute a stop-limit order 0.1% below the stop price to make up for it.
What you are probably looking for to open a position is a standard buy limit order, e.g. you buy at or below the limit price.
Also, some nit-picking in your definition: a stop-loss order can be used to both buy and sell (e.g. to close a short position).
Now, some thoughts regarding your implementation:
Unless you have intraday data, I doubt you can simulate same-day trades based on high and low alone.
E.g. assume your algorithm sets a limit order for $100, take profit for $105 and stop loss at $95. The values for a specific day are: high $110, low $99.
Given your algorithm, you buy according to (1) (with a limit order, see above). You sell according to (2) (On the same date that the stock is purchased or later if the High price is above the take-profit price). (3) doesn't happen. Nice $5 profit.
Now I tell you how the price actually went that day: it opened $105 and fell to $99. You bought at $100. It is worth $99 now. A $1 loss (for now).
I also doubt that a 50% chance on (2) or (3) is a reasonable assumption to get valid results. It will give you, for small enough windows, a trivial win if the distance from buy price to take-profit is larger than the distance from buy price to stop-loss.
E.g. assume you buy at $100 and set take profit at $100.10 and stop loss at $99.95. It is reasobable to assume that high and low will cover this window on every day. So, given your rules, you would execute (2) with 50% probability (for $0.10 profit) and execute (3) with 50% probability (for $0.05 loss). So on average, you make $0.05 every 2 days by that 50% implementation assumption. In reality though, a drop by $0.05 happens more likely than (and before) an increase by $0.10.
If your windows are larger (e.g. the 10% and 5% you mentioned), this will probably not happen within a day (or at least you could probably filter those events out). You should make sure though that enough occurrences happened to give you good statistics (as a drop by 10% may take some time), so your bad events may by random chance have not happened often enough to eat up the wins from the good events - but could catch up. E.g. if your commodity is the housing market, your result may vary if you include a subprime crisis or not.
Also note that the time frame might be relevant: if you buy a stock that increases by 5% in 2 years, you could instead put the money into a money account and maybe get more than 2.5% interest per year.
Also, generally, I would be careful if small changes in the implementation make a huge difference in the overall return of the strategy. It could indicate overfitting or general problems with your model (e.g. if you make a profit with 4.92% take-profit distance, but not with 4.90% or 4.94%, the result is probably just random).