Mam ciągłą wartość, dla której chciałbym obliczyć wykładniczą średnią kroczącą. Zwykle używam tylko standardowej formuły: gdzie S n jest nową średnią, alfa jest alfą, Y jest próbką, a S n-1 jest poprzednią średnią. Niestety, z powodu różnych problemów nie mam stałego czasu próby. Mogę wiedzieć, że mogę próbkować co najwyżej raz na milisekundę, ale z powodu czynników poza moją kontrolą, może nie być w stanie pobrać próbki przez kilka milisekund na raz. Prawdopodobnym częstszym przypadkiem jest jednak to, że próbuję trochę wcześniej lub później: zamiast próbkowania w czasie 0, 1 i 2 ms. Próbuję przy 0, 0,9 i 2,1 ms. Przewiduję, że niezależnie od opóźnień, moja częstotliwość próbkowania będzie znacznie, znacznie powyżej limitu Nyquista, a więc nie muszę się martwić o aliasing. Sądzę, że mogę sobie z tym poradzić w mniej lub bardziej rozsądny sposób, odpowiednio zmieniając alfę, w oparciu o czas od ostatniej próbki. Częścią mojego rozumowania, że to zadziała, jest to, że EMA interpoluje liniowo między poprzednim punktem danych a bieżącym. Jeśli rozważymy obliczenie EMA poniższej listy próbek w odstępach t: 0,1,2,3,4. Powinniśmy uzyskać ten sam wynik, jeśli używamy przedziału 2t, gdzie wartości wejściowe wynoszą 0,2,4, prawe Jeśli EMA założyło, że w t 2 wartość wynosiła 2 od t 0. byłby taki sam jak obliczenie czasu t obliczone na 0,2,2,4,4, którego nie robi. Czy to w ogóle ma sens Czy ktoś może mi powiedzieć, jak odpowiednio zmienić alfę Proszę pokaż swoją pracę. To znaczy. pokaż mi matematykę, która dowodzi, że twoja metoda naprawdę działa dobrze. Zapytany Jun 21 09 at 13:05 Nie powinieneś dostać tego samego EMA dla różnych danych wejściowych. Pomyśl o EMA jako filtrze, pobieranie próbek w 2t jest równoważne próbkowaniu w dół, a filtr da inny wynik. To dla mnie jasne, ponieważ 0,2,4 zawiera składniki o wyższej częstotliwości niż 0,1,2,3,4. Chyba że pytanie brzmi, jak mogę zmienić filtr w locie, aby dać ten sam wynik. Być może brakuje mi czegoś ndash freeespace Jun 21 09 o 15:52 Ale dane wejściowe nie różnią się od siebie, to po prostu próbowano rzadziej. 0,2,4 w odstępach 2t jest jak 0, 2, 4 w odstępach t, gdzie wskazuje, że próbka jest ignorowana ndash Curt Sampson Jun 21 09 o 23:45 Ta odpowiedź oparta na moim dobrym zrozumieniu dolnego przebiegu filtry (wykładnicza średnia krocząca to tak naprawdę jednobiegunowy filtr dolnoprzepustowy), ale moje mgliste zrozumienie tego, czego szukasz. Myślę, że następujące jest to, co chcesz: Po pierwsze, możesz nieco uprościć swoje równanie (wygląda na bardziej skomplikowane, ale łatwiejsze w kodzie). Zamierzam użyć Y dla wyjścia i X dla wejścia (zamiast S dla wyjścia i Y dla wejścia, tak jak to zrobiliście). Po drugie, wartość alfa jest równa 1-e-Deltattau, gdzie Deltat jest czasem między próbkami, a tau jest stałą czasową filtra dolnoprzepustowego. Mówię równo w cudzysłowach, ponieważ działa to dobrze, gdy Deltattau jest mały w porównaniu do 1, a alpha 1-e-Deltattau asymp Deltattau. (Ale nie za mały: będziesz rozwiązywał kwantyzatory i jeśli nie użyjesz egzotycznych technik, zwykle potrzebujesz dodatkowych N bitów rozdzielczości w twojej zmiennej stanu S, gdzie N - log 2 (alpha).) Dla większych wartości Deltattau efekt filtrowania zaczyna znikać, aż dojdziesz do punktu, w którym alfa jest blisko 1 i zasadniczo po prostu przypisujesz wejście do wyjścia. Powinno to działać poprawnie ze zmiennymi wartościami Deltata (odmiana Deltat nie jest bardzo ważna, dopóki alfa jest mała, w przeciwnym razie napotkasz na dość dziwne problemy z Nyquist itp.) I jeśli pracujesz nad procesorem, gdzie mnożenie jest tańszy niż podział, lub kwestie o ustalonym punkcie są ważne, wstępnie obliczają omega 1tau i rozważa próbę przybliżenia formuły alfa. Jeśli naprawdę chcesz wiedzieć, jak wyprowadzić formułę alpha 1-e-Deltattau, to rozważ jej źródło równania różnicowego: które, gdy X jest jednostką funkcji krokowej, ma rozwiązanie Y 1 - e-ttau. W przypadku małych wartości deltatu pochodną można obliczyć w przybliżeniu za pomocą DeltaYDeltat, uzyskując Y tau DeltaYDeltat X DeltaY (XY) (Deltattau) alfa (XY), a ekstrapolacja alfa 1-e-Deltattau pochodzi z próby dopasowania zachowania do przypadek funkcji jednostkowej kroku. Czy mógłbyś rozwinąć quottrying, aby dopasować zachowanie, które rozumiem jako rozwiązanie ciągłe Y 1 - exp (-t47) i jego uogólnienie na skalowaną funkcję krokową o wielkości x i warunek początkowy y (0). ale nie widzę, jak połączyć te pomysły, aby osiągnąć twój wynik. ndash Rhys Ulerich May 4 13 at 22:34 To nie jest pełna odpowiedź, ale może być na początku. To, o ile mi się to przydarzyło w godzinę lub mniej, grałem w Im posting to jako przykład tego, czego szukam, i być może inspirację dla innych, którzy pracują nad tym problemem. Zaczynam od S 0. jest to średnia wynikająca z poprzedniej średniej S -1 i próbki Y 0 pobrana w t 0. (t 1 - t 0) to mój interwał próbkowania, a alfa jest ustawione na to, co jest odpowiednie dla tego interwału próbki i okresu, w którym chcę uśrednić. Zastanawiałem się, co się stanie, jeśli przegapię próbkę w t1 i zamiast tego będę musiał zrobić z próbką Y 2 pobraną w t 2. Cóż, możemy zacząć od rozszerzenia równania, aby zobaczyć, co by się stało, gdybyśmy mieli Y 1: Zauważam, że seria wydaje się rozciągać w nieskończoność w ten sposób, ponieważ możemy zastąpić S n po prawej stronie w nieskończoność: Ok , więc nie jest to tak naprawdę wielomian (głupi ja), ale jeśli pomnożymy początkowy termin przez jeden, wówczas zobaczymy wzór: Hm: jego wykładnicza seria. Quelle niespodzianka Wyobraź sobie, że wychodzi z równania na wykładniczą średnią kroczącą Więc tak, mam to x 0 x 1 x 2 x 3. Rzecz się dzieje i jestem pewna, że czuję zapach lub naturalny logarytm, ale nie pamiętam, dokąd zmierzam, zanim skończy mi się czas. Jakakolwiek odpowiedź na to pytanie lub jakikolwiek dowód poprawności takiej odpowiedzi, w dużym stopniu zależy od mierzonych danych. Jeśli twoje próbki zostały pobrane przy t 0 0ms. t 1 0,9 ms i t 2 2,1 ms. ale twój wybór alfa opiera się na interwałach 1-ms i dlatego potrzebujesz lokalnie dostosowanej alfa n. dowód poprawności wyboru oznaczałby poznanie wartości próbki przy t1ms i t2ms. Prowadzi to do pytania: czy możesz interpolować swoje dane w taki sposób, aby mieć rozsądne domysły co do wartości pośrednich? Czy możesz nawet interpolować samą średnią Jeśli to nie jest możliwe, to, o ile widzę, logiczne wybór wartości pośredniej Y (t) jest ostatnią obliczoną średnią. tj. Y (t) asymp S n, gdzie n jest maksimum tak, że t n ltt. Ten wybór ma prosty skutek: Pozostaw alfa w spokoju, bez względu na różnicę czasu. Jeśli, z drugiej strony, możliwe jest interpolowanie twoich wartości, to da ci uśrednione próbki o stałej długości. Wreszcie, jeśli nawet możliwe jest interpolowanie samej średniej, sprawiłoby to, że pytanie byłoby bezsensowne. odpowiedź Jun 21 09 o 15:08 balpha 9830 27k 9679 10 9679 87 9679 117 Pomyślę, że mogę interpolować moje dane: biorąc pod uwagę, że I39m pobiera je w dyskretnych odstępach czasu, I39m robi to już ze standardową EMA. W każdym razie, zakładam, że potrzebuję quotopotabowość, która pokazuje, że działa tak samo, jak standardowa EMA, która również daje nieprawidłowy wynik, jeśli wartości nie zmieniają się dość płynnie między okresami próbkowania. ndash Curt Sampson Jun 21 09 o 15:21 Ale to, co mówię: Jeśli uważasz, że EMA jest interpolacją twoich wartości, robisz to, jeśli zostawisz alfa tak jak jest (ponieważ wstawienie ostatniej średniej jako Y nie zmieni średniej) . Jeśli mówisz, że potrzebujesz czegoś, co jest cytowane, a także standardowego EMAquot - co jest nie tak z oryginałem Jeśli nie masz więcej informacji na temat mierzonych danych, wszelkie lokalne korekty alfa będą w najlepszym razie arbitralne. ndash balpha 9830 Jun 21 09 o 15:31 Zostawiłbym wartość alfa sam i uzupełnił brakujące dane. Ponieważ nie wiesz, co dzieje się w czasie, gdy nie możesz pobrać próbki, możesz wypełnić te próbki wartością 0 lub zachować poprzednią wartość stabilną i użyć tych wartości dla EMA. Lub jakąś interpolację wsteczną po uzyskaniu nowej próbki, wypełnieniu brakujących wartości i ponownym obliczeniu EMA. Co próbuję uzyskać, to masz wejście xn, które ma otwory. Nie ma sposobu, aby ominąć fakt, że brakuje danych. Możesz więc użyć wstrzymania rzędu zerowego lub ustawić go na zero, lub jakiejś interpolacji między xn i xnM. gdzie M to liczba brakujących próbek, a n początek luki. Możliwe nawet użycie wartości przed n. odpowiedział Jun 21 09 o 13:35 Spędzając około godziny lub trochę marnując trochę z matematyki, myślę, że po prostu zmiana alpha rzeczywiście da mi właściwą interpolację między dwoma punktami, o których mówisz, ale w znacznie prostszy sposób. Co więcej, uważam, że zmienne alfa będzie również odpowiednio zajmować się próbkami pobranymi pomiędzy standardowymi interwałami próbkowania. Innymi słowy, szukam tego, co opisałeś, ale próbujesz użyć matematyki, aby wymyślić prosty sposób na zrobienie tego. ndash Curt Sampson Jun 21 09 o 14:07 Nie sądzę, że istnieje taka bestia, jak interpropowana interpolacja. Po prostu nie wiesz, co się stało w czasie, gdy nie próbujesz. Dobra i zła interpolacja sugerują pewną wiedzę o tym, co przeoczyliście, ponieważ musicie zmierzyć się z tym, aby ocenić, czy interpolacja jest dobra czy zła. Mimo to możesz umieszczać ograniczenia, tj. Z maksymalnym przyspieszeniem, prędkością itp. Myślę, że jeśli wiesz jak modelować brakujące dane, to po prostu modelujesz brakujące dane, a następnie zastosujesz algorytm EMA bez żadnych zmian, a raczej niż zmiana alfy. Just my 2c :) ndash freespace Jun 21 09 o 14:17 To jest dokładnie to, co dostałem w mojej edycji do pytania 15 minut temu: quot Po prostu nie wiesz, co stało się w czasie, gdy nie próbujesz, ale to prawda nawet jeśli pobierasz próbki w każdym wyznaczonym przedziale. Tak więc moja kontemplacja Nyquista: tak długo, jak wiesz, że forma fal nie zmienia kierunków więcej niż każda para próbek, rzeczywisty interwał próbki nie powinien mieć znaczenia i powinien być w stanie się różnić. Równanie EMA wydaje mi się dokładnie obliczyć, jak gdyby przebieg zmieniał się liniowo od ostatniej wartości próbki do aktualnej. ndash Curt Sampson cze 21 09 o 14:26 Nie sądzę, że to prawda. Twierdzenie Nyquista wymaga, aby minimum 2 próbki na okres było w stanie jednoznacznie zidentyfikować sygnał. Jeśli tego nie zrobisz, dostaniesz aliasing. Byłoby to tak samo jak próbkowanie jako fs1 przez pewien czas, a następnie fs2, a następnie powrót do fs1, a otrzymasz aliasing w danych, gdy próbujesz z fs2, jeśli fs2 jest poniżej limitu Nyquist. Muszę też wyznać, że nie rozumiem, co masz na myśli, mówiąc, że zmieniasz liniowo zmiany z ostatniej próbki na aktualną. Czy mógłbyś wyjaśnić Wiwaty, Steve. ndash freespace Jun 21 09 at 14:36 To jest podobne do otwartego problemu na mojej liście zadań. Mam do pewnego stopnia jeden program, ale nie mam jeszcze matematycznego podejścia do poparcia tej sugestii. Zaktualizuj podsumowanie wzmacniacza: chciałbyś, aby współczynnik wygładzania (alfa) był niezależny od współczynnika kompensacji (który tutaj nazywam beta). Świetna odpowiedź Jasons już przyjęta tutaj działa doskonale dla mnie. Jeśli możesz również zmierzyć czas od ostatniego poboru próbki (w zaokrąglonych wielokrotnościach twojego stałego czasu próbkowania - tak, że 7,8 ms od ostatniej próbki wynosi 8 jednostek), które mogłyby być użyte do zastosowania wygładzania wiele razy. Zastosuj formułę 8 razy w tym przypadku. Efektywnie sprawiłeś, że wygładzenie będzie bardziej odchylone w kierunku aktualnej wartości. Aby uzyskać lepsze wygładzenie, musimy zmodyfikować alfa, stosując 8 razy w tym przypadku formułę. Co to za gładka aproksymacja? Brakowało już 7 próbek w powyższym przykładzie. Zostało to przybliżone w kroku 1 ze spłaszczonym ponownym zastosowaniem wartości bieżącej dodatkowo 7 razy. Jeśli zdefiniujemy współczynnik aproksymacji beta, który zostanie zastosowany wraz z alfa (jako alphabeta zamiast tylko alfa) przyjmiemy, że 7 pominiętych próbek zmieniało się płynnie pomiędzy poprzednimi a aktualnymi wartościami próbek. odpowiedziała 21 czerwca 09 o 13:35 Zastanowiłem się nad tym, ale trochę spartaczenia z matematyką doprowadziło mnie do punktu, w którym wierzę, że zamiast zastosować formułę osiem razy z wartością próbki, mogę wykonać obliczenia nowej alfa, która pozwoli mi zastosować formułę raz i da mi taki sam wynik. Co więcej, automatycznie zajmowałoby się kwestią przesunięcia próbek z dokładnych czasów prób. ndash Curt Sampson cze 21 09 o 13:47 Pojedyncza aplikacja jest w porządku. Nie jestem jeszcze pewien, jak dobre jest przybliżenie 7 brakujących wartości. Jeśli ciągły ruch powoduje znaczne wahania wartości w ciągu 8 milisekund, przybliżenia mogą być zupełnie nierealne. Ale jeśli próbujesz z prędkością 1 ms (najwyższa rozdzielczość z wyjątkiem opóźnionych próbek), już wiesz, że wahania w granicach 1 ms nie są istotne. Czy to rozumowanie działa dla ciebie (wciąż próbuję się przekonać). ndash nik Jun 21 09 at 14:08 Dobrze. To jest czynnik beta z mojego opisu. Współczynnik beta byłby obliczany na podstawie interwału różnicy oraz bieżącej i poprzedniej próbki. Nowa alpha będzie (alphabeta), ale będzie używana tylko dla tej próbki. Podczas gdy wydajesz się, że w formule zmienia się alfa3, dążę do stałej alfa (czynnik wygładzający) i niezależnie obliczonej beta (czynnik tuningowy), który kompensuje próbki, które właśnie zostały pominięte. ndash nik Jun 21 09 at 15: 23 Średnia ruchoma Wildera Wiele popularnych wskaźników, w tym wskaźnik siły relatywnej (RSI), średni zasięg rzeczywisty (ATR) i ruch kierunkowy zostały opracowane przez J. Wellesa Wildera i wprowadzone w jego książce z 1978 r .: Nowe koncepcje w technicznych systemach handlu. Użytkownicy powinni mieć na uwadze, że Wilder nie używa standardowej formuły średniej wykładniczej. Może to mieć znaczący wpływ na wybór odpowiednich okresów dla jego wskaźników. Standardowa formuła wykładniczej średniej ruchomej przekształca okres czasu w ułamek za pomocą wzoru EMA 2 (n 1), gdzie n oznacza liczbę dni. Na przykład EMA przez 14 dni to 2 (14 dni 1) 13,3. Wilder używa jednak EMA równego 114, co równa się 7.1. Odpowiada to 27-dniowej wykładniczej średniej ruchomej przy użyciu standardowej formuły. Objęte wskaźniki to: Zalecamy, aby użytkownicy próbowali stosować krótsze okresy, gdy używany jest jeden z powyższych wskaźników. Na przykład, jeśli śledzisz cykl 30-dniowy, zwykle wybierzesz 15-dniowy okres czasu wskaźnika. Za pomocą RSI, dostosuj okres czasu w następujący sposób: Okres czasu RSI (n 1) 2 (15 1) 2 8 dniRozszerzanie średnich równań różniczkowych zwyczajnych przez splot Wprowadzamy uśredniający schemat, w którym rozwiązanie równania zmieniającego się w czasie z mała amplituda jest aproksymowana przez rozwiązanie powoli zmieniającego się układu pomocniczego, generowanego przez zawiązywanie pierwotnego równania z funkcją jądra. Efektem splotu jest wygładzenie równania, dzięki czemu staje się on bardziej podatny na obliczenia numeryczne. Przedstawiono ścisłe wyniki dotyczące błędu aproksymacji dla ogólnych klas pól wektorowych i jąder. Czy chcesz przeczytać resztę tego artykułu.
Forex Capital CS współpracuje z ekspertami Forex Traders, aby zarządzać funduszem w efektywny sposób, aby osiągnąć miesięczny zysk w wysokości od 25 do 35 oraz zarządzać programami marketingowymi dla podmiotów stowarzyszonych wraz z inwestycją, aby jeszcze bardziej zwiększyć swoje zarobki, jeśli ktoś zdecyduje się promować naszą usługę. Niezależnie od tego, czy jesteś specjalistą od marketingu czy inwestorem, starając się uzyskać jak najszerszy zakres dochodu podmiotu stowarzyszonego, możemy stworzyć program, któremu możesz zaufać w celu spełnienia celów biznesowych i wymagań. Nasz przyszły projekt jest tak ekscytujący, że może pomóc w wymianie własnych funduszy przez nasz wewnętrzny Dom Maklerski FOREX i BINARY OPTION, co może być kolejną okazją dla partnera do promowania i zarabiania na handlu i promowaniu naszych usług w Twoim kraju. Rejestracja Rejestracja jest całkowicie darmowa. członkowie mogą AKTYWOWAĆ W CIĄGU 90 DNI. ZŁOTY STARTERZajdź opinię o handlu dolarami amerykańskimi to...
Comments
Post a Comment