Eigentlich brauchst du doch nur RefreshRates() zu nutzen oder?
Wenn RefreshRates() == false ist, dann müssen die Daten in der History aktuell sein. Also müsstest du solange warten, bis dieser Fall eingetreten ist.
Ich hab die Funktion nie genutzt, aber vielleicht läuft anderenfalls (also falls der EA nicht einfach bei RefreshRates anhält bis alle Daten geladen worden sind, müsstest du mal selbst austesten) läuft dein EA schon weiter, da RefreshRates() == true ist, aber die History noch nicht komplett geladen worden ist.
Hier ein Link zu einem Artikel. Ist aber für den MT5, kannst aber vielleicht dennoch was für dich mitnehmen:
https://www.mql5.com/en/docs/series/timeseries_access