Funkcja StrToTime - Strona 2
Strona 2 z 2 PierwszyPierwszy 12
Pokaż wyniki od 11 do 13 z 13

Wątek: Funkcja StrToTime

  1. #11

    Cytat Zamieszczone przez ;
    A co z ludźmi używającymi zakresów, które przechodzą przez północ?
    Wstawiony kod stringTimeStart = 22:00;/10PM stringTimeEnd = 10:00;/10AM następnego dnia stringBrokerDate; int_TimeStart, _TimeEnd;/te powinny znajdować się wewnątrz start () NIGDY w obrębie init, jeśli (TimeCurrent () gt; _TimeEnd) {//pierwszy raz będzie to zawsze prawdziwe, upewniając się, że BrokerDate jest poprawne/dlaczego to robimy? aby zapewnić, że BrokerDate i _TimeEnd nie zakończą się wyścigiem kotówmyszy BrokerDate = TimeToStr (TimeCurrent (), TIME_DATE); } _TimeStart = StrToTime (BrokerDate TimeStart); _TimeEnd = StrToTime (BrokerDate TimeEnd); if (_TimeStart gt; _TimeEnd) {_TimeEnd = _TimeEnd 86400;/dodaj 1 dzień}/teraz swobodnie użyj _TimeStart i _TimeEnd, aby porównać z TimeCurrent () Ten kod jest napisany dla EAScript. W zależności od tego, gdzie chcesz tego użyć, może mieć różne efekty.

  2. #12
    Oto fragment kodu z opakowania EA, które napisałem dla klienta kilka miesięcy temu: Inserted Code::::::: extern string StartTime = 07:00;/czas rozpoczęcia ustalania ceny w łańcuchu zewnętrznym ciąg EndTime = 08:00;/czas zakończenia okresu obowiązywania ceny zewnętrznej dla okna zewnętrznego ExpiryTime = 06:00;/czas, w którym wygasają oczekujące zamówienia, a wszelkie wciąż otwarte zamówienia zamknięte extern int Rozliczenie = 5;/cena wejścia ”tolerancja” bezpieczeństwa powyżej okna wysokiego, poniżej okna dolna zewnętrzna podwójna MinWinHgt = 0;/jeśli okno cenowe (w tym Wyprzedaż) lt; ta wartość, bez złożenia zamówienia, jest obecnie dozwolona na poziomie zewnętrznym double MaxWinHgt = 9999;/jeśli okno cenowe (w tym Wyprzedaż) gt; ta wartość, bez możliwości złożenia zamówienia, jest dzisiaj możliwa::::::: int start () {double dt0 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) 00:00:00); double dt1 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) StartTime : 00); double dt2 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) EndTime : 00); double dt3 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) ExpiryTime : 00); jeżeli (dt3 dt2) dt3 = 86400; int ib1 = iBarShift (NULL, 0, dt1); int ib2 = iBarShift (NULL, 0, dt2); if (TimeCurrent () gt; = dt2 TimeCurrent () lt; = dt3) {double vHigh = 0, vLow = 999; dla (int j = ib1; jgt; ib2; j--) {vHigh = MathMax (vHigh, High # 91; j # 93; Clearance * pnt); vLow = MathMin (vLow, Low # 91; j # 93; -Clearance * pnt); } if (vHigh-vLow lt; = MaxWinHgt * pnt vHigh-vLow gt; = MinWinHgt * pnt) {::::::: dt0 to północ (czas MT4) w bieżącym dniu dt1 to czas rozpoczęcia (czas MT4 ) pola breakout dt2 to czas zakończenia (czas MT4) pola breakout dt3 to czas wygaśnięcia (czas MT4) Zamówienia można umieszczać tylko między dt2 (koniec pola breakout) a dt3 (wyznaczony czas wygaśnięcia) . Dlatego dodaję 86400 (liczba sekund w 24-godzinnym dniu) do dt3, jeśli to konieczne, aby zapewnić, że jest zawsze większy niż dt2 (tak jak robi to Ragnakore). Następnie EA składa zamówienia tylko wtedy, gdy TimeCurrent () znajduje się pomiędzy dt2 i dt3. (vHigh i vLow są najwyższymi i najniższymi cenami osiągniętymi w polu breakout, plus określony dystans dostarczony przez użytkownika). Mam nadzieję że to pomoże.

  3. #13
    Wow Hanower !!! Dziękuję bardzo za blok kodu. Zastanawiam się jednak, nie widzę zmiennej dt0 używanej nigdzie poza inicjalizacją. Jak więc pracujesz przez północ? Powiedzmy, że chciałem, aby początek zakresu wynosił 23:00 wczoraj, a koniec zakresu wynosił już 3:00. Jak to robi ten blok kodu? Dodałem fragment pogrubiony, aby spróbować osiągnąć to, co próbuję zrobić. Wstawiony kod::::::: extern string StartTime = 07:00;/czas rozpoczęcia ustalania ceny w łańcuchu zewnętrznym ciąg EndTime = 08:00;/czas zakończenia okresu obowiązywania ceny zewnętrznej dla okna zewnętrznego ExpiryTime = 06:00;/czas, w którym wygasają oczekujące zamówienia, a wszelkie wciąż otwarte zamówienia zamknięte extern int Rozliczenie = 5;/cena wejścia ”tolerancja” bezpieczeństwa powyżej okna wysokiego, poniżej okna dolna zewnętrzna podwójna MinWinHgt = 0;/jeśli okno cenowe (w tym Wyprzedaż) lt; ta wartość, bez złożenia zamówienia, jest obecnie dozwolona na poziomie zewnętrznym double MaxWinHgt = 9999;/jeśli okno cenowe (w tym Wyprzedaż) gt; ta wartość, bez możliwości złożenia zamówienia, jest dzisiaj możliwa::::::: int start () {double dt0 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) 00:00:00); double dt1 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) StartTime : 00); double dt2 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) EndTime : 00); double dt3 = StrToTime (TimeToStr (TimeCurrent (), TIME_DATE) ExpiryTime : 00); jeżeli (dt3 dt2) dt3 = 86400; # 91; b # 93; if (dt1 gt; dt2) dt1 = StrToTime (TimeToStr (TimeCurrent () - 86400, TIME_DATE) StartTime : 00); # 91;b # 93;/Jeśli StartTime jest większy niż EndTime w tym samym dniu, kod zakłada, że ​​planowany czas rozpoczęcia to 86400 sekund wcześniej. int ib1 = iBarShift (NULL, 0, dt1); int ib2 = iBarShift (NULL, 0, dt2); if (TimeCurrent () gt; = dt2 TimeCurrent () lt; = dt3) {double vHigh = 0, vLow = 999; dla (int j = ib1; jgt; ib2; j--) {vHigh = MathMax (vHigh, High # 91; j # 93; Clearance * pnt); vLow = MathMin (vLow, Low # 91; j # 93; -Clearance * pnt); } if (vHigh-vLow lt; = MaxWinHgt * pnt vHigh-vLow gt; = MinWinHgt * pnt) {:::::::

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.