if((Hour()==HandelsBeginn)&&(Hour()!=HandelsEnde))
Das heißt: Wenn aktuelle Stunde GENAU GLEICH StartStunde UND aktuelle Stunde UNGLEICH EndStunde
Mit anderen Worten: Eine Stunde später (aber noch vor der EndStunde) ist die Bedingung natürlich nicht mehr true, also wird auch nicht mehr gearbeitet. Ist wie ABM - ArbeitBisMittag, lol ...
möglicherweise hilft das:
if((Hour()>=HandelsBeginn)&&(Hour()<=HandelsEnde))
Solange die Bedingung für das öffnen der Position true ist wird dann auch eine neue Posi eröffnet. Du müsstest da eine Begrenzung einbauen oder was auch immer.