Handel w wyznaczonych godzinach
Kategoria: Repozytorium kodu MQL4 |
29 maja 2009 o 22:47 |
Odpowiedzi: 5 |
Permalink
Czasami zachodzi potrzeba ograniczenia godzin, w których EA ma handlować. Moża 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.
5 odpowiedzi do wpisu "Handel w wyznaczonych godzinach"
bibi88bibi
Ostatnio chyba ten problem na forum rozwiązałeś? Mi się podoba, niedługo zamierzam zacząć programować w MQL. Znalazłem dwie ciekawe strony na ten temat, mianowicie: - http://www.metatrader.info/node/34 - http://www.forex-tsd.com/metatrader-programming/7813-mql4-guide.html i oczywiście dział "Programowanie" na forum. Zna ktoś jeszcze inne przydatne strony? Nie muszą być oczywiście po polsku, chyba nawet takich nie ma ;)
taka tam
Fajna funkcja, wykorzystałam u siebie, teraz mogę zostawić komputer włączony non-stop, a on "gra" tylko w określonych okresach. Luktom a w jakiej kolejności wykonywane są funkcje ?
luktom
W kolejności ich wywołania.
taka tam
chyba rozumiem, czyli w kolejności wywołania w kodzie np f(1), f(2); czy to również działa kolejno dla && np. f(2)==true && f(1)=false - najpierw sprawdzi f(2) potem f(1)
luktom
Tak.