Invalid Price - page 2

 

My last concern

the invalid price maybe came from what?

Non-matching tick-size. Using the correct amount of digits with NormalizeDouble() is nice, but not enough in case of doubts. 

ES future has a tick-size of 0,25, means two digits. A price of 4.000,12 matches the number of digits, but not the tick-size, and is actually invalid. Whereby 4.000,00 and 4.000,25 would be correct values.