Wykonywanie EA poza ruchem ticków

O jezykach programowania w platformach i nie tylko.
Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Wykonywanie EA poza ruchem ticków

Nieprzeczytany post autor: Cobong »

Witam Szanownych Programistów,

mierze się z takim zagadnieniem, mianowicie: chodzi, że normalnie EA uruchamia się w momentach kiedy na wykresie jest ruch. Nie ma ruchu = nie ma reakcji EA. Chciałbym zrobić, aby EA wykonywało się np. co 2 sec, niezależnie od tego czy na rynku występuje ruch czy nie występuje. Czy jest na to rozwiązanie?

Pozdrawiam
Cobong
Ludzkie słabości i ludzka siła do ich pokonywania...

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

Cobong pisze:Czy jest na to rozwiązanie?

Kod: Zaznacz cały

int start()
{
   while(IsExpertEnabled() && !IsStopped())
   {
      RefreshRates();
      // tutak kod ea
      Sleep(2000);// 2sekundu
   }
}

Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Nieprzeczytany post autor: Cobong »

Pierz Andrzej pisze:
Cobong pisze:Czy jest na to rozwiązanie?

Kod: Zaznacz cały

int start()
{
   while(IsExpertEnabled() && !IsStopped())
   {
      RefreshRates();
      // tutak kod ea
      Sleep(2000);// 2sekundu
   }
}
działa prawie tak jak powinno, z tym, że RefreshRates() zaczyna odświeżać EA w momencie pojawienia się pierwszego ticku. Czyli jak wrzucimy na wykres waloru który jest mało płynny, to reakcja EA może być już spóźniona. Co zrobić by EA działało od momentu wrzucenia na wykres bez czekania na pierwszy tick?

Pozrawiam
Cobong
Ludzkie słabości i ludzka siła do ich pokonywania...

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »


Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

Cobong pisze:Co zrobić by EA działało od momentu wrzucenia na wykres bez czekania na pierwszy tick?
int init()
{
start();
}
z poważaniem
Andrzej Pierz
FOREX-SERVICE

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

a tak do tematu sie dolacze - czy dzialaja wam EA z while'em w testerze?

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Nieprzeczytany post autor: Pierz Andrzej »

crn pisze:a tak do tematu sie dolacze - czy dzialaja wam EA z while'em w testerze?
nie ;)

ja sobie radze tak ze w petli daje na koncu warunek :

Kod: Zaznacz cały

      if (IsTesting()) break;

Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Nieprzeczytany post autor: Cobong »

Pierz Andrzej pisze:
Cobong pisze:Co zrobić by EA działało od momentu wrzucenia na wykres bez czekania na pierwszy tick?
int init()
{
start();
}
Działa elegancko :) Zastanawiam się jeszcze czemu EA nie działa jak jest "brak połączenia" z serwerem? Tzn czemu wtedy nie próbuje wykonywać operacji obliczeniowych?
Ludzkie słabości i ludzka siła do ich pokonywania...

dulf
Pasjonat
Pasjonat
Posty: 399
Rejestracja: 24 kwie 2010, 15:13

Nieprzeczytany post autor: dulf »

Nie rozumiem zastosowania fun.

Kod: Zaznacz cały

IsStopped();
Przecież jeśli kod EA nie jest wykonywany lub jest wstrzymany to i tak nie są prowadzone obliczenia czyli kod nie "idzie" dalej , Po co taka informacja ?
Nie spiesz się , zawsze zdążysz stracić .

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Nieprzeczytany post autor: CoVal »

ta funkcja jest potrzebna po to, aby system nie zawieszal ci sie w czasie pracy - bo odpalony w modzie synchroniczym blokuje skutecznie terminal - jesli jednak uzyje sie tej funkcji to wyjdzie poza petle po wylaczeniu przycisku: "Expert Advisors" to mozna system odblokowac.

ODPOWIEDZ