CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - SMA - poddaje się

SMA - poddaje się

dział ogólny

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 11:32

Mam nadzieję, że pomiary robiłeś dla wersji release z włączonymi optymalizacjami.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 11:36

Wersja release, ustawienia kompilatora dla najszybszego kodu.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 11:40

A do czego te średnie mają służyć? (nie chce mi się teraz temat od nowa wertować)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 11:42

W skrócie - jako jeden z elementów do tworzenia strategii giełdowych.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 11:56

Heh, nie o to pytałem. Chodziło mi głównie o konkretne zastosowanie w Twoim programie, np. rysowanie wykresu itp.

--- dodane ---

Coś mi się wydaje, że źle to liczysz, ale może mi się tylko wydaje - zobaczymy. Później, jak będę miał czas, sprawdzę czasy na jakichś danych testowych i własnej implementacji SMA.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 12:35

W efekcie końcowym wszystko jest rysowane na wykresach. Prosty przykład zastosowania:

Wykres 1 - Kurs // Dane wejściowe
Wykres 2 - SMA(Wykres1, 1000) // Dla wykresy 1 i okresu 1000
Wykres 3 - if(Wykres2 > x) // Jeżeli średnia SMA większa niż to ...

Tak można to zastosować.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 14:33

sma.jpg

Czy to mniej więcej tak powinno wyglądać? Jeśli wszystko dobrze zaimplementowałem, to wyliczenie 2000000 wartości zajmuje u mnie ~65ms (średnia wpisywana do vectora).
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 19:42

możesz mi wrzucić dane testowe ??? to u siebie odpalę i wrzucę screen.

Ale, tak to powinno wyglądać :)


--- DODANE ---

Podaj jeszcze okres jaki wrzuciłeś do liczenia
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 19:47

Dane testowe:
KOD cpp:     UKRYJ  
50. * sin(M_PI * 0.01 * i) + (rand() % 50);

okres wynosił chyba 50, ale głowy nie dam.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 19:54

a możesz wrzucić okres 1000 ?
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 20:01

Hmm, to bez sensu. Jak widać na wykresie (i nie tylko) okres tej sinusoidy wynosi 200, więc tu nie będzie czego porównywać, bo przecież przy tak dużym okresie "tendencja" będzie stała.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 20:13

W załączniku jak u mnie to wygląda. Dane są inne ale widać jak wykres średniej (zielony) się zmienia w zależności od okresu:

Okresy.png


1 - Okres 500
2 - Okres 1000
3 - Okres 2000
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 20:37

Ech, Corvis, Ty mi nie tłumacz o co chodzi z tymi okresami, bo to akurat wiem. Pisałem, że tendencja będzie stała*), na co masz dowód w poniższym wykresie:
sma2.jpg



*) umownie stała, z oczywistych względów, ale wahnięcia są niewielkie, więc do badania poprawności algorytmu "na oko" taki wykres niewiele wnosi.
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: SMA - poddaje się

Nowy postprzez Corvis » niedziela, 4 listopada 2012, 21:31

Ta linia będzie wyglądać różnie w zależności od szczegółowości wykresu. Im więcej danych na ekranie tym linia będzie bardziej dokładna, im mniej tym linia będzie prosta:

Górny wykres na ekranie ok 50000 tików, dolny ok 5000 tików efekt jak u ciebie :)

Powiekszenie.png



Ps. Możesz pokazać swoją implementację SMA ? tak dla ciekawości żebym sprawdził ??
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows 7Chrome

Re: SMA - poddaje się

Nowy postprzez polymorphism » niedziela, 4 listopada 2012, 22:38

KOD cpp:     UKRYJ  
vector<int>     data;
vector<double>  sma_data;
unsigned        period = 1000;
int             acc = 0;

data.resize(2000000);
generate(data.begin(), data.end(), rand100);

for(unsigned i = 0; i < period; ++i)
{
        acc += data[i];
}

sma_data.push_back(double(acc) / period);

for(unsigned i = period; i < data.size(); ++i)
{
        acc -= data[i - period];
        acc += data[i];

        sma_data.push_back(double(acc) / period);
}
 
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
Corvis
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia stronaNastępna strona

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości

cron