What I know is that in MQL4 the function OrderClose() allows you to set the lot size to be closed, which makes the function capable to partially close the trade. When that happens, in the list of trades it appears that the original trade has been fully closed and a new one has been created (with smaller lot size). Both trades have different ticket numbers, so visually you can't even tell that it was a partial close, but it's a little bit different on a lower level. I'm not sure, but I think that it's better to partially close the trade instead of fully close and open smaller amount after that.