Greetings,
Actually there is several topics treating your question but I'll give you couple of hints about that:
Error 1: an expiry of 23 hours means 23*60*60*1000 = 82'800'000 in linux time. You have a typo mistake as you're using 828'000'000 which means 230 hours ! ( about 9 and half days

)
Error 2: You keep updating the expiry time variable (Valido) every hour and therefore the order- if still in pending status- is modified every hour with a new expiry time (last candle time +23 hours) --> Never expire. You need to make sure that the GTT variable is calculated only once before the order submit. Check the attached example for more info.
Hope this helps!
Cheers