Czasami zachodzi potrzeba ograniczenia godzin, w których EA ma handlować. Można robić to na różne sposoby, ja jednak pokażę chyba najbardziej elegancki i najbardziej elastyczny – czyli definiowanie czasu jako stringa (pozwala na definiowanie minut a nawet sekund) oraz całość w postaci osobnej funkcji.
extern string time1Begin="4:00"; extern string time1End="12:00"; extern string time2Begin="16:00"; extern string time2End="20:00"; bool isTradingTime() { if(TimeCurrent()>StrToTime(time1Begin) && TimeCurrent()<StrToTime(time1End)) { return(true); } if(TimeCurrent()>StrToTime(time2Begin) && TimeCurrent()<StrToTime(time2End)) { return(true); } return(false); }
I kilka uwag (jak zawsze):
- Przykład zawiera dwa przedziały czasowe, nic nie stoi na przeszkodzie aby dodać więcej :)
- Kod sprawdza czas wg czasu brokera (odpowiada za to TimeCurrent()), jeśli ktoś woli definiować czas wg zegara komputera na którym działa EA to wystarczy zamienić TimeCurrent() na TimeLocal()
- Ze względu na uniwersalność EA w polach czasu można podać także pełne daty, wtedy EA będzie handlował od i do żądanego dnia.
Autor: Łukasz Tomaszkiewicz