Witam
Czy mógłby ktoś napisać mi fragment kodu w którym wynikiem jest nr świecy na którym to zdarzenie wystąpiło jako ostatnio. Np chciałbym znaleźć ostatni wierzchołek, czyli taki układ gdzie świeca X jest mniejsza niż X+1 i X+1 jest większa niż X+2, a jako informację zwrotną chciałbym mieć nr świecy X+1.
Poproszę o pomoc.
Dzięki.
fragment kodu - znajdowanie ostatniego zdarzenia
Re: fragment kodu - znajdowanie ostatniego zdarzenia
Mógłbyś wstawic screena z przykładem?
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: fragment kodu - znajdowanie ostatniego zdarzenia
szukam nr tej świecy, nie najwyższej z jakiegoś zakresu, tylko ostatniego takiego zdarzenia
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Re: fragment kodu - znajdowanie ostatniego zdarzenia
O ile się nie mylę, świeca X ma miec niższe High od świecy X+1? Przez "mniejsza" rozumiem krótsza. Ma sprawdzac również dolne ekstrema?czyli taki układ gdzie świeca X jest mniejsza niż X+1 i X+1 jest większa niż X+2
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: fragment kodu - znajdowanie ostatniego zdarzenia
to był tylko przykład z tymi świecami, chodzi mi dokładnie jak znaleźć jakiekolwiek zdarzenie, ale nie z zakresu od świecy np. 5 do 20, tylko ostatnie jakie wystąpiło, to może dotyczyć np:
(high[x-1] < high[x] ) && (high[x] > high[x+1] )
albo inne zdarzenie - volumen:
(vol[x-1] < vol[x] ) && (vol[x] > vol[x+1] )
a informacją z tej funkcji jest: x - konkretny nr świecy
(high[x-1] < high[x] ) && (high[x] > high[x+1] )
albo inne zdarzenie - volumen:
(vol[x-1] < vol[x] ) && (vol[x] > vol[x+1] )
a informacją z tej funkcji jest: x - konkretny nr świecy
Re: fragment kodu - znajdowanie ostatniego zdarzenia
Aha, tak; kiedy warunek jest spełniony, pętla jest zakończona i zostaje ci numer świecy która cie interesuję:
Kod: Zaznacz cały
int start(){
int i;
for(i=1;i<Bars-1;i++){
if (High[i]>High[i-1] && High[i]>High[i+1]) break;
if (Low[i]<Low[i-1] && Low[i]<Low[i+1]) break;
}
Alert(i);
return(0);
}
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: fragment kodu - znajdowanie ostatniego zdarzenia
Mala poprawke bym zrobil, zaczal bym od i=2;
Czyli np. tak:bfx pisze:Aha, tak; kiedy warunek jest spełniony, pętla jest zakończona i zostaje ci numer świecy która cie interesuję:Kod: Zaznacz cały
int start(){ int i; for(i=1;i<Bars-1;i++){ if (High[i]>High[i-1] && High[i]>High[i+1]) break; if (Low[i]<Low[i-1] && Low[i]<Low[i+1]) break; } Alert(i); return(0); }
Kod: Zaznacz cały
int gdzieSzczytDolek(){
for(int i=2;i<Bars-1;i++){
if (High[i]>High[i-1] && High[i]>High[i+1]) return (i);
if (Low[i]<Low[i-1] && Low[i]<Low[i+1]) return(i);
}
return (-1);
}
Re: fragment kodu - znajdowanie ostatniego zdarzenia
Nie Lowca, dobrze byłoLowcaG pisze:Mala poprawke bym zrobil, zaczal bym od i=2;

Zrobiłem po swojemu i napisałem i-1, i, i+1. U kolegi był X, X+1, X+2 dlatego Ci się pomyliło.
EDIT: Jednak to mi się pomyliło


"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"
Re: fragment kodu - znajdowanie ostatniego zdarzenia
W zasadzie to bym zrobił jeszcze inaczej
Czyli jak funkcja zwroci 0, to nie znalazl (to w zasadzie niemozliwe, ale jak by swieczek nie bylo albo cos...)
jak liczbe dodatnia to jest to pozycja "szczytu", a jak ujemna to jest to pozycja "dolka".

Kod: Zaznacz cały
int gdzieSzczytDolek(){
for(int i=2;i<Bars-1;i++){
if (High[i]>High[i-1] && High[i]>High[i+1]) return (i);
if (Low[i]<Low[i-1] && Low[i]<Low[i+1]) return(-i);
}
return (0);
}
jak liczbe dodatnia to jest to pozycja "szczytu", a jak ujemna to jest to pozycja "dolka".