pamięć tylko wybranych wartości wskaźnika
pamięć tylko wybranych wartości wskaźnika
Chciałbym zrobić pewien wskaźnik, który będzie bazował tylko na niektórych wartościach innego wskaźnika. Tylko takich, które będą spełniały określony warunek.
Jako przykład dam CCI.
Chciałbym w kodzie przeliczać i wykorzystywać tylko te wartości wskaźnika CCI, które będą powyżej 100 lub poniżej -100.
Jest to możliwe jeśli określę warunek poziomu CCi i zapiszę je kolejno do pamięci.
Ale ja chcialbym to zrobić inaczej - odpalam swój kod, a on już ma te przykładowe warości 22 punktów zapisane ponieważ "zajrzy" sobie w historię i zapisze np. 10 ostatnich. I dalej : jak nastąpi kolejny spełniający warunek to zapisuje go jako 1, a wszystkie przesuwa o jeden.
Wiem, że trochę to niejasne, ale ogólnie chodzi mi o to, abym mógł bazować na 10 ostatnich wartościach punktów spełniających warunek.
Czy ktoś wie jak to zrobić ?
Ktoś to już przerabiał ?
Jako przykład dam CCI.
Chciałbym w kodzie przeliczać i wykorzystywać tylko te wartości wskaźnika CCI, które będą powyżej 100 lub poniżej -100.
Jest to możliwe jeśli określę warunek poziomu CCi i zapiszę je kolejno do pamięci.
Ale ja chcialbym to zrobić inaczej - odpalam swój kod, a on już ma te przykładowe warości 22 punktów zapisane ponieważ "zajrzy" sobie w historię i zapisze np. 10 ostatnich. I dalej : jak nastąpi kolejny spełniający warunek to zapisuje go jako 1, a wszystkie przesuwa o jeden.
Wiem, że trochę to niejasne, ale ogólnie chodzi mi o to, abym mógł bazować na 10 ostatnich wartościach punktów spełniających warunek.
Czy ktoś wie jak to zrobić ?
Ktoś to już przerabiał ?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Solą życia jest kasa.
No, ok, to czemu ich sobie po prostu nie znajdziesz? Przecież przy odpaleniu, od razu możesz przelecieć po każdej świeczce i sprawdzić co i jak. (posądzam Cię o takie umiejętnościpersonov pisze:W momencie odpalenia mojego wskaźnika chcę mieć już zapisanych 10 wartości.
Jakich ?

Ostatnio zmieniony 26 lip 2012, 19:08 przez LowcaG, łącznie zmieniany 1 raz.
Spróbuj tego ( value czyli co chcesz przekazać ):
On chce zapisać tylko wybrane a nie wartości wskaźnika po kolei wszystkie ( może coś chce zrobić z nimi )
Tego używam do zapisywania nadchodzacych ticków ale tutaj tez powinno mieć zastosowanie.
On chce zapisać tylko wybrane a nie wartości wskaźnika po kolei wszystkie ( może coś chce zrobić z nimi )
Kod: Zaznacz cały
yourArray[ileWartosci];
int size=ArraySize(yourArray);
void tickSave(double value){
static int cnt=size-1;
if(cnt<0) cnt=0;
if(yourArray[0] !=0)
{
for (int i=size-1; i>0; i--)
{
yourArray[i]=yourArray[i-1];
}
}
tickArray[cnt]=value;
cnt--;
}
Tego używam do zapisywania nadchodzacych ticków ale tutaj tez powinno mieć zastosowanie.
fx-forum
aaa ok, rozumiem, i zawsze chcesz mieć stałą ilość ostatnich "punktów"?
z resztą, odpowiem słownie, bo muszę coś innego zrobić. (Będe za godzinę, jak nie rozwiążesz to napiszę Ci kod)
Najbanalniej jak można to masz tabelkę X elementową, za pierwszym odpaleniem, cofasz się po iCCi (while) az wypełnisz te X elementów, później ArrayCopy do buffora (w sumie możesz od razu operaować na buforze) i tyle..
Poźniej czekasz tylko aż napłynie nowy "punkt" przesówasz (ArrayCopy) X-1 lementów żeby zrobić miejsce, itd. itd.
z resztą, odpowiem słownie, bo muszę coś innego zrobić. (Będe za godzinę, jak nie rozwiążesz to napiszę Ci kod)
Najbanalniej jak można to masz tabelkę X elementową, za pierwszym odpaleniem, cofasz się po iCCi (while) az wypełnisz te X elementów, później ArrayCopy do buffora (w sumie możesz od razu operaować na buforze) i tyle..
Poźniej czekasz tylko aż napłynie nowy "punkt" przesówasz (ArrayCopy) X-1 lementów żeby zrobić miejsce, itd. itd.
Ostatnio zmieniony 26 lip 2012, 19:20 przez LowcaG, łącznie zmieniany 2 razy.
(wróciłem)
Jak dla mnie troszkę przekombinowane i wolne (przy większych tablicach)
Proponuję coś w tym stylu. Może i pomoże autorowi
Korzyści:
-szybkie
-działa na każdej tablicy
-rozmiar tablicy jest nie istotny
MkubuxK pisze:Tego używam do zapisywania nadchodzacych ticków ale tutaj tez powinno mieć zastosowanie
Jak dla mnie troszkę przekombinowane i wolne (przy większych tablicach)
Proponuję coś w tym stylu. Może i pomoże autorowi
Kod: Zaznacz cały
void addValue(double &ch_array[], double value){
ArrayCopy(ch_array,ch_array,1,0,ArraySize(ch_array)-1);
ch_array[0] = value;
}
-szybkie
-działa na każdej tablicy
-rozmiar tablicy jest nie istotny