Hi,
The original code rounds UP the number of lots, it's because NormalizeDouble rounds up, such as NormalizeDouble(0.0232, 2) leads to 0.03 which is larger than the wanted place size. Before employing NormalizeDouble it should be Floored.
Fixed code for bokers that allow micro lot granularity:
Inserted Code Lots = AccountBalance()*Risk/StopLoss/(MarketInfo(Symbol(), MODE_TICKVALUE); Lots = NormalizeDouble(MathFloor(Lots * 100) / 100, 2);