fragment kodu - znajdowanie ostatniego zdarzenia

O jezykach programowania w platformach i nie tylko.
stad
Stały bywalec
Stały bywalec
Posty: 29
Rejestracja: 01 sie 2010, 11:39

fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: stad »

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.

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: bfx »

Mógłbyś wstawic screena z przykładem?
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

stad
Stały bywalec
Stały bywalec
Posty: 29
Rejestracja: 01 sie 2010, 11:39

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: stad »

szukam nr tej świecy, nie najwyższej z jakiegoś zakresu, tylko ostatniego takiego zdarzenia
fx1.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: bfx »

czyli taki układ gdzie świeca X jest mniejsza niż X+1 i X+1 jest większa niż X+2
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?
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

stad
Stały bywalec
Stały bywalec
Posty: 29
Rejestracja: 01 sie 2010, 11:39

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: stad »

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

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: bfx »

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"

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: LowcaG »

Mala poprawke bym zrobil, zaczal bym od i=2;
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);
}
Czyli np. tak:

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);
}

Awatar użytkownika
bfx
Pasjonat
Pasjonat
Posty: 1260
Rejestracja: 11 sty 2013, 15:49

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: bfx »

LowcaG pisze:Mala poprawke bym zrobil, zaczal bym od i=2;
Nie Lowca, dobrze było :)
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 :) Nie powinien sprawdzac pierwszej świeczki. i=2 powinno byś w moim przykładzie. Zwracam honor. :)
"Ty też jesteś Bogiem! Tylko uświadom to sobie, sobie"

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: fragment kodu - znajdowanie ostatniego zdarzenia

Nieprzeczytany post autor: LowcaG »

W zasadzie to bym zrobił jeszcze inaczej ;)

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);
}
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".

ODPOWIEDZ