Saturday 2 December 2017

Labview moving average example


Obliczanie średniej ruchomej Ten VI oblicza i wyświetla średnią ruchomą, używając wstępnie wybranego numeru. Najpierw VI inicjalizuje dwa rejestry zmianowe. Górny rejestr przesuwny jest inicjalizowany jednym elementem, a następnie ciągle dodaje poprzednią wartość z nową wartością. Ten rejestr przesuwny zachowuje sumę ostatnich x pomiarów. Po podzieleniu wyników funkcji dodawania z wstępnie wybraną wartością, VI oblicza wartość średniej ruchomej. Dolny rejestr przesuwny zawiera tablicę z wymiarem Średnia. Ten rejestr przesuwny przechowuje wszystkie wartości pomiaru. Funkcja wymiany zastępuje nową wartość po każdej pętli. Ta VI jest bardzo wydajna i szybka, ponieważ wykorzystuje funkcję zamiany elementu wewnątrz pętli while i inicjuje tablicę, zanim wejdzie w pętlę. Ten VI został stworzony w LabVIEW 6.1. Wzmacniacz do zakładek Średnie z ShareMoving: Jakie są jedne z najpopularniejszych wskaźników technicznych, średnie ruchome służą do pomiaru kierunku aktualnego trendu. Każdy typ średniej ruchomej (zwykle napisany w tym samouczku jako MA) jest wynikiem matematycznym, który jest obliczany przez uśrednienie liczby przeszłych punktów danych. Po ustaleniu, uzyskana średnia jest następnie nanoszona na wykres w celu umożliwienia handlowcom spojrzenia na wygładzone dane zamiast koncentrowania się na codziennych wahaniach cen, które są nieodłączne na wszystkich rynkach finansowych. Najprostszą formę średniej ruchomej, znaną jako prosta średnia ruchoma (SMA), oblicza się, przyjmując średnią arytmetyczną z danego zestawu wartości. Na przykład, aby obliczyć podstawową 10-dniową średnią ruchomą, sumuje się ceny zamknięcia z ostatnich 10 dni, a następnie podzielono wynik przez 10. Na rysunku 1 suma cen z ostatnich 10 dni (110) wynosi podzielona przez liczbę dni (10), aby osiągnąć średnią 10-dniową. Jeśli przedsiębiorca chce zamiast tego uzyskać średnią 50-dniową, zostanie wykonany ten sam rodzaj obliczeń, ale będzie obejmował ceny w ciągu ostatnich 50 dni. Wynikowa średnia poniżej (11) uwzględnia 10 ostatnich punktów danych, aby dać handlowcom pojęcie, jak wyceniany jest majątek w stosunku do ostatnich 10 dni. Być może zastanawiasz się, dlaczego techniczni handlowcy nazywają to narzędzie średnią kroczącą, a nie zwykłą średnią. Odpowiedź jest taka, że ​​gdy stają się dostępne nowe wartości, najstarsze punkty danych muszą zostać usunięte z zestawu i nowe punkty danych muszą wejść, aby je zastąpić. W związku z tym zbiór danych stale się rozlicza dla nowych danych, gdy tylko stają się dostępne. Ta metoda obliczania zapewnia uwzględnianie wyłącznie bieżących informacji. Na rysunku 2, po dodaniu do zestawu nowej wartości 5, czerwone pole (reprezentujące ostatnie 10 punktów danych) przesuwa się w prawo, a ostatnia wartość 15 zostaje usunięta z obliczeń. Ponieważ stosunkowo mała wartość 5 zastępuje wysoką wartość 15, można by oczekiwać, że średnia zestawu danych zmniejszy się, co ma miejsce w tym przypadku od 11 do 10. Jak wyglądają średnie kroczące Po wartościach MA zostały obliczone, są nanoszone na wykres, a następnie łączone w celu utworzenia średniej ruchomej linii. Te linie krzywoliniowe są powszechne na wykresach handlowców technicznych, ale sposób ich użycia może się drastycznie różnić (więcej o tym później). Jak widać na rys. 3, można dodać więcej niż jedną średnią ruchomą do dowolnego wykresu, dostosowując liczbę przedziałów czasowych użytych w obliczeniach. Te zakrzywione linie mogą początkowo wydawać się rozpraszające lub mylące, ale z biegiem czasu przyzwyczaisz się do nich. Czerwona linia to po prostu średnia cena z ostatnich 50 dni, a niebieska linia to średnia cena z ostatnich 100 dni. Teraz, gdy rozumiesz, czym jest średnia ruchoma i jak wygląda, dobrze jest wprowadzić inny typ średniej ruchomej i zbadać, jak różni się ona od poprzednio wspomnianej prostej średniej kroczącej. Prosta średnia ruchoma jest niezwykle popularna wśród handlowców, ale jak wszystkie wskaźniki techniczne, ma swoich krytyków. Wiele osób twierdzi, że przydatność SMA jest ograniczona, ponieważ każdy punkt w serii danych jest ważony tak samo, niezależnie od tego, gdzie występuje w sekwencji. Krytycy twierdzą, że najnowsze dane są ważniejsze niż dane starsze i powinny mieć większy wpływ na końcowy wynik. W odpowiedzi na tę krytykę handlowcy zaczęli przykładać większą wagę do najnowszych danych, co od tego czasu doprowadziło do wynalezienia różnego rodzaju nowych średnich, z których najpopularniejszą jest wykładnicza średnia ruchoma (EMA). (Aby uzyskać więcej informacji, zobacz Podstawy ważonych średnich kroczących i jaka jest różnica między wartością SMA a wartością EMA) Wykładnicza średnia ruchoma Wykładnicza średnia ruchoma jest rodzajem średniej ruchomej, która zwiększa wagę ostatnich cen, aby zwiększyć jej responsywność do nowych informacji. Nauka nieco skomplikowanego równania do obliczania EMA może być niepotrzebna dla wielu traderów, ponieważ prawie wszystkie pakiety wykresów wykonują obliczenia dla ciebie. Jednakże, dla was, maniaków matematyki, macie tutaj równanie EMA: Używając wzoru do obliczenia pierwszego punktu EMA, możecie zauważyć, że nie ma żadnej dostępnej wartości do wykorzystania jako poprzednia EMA. Ten mały problem można rozwiązać, rozpoczynając obliczenia za pomocą prostej średniej ruchomej i kontynuując z powyższą formułą. Dostarczyliśmy przykładowy arkusz kalkulacyjny, który zawiera rzeczywiste przykłady obliczania zarówno prostej średniej kroczącej, jak i wykładniczej średniej kroczącej. Różnica między EMA i SMA Teraz, gdy masz już lepsze zrozumienie sposobu obliczania SMA i EMA, przyjrzyjmy się, jak te średnie różnią się. Patrząc na obliczenia EMA, zauważysz, że większy nacisk kładzie się na ostatnie punkty danych, co czyni je typem średniej ważonej. Na rysunku 5 liczby okresów stosowanych w każdej średniej są identyczne (15), ale EMA reaguje szybciej na zmieniające się ceny. Zwróć uwagę, że EMA ma wyższą wartość, gdy cena rośnie, i spada szybciej niż SMA, gdy cena spada. Ta responsywność jest głównym powodem, dla którego wielu inwestorów woli używać EMA przez SMA. Co oznaczają różne dni Średnie ruchome są całkowicie konfigurowalnym wskaźnikiem, co oznacza, że ​​użytkownik może swobodnie wybierać dowolne ramy czasowe, jakie chcą uzyskać przy tworzeniu średniej. Najczęstsze okresy stosowane w średnich kroczących to 15, 20, 30, 50, 100 i 200 dni. Im krótszy jest przedział czasowy do stworzenia średniej, tym bardziej wrażliwy będzie na zmiany cen. Im dłuższy przedział czasu, tym mniej wrażliwy lub bardziej wygładzony, średnia będzie. Podczas ustawiania średnich kroczących nie ma odpowiednich ram czasowych. Najlepszym sposobem, aby dowiedzieć się, który z nich działa najlepiej, jest eksperymentowanie z wieloma różnymi okresami, dopóki nie znajdziesz takiego, który pasuje do Twojej strategii. Średnie kroczące: Jak korzystać z Prostej średniej kroczącej VI Zazwyczaj, gdy ludzie mówią o średniej ruchomej, mają na myśli Zastąpienie punktu N ze średnią M punktów otaczających Punkt N. Załóżmy, że mam 100 punktów, których wartości wynoszą 1, 2, 3. 100, i chcę zrobić 5-punktową średnią ruchomą. Pierwszą rzeczą, na którą należy zwrócić uwagę, jest to, że średnia ruchoma trzeciego punktu jest średnią z 1, 2, 3, 4, 5 3. Średnia z czwartego punktu to średnia z 2, 3, 4, 5, 6 4. Jest to jednak prawdopodobnie zbyt prosty przykład. Co powiesz na średnią funkcji kroku, od 0 do 10, następnie od 20. Ponownie wyrzuć punkty 1 i 2. Średnia z punktów 1-5 (aby przejść do punktu 3) 0 (ponieważ wszystkie punkty wynoszą 0). Podobnie z punktami 4, 5, 6, 7 i 8. Punkt 9 jest jednak średnią z 0, 0, 0, 0, 20 4. Jak o punkcie 10 Cóż, powinna być ona średnią z 0, 0, 0 , 20, 20 8, ale czy pamiętasz, aby nie zastąpić Punktu 9 Hmm, wydaje się, że musimy zachować dwie kopie tablicy (która jest generalnie droga). Istnieje kilka sposobów uniknięcia tego. Czy wiesz, gdzie pojawia się problem w poprzednim paragrafie? Jeśli nie, spróbuj zrobić to za pomocą ołówka i papieru (lub spróbuj kodować to w LabVIEW). Dostaję odpowiedź, abyś mógł sprawdzić - średnia krocząca funkcji kroku wynosi -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (gdzie - są puste wartości na końcach tablicy, punkty, które nie mają wystarczającej liczby sąsiadów). P. S. - nie zdziwiłbym się, gdyby nie istniała funkcja LabVIEW, która robi to za ciebie. Ale jeśli uczysz się LabVIEW i chcesz lepiej zrozumieć, w jaki sposób algorytmy, z którymi współpracujesz, nigdy nie boli i nie spróbujesz sam. Możesz nawet wymyślić poprawę (kilku z nas to zrobiło.). dzięki za uwrażliwienie na lepsze punkty metody Moving Average. To wszystko jest narzędziem statystycznym, które pomaga zobaczyć, co chcesz zobaczyć, rozpraszając rozpraszające. Tak więc metoda musi mieć pewne niedociągnięcia w niektórych sytuacjach lub kontekście. Ale wydaje mi się, że idealnie nadaje się on do mojego rodzaju rejestrowania danych w systemie dof - jego ciśnienia, temperatury lub sygnału przepływu - i uzyskuję go w czasie około 400 próbek sekund, a następnie używam uśrednionej pojedynczej próbki. Proces jest dość powolny, ponieważ mój główny kod działa z częstotliwością nie większą niż 20 Hz. Kiedy więc wykonuję próbkę 5 próbek, moja pierwsza próbka przybywa 5 x 50 ms później, następnie za każde 50 ms otrzymuję prawidłową próbkę. Zasadniczo jestem bardziej zainteresowany trendami, a nie wartościami punktowymi. W tym przypadku niewiele niepokoi brakujące próbki lub nieuczciwe wartości. Oczywiście nie odważyłbym się użyć tej funkcji do kroku. To byłoby okrutne. Raghunathan LV2017 do zautomatyzowania hydraulicznych urządzeń kontrolnych. Wiadomość 4 z 15 (1 022 wyświetleń) Re: Simple Moving Average VI 03-30-2018 11:58 PM Nie ma średniej ptbypt, która robi to samo. Możesz sprawdzić kod, jeśli chcesz. Dużą wadą twojego kodu jest fakt, że stale rośniesz i zmniejszasz istniejącą tablicę. Powinieneś spróbować znaleźć rozwiązanie działające w miejscu na tablicy o stałym rozmiarze. Przykłady mogą być zamieszczane na forum przez lata (patrz hee na przykład). Średnia nie dba o to, czy elementy są niesprawne, możesz więc po prostu wymienić najstarszy element, bez względu na to, gdzie się znajduje. Przygotowujesz także nowy element do początku istniejącej tablicy, co zawsze jest dużo droższe niż dołączanie do końca. Twój rozmiar próbki nie może się zmienić po uruchomieniu VI. Twój rejestr zmian powinien zostać zainicjowany pustą tablicą, a nie tablicą zawierającą pojedynczy element, który wynosi zero. (To dodatkowe zero da błędne wartości średnie) Twój kod powinien zostać przekształcony w subVI, aby można go było ponownie użyć (podobnie do wersji ptbypt). Twoja VI nie może zostać zatrzymana, po prostu przerwana. Dobre wskazówki dotyczące optymalizacji. Nie udało mi się zaimplementować punktu inicjowania z Zero. I tak, użytkownik nie powinien zmieniać wielkości próbki po uruchomieniu. W końcu zrobię SubVI i poradzę sobie z takimi rzeczami jak zatrzymanie itd. Jeśli chodzi o punkt przed dodaniem nowej wartości do tablicy, może jest kara za wykonanie, ale biorąc pod uwagę rozmiar mojej tablicy, jestem pewien, że CPU nie obchodzi anwyay . Ale dla mnie musi tak być, ponieważ używam ostatecznych danych do wykreślania trendu parametru fizycznego. Dziękuję za Twój czas. Raghunathan LV2017 do zautomatyzowania hydraulicznych urządzeń kontrolnych. dzięki za uwrażliwienie na lepsze punkty metody Moving Average. To wszystko jest narzędziem statystycznym, które pomaga zobaczyć, co chcesz zobaczyć, rozpraszając rozpraszające. Tak więc metoda musi mieć pewne niedociągnięcia w niektórych sytuacjach lub kontekście. Ale wydaje mi się, że idealnie nadaje się on do mojego rodzaju rejestrowania danych w systemie dof - jego ciśnienia, temperatury lub sygnału przepływu - i uzyskuję go w czasie około 400 próbek sekund, a następnie używam uśrednionej pojedynczej próbki. Proces jest dość powolny, ponieważ mój główny kod działa z częstotliwością nie większą niż 20 Hz. Kiedy więc wykonuję próbkę 5 próbek, moja pierwsza próbka przybywa 5 x 50 ms później, następnie za każde 50 ms otrzymuję prawidłową próbkę. Aha Więc nie chcesz średniej ruchomej, ale zwykłej prostej. To znacznie łatwiejsze. Oto pomysł (który działa znacznie lepiej z Design Producentem) - Powiedzmy, że próbkujesz z częstotliwością 400 Hz, chcesz zapisać dane z częstotliwością 400 Hz (tzn. Zapisać wszystkie dane na dysk), ale chcesz wyświetlać z częstotliwością 20 Hz (ponieważ chcesz widzieć trendy, dłuższą bazę czasową itp.). Skonfiguruj swój system AD, aby zbierać 20 próbek z częstotliwością 400 Hz (pamiętaj, że możesz zbierać N kanałów jednocześnie, co daje tablicę 2D próbek, gdy otrzymasz dane (o 20 Hz) od AD (czyniąc to producentem) , Konsolidacja zaczyna się od zapisania danych na dysk (nie powinno to zająć dużo czasu) Teraz macie tablicę 2D - w pętli For, na podstawie kanału, przez średnią, 20 punktów. Teraz masz tablicę 1D, z uśrednionym punktem dla każdego kanału, idź dalej i narysuj to, zauważ, że ten schemat (a) wykorzystuje wszystkie dane, (b) obsługuje dane wielokanałowe z aplombem (i jeśli jesteś z Bliskiego Wschodu, gdzie rosną, możesz również obsługiwać dane przy pomocy soczystej śliwki), (c) pozwala zbierać dane z urządzeń AD, zapisywać dane na dysku zachowując wszystkie punkty i wyświetlać dane ekran wykorzystujący wszystkie twoje punkty, ale także uśredniający, aby poprawić wizualny stosunek sygnału do szumu, wszystko bez utraty danych (zrobiłem to dokładnie z 24 kanałami przy 1 kHz, z dane są pobierane w systemie zdalnym i wysyłane do komputera przez TCPIP, więc mamy również przetwarzanie TCP w pętli). Witamy w ekscytującym świecie pozyskiwania i przetwarzania danych dzięki LabVIEW. Zaufaj mi, to jest wspaniały system do wykonywania tego rodzaju pracy. W oparciu o opinie, które otrzymałem na moim oryginalnym VI, udoskonaliłem kod średniej ruchomej do subVI. Następnie użyłem go do symulacji 10-kanałowych danych symulowanych - aby zachować prostotę, upewniłem się, że wszystkie kanały mają identyczne dane. Można by wówczas oczekiwać takiej samej średniej kroczącej dla wszystkich 10 kanałów. Jestem zaskoczony małą wariancją, którą zauważam pomiędzy kanałami - generalnie są blisko, ale nie dokładnie. I żeby wyjaśnić proces, który próbuję, również zamknąłem XLS. Więc skąd się bierze zmiana. Zunifikowany rejestr przesuwny wewnątrz Pod VI. Raghunathan LV2017 do zautomatyzowania hydraulicznych urządzeń kontrolnych. Wiadomość 9 z 15 (925 wyświetleń) Re: Simple Moving Average VI altenbach 04-01-2018 10:25 AM Twój kod nadal nie ma sensu. Ponieważ nazywasz subVI jednym skalarem na raz, nie dostajesz tego, czego chcesz, ponieważ rejestr przesuwny pamięta tylko ostatnie N skalarów, niezależnie od tego, z jakiego kanału pochodzi. Twój kod jest nadal bardzo nieefektywny i zawiłowany. (dlaczego nadal używasz wstawiania do tablicy do dołączenia (zarówno w mani nad w sub). (Możesz użyć reenetrant subVI i równoległej najbardziej wewnętrznej pętli FOR, ale to wydaje się zbyt skomplikowane) Jeśli chcesz zrobić średnio na każdym kanale, subVI musi utrzymywać tablicę 2D w subVI Wszystko to zostało zrobione wcześniej Komunikat 10 z 15 (909 Widoki)

No comments:

Post a Comment