Nowa świeca - wady i zalety
Nowa świeca - wady i zalety
Mam pytanie co jest lepsze, aby określić moment otwarcia nowej świecy :
- funkcja isNewBar()
- Volume[0]==1
Obie możliwości określają to samo, ale co jest lepsze i dlaczego ?
Jeśli istnieje prosty zapis Volume[0]==1 to po co sobie wogóle zawracać głowę funkcją ?
- funkcja isNewBar()
- Volume[0]==1
Obie możliwości określają to samo, ale co jest lepsze i dlaczego ?
Jeśli istnieje prosty zapis Volume[0]==1 to po co sobie wogóle zawracać głowę funkcją ?
Solą życia jest kasa.
Re: Nowa świeca - wady i zalety
Nigdy nie myślałem o Vol. A jak to faktycznie jest?Bo wydaje się lepsze.
Czy nowa świeca zawsze startuje z Volume[0]==0 ?
Czy nowa świeca zawsze startuje z Volume[0]==0 ?
R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)
Re: Nowa świeca - wady i zalety
Nie 0. Startuje z 1.
Teoretycznie zawsze.
Dlatego pytam o wady i zalety w praktyce.
Teoretycznie zawsze.
Dlatego pytam o wady i zalety w praktyce.
Solą życia jest kasa.
Re: Nowa świeca - wady i zalety
W czasie jadnego wykonania funkcji start mogą nadejść dwa lub i więcej ticków, wtedy pierwszą wartością volume otrzymaną przez ea będzie 2 albo więcej, lepiej warunek powstania nowej świecy oprzeć na sprawdzeniu Time[0].
Re: Nowa świeca - wady i zalety
Nie, mówię o funkcji isNewBar, ona sprawdza czy Time[0] jest różny od zapisanego w zmiennej i wykonuje kod.
Re: Nowa świeca - wady i zalety
Tylko, że funkcję isNewBar() można użyć tylko raz w całym kodzie.
Ale sama koncepcja porównywania Time[0] z poprzednim zapisanym jest ciekawa. Można to chyba jakoś napisać pomijając funkcję. Tak, aby można było tego użyć więcej razy.
Ale sama koncepcja porównywania Time[0] z poprzednim zapisanym jest ciekawa. Można to chyba jakoś napisać pomijając funkcję. Tak, aby można było tego użyć więcej razy.
Solą życia jest kasa.
Re: Nowa świeca - wady i zalety
persenov pewnie ze mozna, funkcji isnewbar() uzywasz tylko raz bo tam masz 1 zmienna gdzie sobie zapisujesz ten czas ktory pozniej sprawdzasz i jesli sie zmienil to znaczy ze jest nowa swieca, rozwiazanie jest proste musisz miec wiecej zmiennych tzn wczedzie gdzie chcesz robic to porowanie potrzebna jest jedna, mozesz tez zrobic tak ze zrobisz sobie funkcje isnewbar1(), isnewbar2() itd ile razy potrzebujesz
-- Dodano: ndz 30-09-2012, 12:45 --

-- Dodano: ndz 30-09-2012, 12:45 --
testowales to? wydaje mi sie ze nie masz racji no bo mamy pierwszy tick i jesli ea jest co tick odpalane to skad niby ma wiedziec ze wpadly 2 ticki skoro wciaz sie wykonuje na pierwszym? wiec wg mnie powinnien dzialac ten motyw z volume, tyle ze nigdy tego nie uzywalem a mt4 jest tak zagadkowe ze wszystko moze sie wydarzycartur_ar pisze:W czasie jadnego wykonania funkcji start mogą nadejść dwa lub i więcej ticków, wtedy pierwszą wartością volume otrzymaną przez ea będzie 2 albo więcej, lepiej warunek powstania nowej świecy oprzeć na sprawdzeniu Time[0].

- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Nowa świeca - wady i zalety
Bo to nie EA ma wiedziec jaki jest Volumen tylko MT4.xpep pisze:wydaje mi sie ze nie masz racji no bo mamy pierwszy tick i jesli ea jest co tick odpalane to skad niby ma wiedziec ze wpadly 2 ticki skoro wciaz sie wykonuje na pierwszym?
funkcja start() musi zostac wykonana do konca i moze sie tak zdazyc ze pierwszy tick nadejdzie w trakcie jej wykonywania i zostanie zignorowany

dlatego ja zwasze uzywalem opcji opartej na Time[0], ale az po niedzieli sprawdze ten Volumen

z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Nowa świeca - wady i zalety
@personov zwyczajnie
Pewnie można wykonać to porownanie więcej razy w kodzie, w takim razie przypisanie prevTime=Time[0] musi się znaleźć na końcu funkcji start żeby pozostałe sprawdzenia miały szansę w ogóle się wykonać.
@xpep nie testowałem, wyobrażam sobie taką sytuację: przychodzi tick (my wiemy, że jest to ostatni tick starej świecy ale ea tego nie wie bo skąd miałby wiedzieć), rusza funkcja start, w czasie jej wykonania przychodzi następny tick (pierwszy nowej świecy), następnie start dobiega końca i ea czeka na kolejny tick, po jego nadejściu rusza ponownie start ale volume[0] wynosi 2, w ten sposób ea może pominąć utworzenie świecy, tym bardziej że w czasie dynamicznego rynku podczas jednego przebiegu może nadejść więcej niż jeden tick, wtedy pierwsze odczytane volume może być równe 2,3,4 czy ile chce.
Kod: Zaznacz cały
if(Time[0]!=prevTime)
{
prevTime=Time[0];
... wykonaj kod;
}
@xpep nie testowałem, wyobrażam sobie taką sytuację: przychodzi tick (my wiemy, że jest to ostatni tick starej świecy ale ea tego nie wie bo skąd miałby wiedzieć), rusza funkcja start, w czasie jej wykonania przychodzi następny tick (pierwszy nowej świecy), następnie start dobiega końca i ea czeka na kolejny tick, po jego nadejściu rusza ponownie start ale volume[0] wynosi 2, w ten sposób ea może pominąć utworzenie świecy, tym bardziej że w czasie dynamicznego rynku podczas jednego przebiegu może nadejść więcej niż jeden tick, wtedy pierwsze odczytane volume może być równe 2,3,4 czy ile chce.