Sprawdzenie aktualizacji wykresu

O jezykach programowania w platformach i nie tylko.
z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Sprawdzenie aktualizacji wykresu

Nieprzeczytany post autor: z6yszko »

Kriss, trochę nie doczytałem, bo taka dziwna kombinacja nie przyszła mi do głowy :)
Jeśli warunkiem miałoby być sprawdzenie czy iTime() zwraca 0, to po co w ogóle deklarować BarTime. Wystarczyłoby sprawdzić czy iTime zwraca zero. Po drugie nawet jeśli wykres nie będzie uaktualniony, to iTime nie zwróci zera, bo zwróci czas najnowszej świecy na wykresie, nawet jeśli miałaby być sprzed paru dni.
Po trzecie jeśli zastosujesz pętlę
while(IsTradeAllowed() == false) Sleep(10);
RefreshRates();

to robot najpierw będzie czekał aż wykres ruszy i notowania się odświeżą.
Po czwarte w sposób, który przytoczyłem wcześniej można sprawdzić czy ostatnie kilka świec jest po kolei, bez dziury w notowaniach.

A w ogóle to wyjaśnij jaką pracę wykonuje Ci nieprzewidzianie EA zanim odświeży Ci wykres, to powiem jak ten konkretny problem rozwiązać.

Awatar użytkownika
kris007
Pasjonat
Pasjonat
Posty: 551
Rejestracja: 23 sty 2008, 22:50

Re: Sprawdzenie aktualizacji wykresu

Nieprzeczytany post autor: kris007 »

z6yszko pisze: A w ogóle to wyjaśnij jaką pracę wykonuje Ci nieprzewidzianie EA zanim odświeży Ci wykres, to powiem jak ten konkretny problem rozwiązać.
Tak jak napisałem wyżej, używam Ea do kontroli stopa i dalej modyfikacji kolejnych poziomów,
z tym że w zależności jak wykres się maluje to albo to robi albo nie i nie są to też proste wartości z góry określone, tylko zmienne wyliczane na bieżąco.

Problem pojawia się czasami przy uruchomieniu MT4 rano, w sumie to są sekundy, czy ułamki a jednak Ea potrafi być niekiedy szybsze i dokona modyfikacji tylko że nie na poziom który powinien być wyliczony z aktualnego wykresu tylko takiego niepełnego (to jeszcze pół biedy, bo najwyżej dokona korekty za chwilę)
jednak jeśli to się dzieje na przełomie gdzie brakujące świece decydują o tym czy wogóle modyfikacja ma być czy nie to właśnie jest problem bo potrafi zmodyfikować a po aktualizacji wychodzi że nie powinien, poziom wtedy też jest nie taki jak powinien być.
Przy kilku zleceniach na tej samej parze, na jednym zawsze wskoczy taki niewłaściwy poziom.

Nie jest to jakiś wielki kłopot bo można dać samo sleep kilka sekund przed wykonaniem kodu i to już pomoże, no chyba że będzie gdzieś jakaś dziura, jednak pomyślałem sobie że może jest jakiś bardziej "cywilizowany" sposób na rozwiązanie tego, wtedy przy uruchamianiu nie trzeba wszystkiego tak kontrolować, stało się czy nie.

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Sprawdzenie aktualizacji wykresu

Nieprzeczytany post autor: z6yszko »

A zastosowałeś na początku EA pętlę?

Kod: Zaznacz cały

while (IsTradeAllowed() == false)  Sleep(100);
RefreshRates();

Awatar użytkownika
kris007
Pasjonat
Pasjonat
Posty: 551
Rejestracja: 23 sty 2008, 22:50

Re: Sprawdzenie aktualizacji wykresu

Nieprzeczytany post autor: kris007 »

z6yszko pisze:A zastosowałeś na początku EA pętlę?

Kod: Zaznacz cały

while (IsTradeAllowed() == false)  Sleep(100);
RefreshRates();
No nie :wink: miałem wstawić coś podobnego, w rezultacie jakoś tych świec się uczepiłem.

z6yszko
Gaduła
Gaduła
Posty: 266
Rejestracja: 17 sty 2011, 10:09

Re: Sprawdzenie aktualizacji wykresu

Nieprzeczytany post autor: z6yszko »

Zacznij przede wszystkim od tego. Dodatkowo możesz sprawdzać czy poprzednie świece są po kolei w podany przeze mnie sposób.

Awatar użytkownika
kris007
Pasjonat
Pasjonat
Posty: 551
Rejestracja: 23 sty 2008, 22:50

Re: Sprawdzenie aktualizacji wykresu

Nieprzeczytany post autor: kris007 »

Ok, pokombinuję z tym wszystkim, dzięki wielkie.

ODPOWIEDZ