Ihre innere für iteriert alle Array so thats, warum Sie immer den gleichen Durchschnitt (die für die gesamte Array), sollten Sie iterieren von 0 auf die aktuelle Zahl der äußeren für statt. Ihr gleitender Durchschnitt wird aktualisiert, basierend auf j Ihrer inneren für das bedeutet, dass es vorherige Werte überschreibt jede neue Schleife, sollte dies innerhalb der äußeren für statt der inneren mit i als Index sein. Sie teilen sum / j, um Mittelwerte zu berechnen, jede neue innere Schleife j Sie teilen durch 0 die erste Summe. Ich glaube, Sie wollten j1 verwenden, Index ist nicht das gleiche wie aktuelle Länge Tipps zur Fehlerbehebung: Vermeiden Sie die Verwendung von Variablen zu Loop-Arrays, sollten Sie array. length stattdessen verwenden. Für eine Frage der Reproduktion Ihres Problems könnten Sie uns das isolierte Problem anstelle des aktuellen Codes. Dh: Stellen Sie sich vor, wenn der Fehler in Ihren Eingaben ist, wie könnten wir glauben, dass Sie wirklich verwendet sie beantwortet werden Sie sind Looping über alle Daten jedes Mal. Für den innersten Durchschnitt sollten Sie für (int j (igtaverageLengthi-averageLength / 2: 0) jlt iaverageLength / 2 ampamp jltnumDataPoints j) (oder etwas ähnliches) haben. Außerdem sollte movingAverageisum / j modifiziert werden, um den Fall zu bewältigen, wenn j 0 ist. Insbesondere sollte es sich wahrscheinlich um MovingAverageisum / averageLength handeln und es sollte auf den movingAveragei-Slot außerhalb der Mittelungsschleife angewendet werden. Antwortete Oct 4 13 am 20:42 Nächstes Mal, nehmen Sie die Kommentare über die Zuweisung aus der Frage, bevor Sie es. Aber da Sie scheinen ziemlich neu in diesem, darüber nachzudenken, wie würden Sie durch die Daten gehen, und machen es tun. Sie sollten sicherstellen, dass jede Schleife an dem richtigen Punkt stoppt, und denken Sie daran, dass wenn Sie stoppen würden, wenn es keine Zahlen mehr gibt (wie wenn Sie die innere Schleife machen und nur 3 weitere Zahlen anstelle von 4 erhalten können) Muss das Programm auch stoppen. Stellen Sie sicher, dass Ihr Code für diese Überprüfung ist. Antwortete ohne weitere Details, benötigen Sie wahrscheinlich einen ungewichteten gleitenden Durchschnitt. An einem beliebigen Punkt Ai im Eingabefeld A der Länge N (mit 0ltiltN) ist das einfach der Mittelwert der vorherigen K Einträge des Arrays, bis zu und einschließlich Ai. Wenn es arent K solche Werte, dann die durchschnittlichen (i1) Werte von A0 bis Ai. Einschließlich. Ein wenig Gedanke zeigt Ihnen, dass Sie nicht alle K-Werte addieren müssen jedes Mal. Halten Sie einfach die Summe, und beim Bewegen zum nächsten Punkt (dies ist ein gleitender Durchschnitt), subtrahieren Sie den Wert, der ersetzt wird, und fügen Sie den neuen Wert hinzu, der es ersetzt. (Bei den ersten K-1 Punkten fügen Sie einfach den neuen Wert zur Summe hinzu und erhöhen Sie den Zähler um 1.) Der gleitende Durchschnitt ist an jedem Punkt der aktuelle Summe dividiert durch den aktuellen Zählwert. In einem gleitenden Durchschnitt, müssen Sie eine Art von Fenstergröße haben. Ihre Fenstergröße ist averageLength, so wird es etwa so aussehen: Die for-Schleife startet bei den aktuellen Daten und geht zurück AverageLength Datenpunkte und fügt sie hinzu. Sie haben nur einen gleitenden Durchschnitt, wenn Sie haben, wenn Sie genügend Datenpunkte haben und der Durchschnitt wird die Summe geteilt durch die durchschnittliche Länge haben. Hinweis: Nicht getestet nur Sudo-Code, aber das ist die Idee. Beantwortet Ihre Antwort 2016 Stack Exchange, IncDie nächsten heißen London Boroughs: wo und wann werden durchschnittliche Hauspreise 500.000 getroffen Junge Mieter entfesselt auf London zum ersten Mal neigen dazu, die beliebte Partei Hubs von Clapham, Brixton scharen Und Hackney, eifrig, so zentral zu sein, wie Mieten erlauben. Aber wenn es darum geht, auf der Leiter oder den Kauf dieser ersten Familie zu Hause, sind viele gezwungen, sich auf der Suche nach einem Gebiet, in dem sie sich leisten können, Eigentümer, nicht Mieter zu werden. Dieses Moment der Migration schafft Fang 22 Bezirke: gentrifying Bereiche, wo ein anhaltender Anstieg der Nachfrage treibt Werte und schließlich macht sie unerschwinglich für die nächste Generation. Neue Forschung aus der Immobilien-Gruppe JLL hat identifiziert Londons Standorte des Augenblicks, wo die Preise auf Kurs sind, um die 500.000 Schwelle bis 2020 zu brechen. Klicken Sie auf die folgenden Bereiche, um herauszufinden, wann der Durchschnittspreis prognostiziert wird, um die 500.000 Marke zu brechen. Die sieben Gebiete als nächstes in der Linie, um die 14 zu verbinden, die bereits einen durchschnittlichen Wert von über einer halben Million Pfund haben, sind Brent, Kingston-upon-Thames, Ealing, Tower Hamlets, Harrow, Bromley und Waltham Forest. Hauspreisinflation hat vor Lohn beschleunigt und bildet Kauf in, was bereits das teuerste Gebiet des britischen zentralen Londons noch weiter von der Reichweite des aufstrebenden Eigenheimbesitzers ist, sagt JLL Analytiker Nick Whitten. Er hat auch die Erschwinglichkeitsquote der einzelnen Bezirke berechnet, wobei im Verhältnis des durchschnittlichen Hauspreises und der mittleren Gehalt. Aber es geht nicht nur um Erschwinglichkeit. So was sonst tun, das diese Eigenschaft Hotspots haben, um Brent Brent anzubieten umfaßt Bereiche wie belaubtes Queens Park, Kilburn und Harlesden, aber das Stadtrand-increment in den Hauspreisen ist ein direktes Resultat des enormen Regenerationprojektes um Wembley Stadium. Die Entwicklungsfirma Quintain kaufte 2002 das Betonloch um das Stadion und die Arena und versprach, 5.000 neue Häuser zu liefern. Apartments in zwei Concierge-Türme wurden im Jahr 2009 und 2010 verkauft, bringen einige Luxus in die Gegend, und die Show-Suite ist verfügbar, um zu sehen, was werden die 425-home Emerald Gardens. Ein 3-Zimmer-Haus mit einem großen Garten in der Nähe von Wembley ist 499.950 Quintain verbessert die Gehwege um die drei Stationen, Wembley Park, Wembley Central und Wembley-Stadion, und schuf drei neue Parks. Mit dem London Designer Outlet kamen Geschäfte, Restaurants und ein Neun-Bildschirm-Kino mit 1.000 neuen Arbeitsplätzen. Brent hat fantastische Verkehrsverbindungen ins Zentrum von London, wurde aber traditionell zu Gunsten von begehrenswerteren Orten übersehen, sagt Whitten. Die Regenerationsinvestitionen rund um Wembley und die Nachfrage nach Standorten am Rande des zentralen London wie Queens Park haben die Immobilienpreise in den letzten Jahren stark unter Druck gesetzt. Auf dem Markt: Ein 3-Zimmer-Haus mit einem großen Garten in der Nähe von Wembley ist 499.950 mit Foxtons (020 3542 2188 foxtons. co. uk). Aktuelle Erschwinglichkeitsrate: 16 Durchschnittlicher Hauspreis wird 501.391 bis Dezember 2016 treffen Kingston-upon-Thames Kingston sitzt auf dem südlichen Ufer der Themse, bevor es nach Westen in Surrey schlängelt. Der lebhafte Vorort verfügt über ein Kino-Komplex und Einkaufszentrum mit einem John Lewis und Bentalls. Die deutsche Schule im benachbarten Petersham zieht einige Überseefamilien an und chinesische Käufer schnappen sich die neuen Riverside Apartments an, aber der lokale Markt wird überwiegend von inländischen Käufern und Familien betreut, die sich in den Reihen viktorianischer Terrassen niederlassen. Eine zwei-Zimmer-Garten-Wohnung ist 375.000 mit Foxtons Preise fiel weniger hier in 2008-09 im Vergleich zu zentralen London, weil waren nicht abhängig von den Launen des internationalen Marktes, sagt Peter Knowles von Hamptons International. Aber Sie erhalten noch zweimal das Haus für den halben Preis im Vergleich zu Wimbledon oder Richmond. Familien ziehen nach Kingston, um eine angemessene Ausbildung für ihre Kinder zu sichern, sagt er. Alle unsere Grundschulen sind hervorragend und eine neue Akademie hat gerade eröffnet. Auf dem Markt: Eine zwei-Zimmer-Garten-Wohnung ist 375.000 mit Foxtons (020 8879 2121 foxtons. co. uk). Aktuelle Preis-Leistungs-Verhältnis: 13 Durchschnittliche Hauspreis wird 524.108 bis Dezember 2017 treffen Ealing Crossrail hat die Wahrnehmung von Ealing zu Familien und Immobilien-Spekulanten gleichermaßen verändert, sagt Paul Daniel von Hamptons International. Wenn die Elizabeth Linie im Dezember 2018 öffnet, wird die Reisezeit von Ealing Broadway zur Bond Street bis zu 11 Minuten halbiert. Transport war nur ein Faktor, als Vermögensverwalter und Unternehmerin Katie Owen ihre Familie von Forest Hill im Süden von London in das Dorfgebiet von Hanwell vor drei Jahren verlegte. Wealth-Manager und Unternehmer Katie Owen zog nach Hanwell mit ihrer Familie Kredit: Julian Andrews Obwohl wir liebten Forest Hill, mein Mann arbeitet in Park Royal und unsere Verwandten leben im Westen oder in den West Midlands, sagt sie. Sie wollten auch mehr Platz für ihre wachsende Familie (sie haben jetzt zwei Jungen) und Platz für Owen, ihr Geschäft zu gründen, Sargasso Gray. Maßgeschneiderte Fersen für breite Füße. Jedoch nahm ihr Preispunkt sie zu Hanwell, eine kleine Stadt im Süden der Stadtgemeinde. Ich wusste nichts über Hanwell, aber der Zug dauert 15 Minuten nach Paddington und weil es keinen Tube-Halt hat, waren die Preise viel niedriger, erklärt sie. Wir leben vom Brent Lodge Park mit zwei Spielplätzen, einem Labyrinth und einem Zoo. Es tickte alle Boxen für uns. Eine Ein-Zimmer-Periode Wohnung ist 435.000 mit KFH Sie kauften ein Fünf-Zimmer-Doppelhaushälfte, renovierungsbedürftig, mit einem 180ft Garten, für knapp über 700.000. Auf dem Markt: Eine Ein-Zimmer-Wohnung ist 435.000 mit KFH (020 3792 5718 kfh. co. uk). Aktuelle Erschwinglichkeitsrate: 16 Durchschnittlicher Hauspreis wird 511.287 bis Dezember 2017 treffen Tower Hamlets Im Osten der Stadt, Tower Hamlets umfasst Bereiche wie Canary Wharf, Whitechapel und Bow und grenzt an die Queen Elizabeth Olympic Park. Zwei verschiedene regenerative Kräfte sind in den letzten zehn Jahren im Einsatz, erklärt Whitten: Der olympische Effekt ist vom benachbarten Stratford verschwunden, während sich London selbst unabhängig von London bewegt. Eine Ein-Zimmer-Wohnung in einer neuen Entwicklung auf Hüfte Fish Island, Minuten von gut verbundenen Stratford, ist 419.000 mit CBRE Bis 2030 wird die Hälfte aller Londons Bevölkerungswachstum östlich der Hauptstadt sein, sagt er, und die Wohn-Revolution An der Canary Wharf steht im Mittelpunkt. Unter den neuen Türmen befindet sich das 60-stöckige Neufundland-Appartementhaus, in dem 560 Luxuswohnungen untergebracht werden und ein unbenanntes 20-Hektar großes Schema, in dem 3.200 Häuser untergebracht sind. Whitten zitiert Old Street als die neue Finanz-Technologie-Hub der Welt, ziehen Menschen in diese Richtung auf der Suche nach Arbeitsplätzen. Auf dem Markt: Eine Ein-Zimmer-Wohnung in einer neuen Entwicklung auf hip Fish Island, nur wenige Minuten von gut verbundenen Stratford, ist 419.000 mit CBRE (020 7519 5917 cbreresidential) Derzeitige erschwingliche Verhältnis : 13 Der durchschnittliche Hauspreis wird bis Dezember 2018 auf 512.031 geschlagen. Harrow Harrow, die Heimat von Stanmore (das Ende der Jubliee Line), ist das Tor zum begehrten Pendlergürtel von Hertfordshire. Viele Londoner beginnen ihre Suche nach mehr Platz in der beliebten Grafschaft, aber auf der Suche nach seiner zu teuer, entdecken Sie Harrow. 454.900 erhalten Sie ein Duplex mit drei Schlafzimmern in der Nähe von Harrow-on-the-Hill mit Woodward Es könnte das Beste aus beiden Welten für diejenigen, die in diese Richtung gehen, sagt Whitten. Die Zugfahrt dauert nur 12 Minuten von Marylebone zu Harrow-on-the-Hill, die intelligenteste Gegend der Gemeinde um die Harrow School. Ein-, Zwei - und Drei-Zimmer-Wohnungen in Redrows neuen Lyon Square beginnen von 365.000 bis 650.000 und Persimmon hat die Erlaubnis zur Umwandlung der Kodak-Anlage in ein Gehäuse-System eingepackt. Auf dem Markt: 454.900 erhalten Sie ein Duplex mit drei Schlafzimmern in der Nähe von Harrow-on-the-Hill mit Woodward (020 8864 8844 woodward. co. uk). Aktuelle Preis-Leistungs-Verhältnis: 14 Durchschnittliche Hauspreis wird 500,147 bis Dezember 2018 Bromley Die Welle der Nachfrage nach Immobilien in Bromley kam im Jahr 2014, als es von Londoner Auszug entdeckt wurde, sagt Theresa Hiscoke, Filialleiter bei Alan de Maid. Wir haben jetzt eine wirklich starke Erstkäufer-Markt und eine Menge Leute nach ihren Freunden. Sie können ein Drei-Zimmer-semi für den Preis für eine Ein-Zimmer-Wohnung im benachbarten Dulwich zu bekommen. Alan de Maid hat eine drei-Zimmer-Wohnung mit Parkplatz abseits der Straße für 365.000 Die High Street, die einst den Handel mit dem nahe gelegenen Bluewater Einkaufszentrum verloren, hat sich mit einer Reihe von High-End-und unabhängigen Geschäften gebaut. Theres ein Theater, gute Primär - und Sekundärschulen und Züge, die in Waterloo Ost, Charing Kreuz, Victoria und London-Brücke laufen. Auf dem Markt: Alan de Maid hat eine drei-Zimmer-Wohnung mit Parkplatz abseits der Straße für 365.000 (020 3369 4290 alandemaid. co. uk). Aktuelle Erschwinglichkeitsrate: 12 Durchschnittlicher Hauspreis wird 509.823 bis Dezember 2019 Waltham Forest Waltham Forest läuft von der Spitze von Stratford bis Chingford mit Walthamstow in seinem Zentrum. Die trendige Orford Road verläuft durch die Mitte des Waltham Village, und mit Delis, lokalen Brauereien und Bric-a-brac Geschäften seine sicherlich eine andere E17 von der, die die Neunziger-Band inspiriert. Eine Erdgeschoss-Wohnung mit drei Schlafzimmern in Walthamstow mit einem großen Garten ist auf dem Markt mit Foxtons für 475.000 Walthamstow profitiert von dem, was Foxtons Daren Haysom einen zweigleisigen Angriff nennt. Londons junge Mieter, die sich nicht leisten können, in Muswell Hill oder Crouch End kaufen gehen, während die Käufer sind in Venturing von den Leuten von Loughton in Essex. Das Gebiet wurde vorher ignoriert und downtrodden, aber das ändert sich schnell, sagt er. Auf dem Markt: Eine Erdgeschoss-3-Zimmer-Wohnung mit einem großen Garten ist auf dem Markt mit Foxtons für 475.000 (020 3728 2323 foxtons. co. uk). Aktuelle Erschwinglichkeit Ratio: 15 Durchschnittliche Hauspreis wird 503.765 bis Dezember 2019numpy. average Axis, auf die durchschnittlich ein Durchschnitt. Wenn Keine. Wird eine Mittelung über das abgeflachte Array durchgeführt. Gewichte. Arraylike, optional Ein Array von Gewichten in Verbindung mit den Werten in einer. Jeder Wert in a trägt zum Durchschnitt nach seinem zugehörigen Gewicht bei. Die Gewichtsanordnung kann entweder 1-D (in diesem Fall ihre Länge die Größe von a entlang der gegebenen Achse sein) oder von der gleichen Form wie a sein. Wenn weightsNone. Dann wird angenommen, daß alle Daten in a ein Gewicht gleich Eins haben. ist zurückgekommen . Bool, optional Der Standardwert ist False. Wenn wahr . Wird das Tupel (durchschnittliche Summengewichte) zurückgegeben, ansonsten wird nur der Durchschnitt zurückgegeben. Wenn weightsNone. Die Summe der Gewichtungen entspricht der Anzahl der Elemente, über die der Durchschnitt genommen wird. Durchschnittlich, sumofweights. Arraytype oder double Gibt den Durchschnitt entlang der angegebenen Achse zurück. Wenn die Rückgabe True ist. Ein Tupel mit dem Durchschnitt als das erste Element und die Summe der Gewichte als zweites Element zurück. Der Rückgabetyp ist Float, wenn a vom Integer-Typ ist, andernfalls ist er vom gleichen Typ wie a. Sumofweights ist von der gleichen Art wie Durchschnitt. Ich möchte die Berechnung für Aktienkurs gleitenden Durchschnitt zu entwickeln. Aber viel komplexe Berechnung wurden später geplant. Mein erster Schritt zu wissen, wie man Moving Average effizient zu berechnen. Ich muss wissen, wie die Input-und Return-Ausgang effizient zu nehmen. Als Eingabe Datum und Preis. Ausgegebenes Datum, Preis und gleitender Durchschnitt. Wenn ich 500 Datensätze haben und ich möchte gleitende Durchschnitt für 5 Tage zu berechnen, was ist der effient Weg anstatt hin und her im Array von Datum und Preis wieder bitte sugest, was ist der beste Weg, um Eingang (ArrayList, Tabelle, Array Etc) und Ausgang zurück. Anmerkung: Der heutige MA von 5 Tagen wird der Durchschnitt der letzten 5 Tage einschließlich heute Preis sein. Gestern ist MA durchschnittlich der letzten 5 Tage von gestern. Ich möchte die Tage halten, um flexibel zu sein anstatt 5 könnte es 9, 14, 20 etc. sein. Wenn Sie einfache Berechnung ohne Ihre Bemühung benötigen, als Sie TA-Lib verwenden können. Aber wenn Sie wollen, dass Ihre Rechnung effizienter ist als TA-Lib, dann können Sie Ihre eigene technische Indikator erstellen. TA-Lib ist groß, aber Problem ist, dass diese Bibliothek nur statische Methoden haben. Das bedeutet, wenn Sie SMA-Array-Werte auf Basis von 500 Preisleisten berechnen müssen, dann werden Sie das gesamte Array von Balken senden und es wird Array von SMA-Werten zurückgeben. Aber wenn Sie neue 501-st-Wert erhalten, dann sollten Sie wieder das gesamte Array und TA-Lib erneut berechnen und zurückgeben SMA-Array von Werten. Stellen Sie sich jetzt vor, Sie brauchen einen solchen Indikator für den realen Preis, und für jede Preisänderung benötigen Sie einen neuen Indikatorwert. Wenn Sie einen Indikator nicht ein großes Problem haben, aber wenn Sie Hunderte Indikatoren arbeiten, könnte es ein Leistungsproblem sein. Ich war in einer solchen Situation und beginnen die Entwicklung von Echtzeit-Indikatoren, die effizient sind und zusätzliche Berechnungen für neue Preisleiste oder für geänderte Preisleiste nur. Leider habe ich nie benötigt SMA-Indikator für meine Handelssysteme, aber ich habe solche für EMA, WMA, AD, und andere. Ein solcher Indikator AD ist in meinem Blog veröffentlicht und Sie können von dort sehen, was ist die grundlegende Struktur meiner Echtzeit-Indikator-Klasse. Ich hoffe, Sie benötigen kleine Änderungen, um SMA-Indikator zu implementieren, denn ist einer der einfachsten. Die Logik ist einfach. Zur Berechnung von SMA benötigen Sie nur die letzten Preiswerte. So Klasse Instanz haben Sammlung von Preisen, die Speicherung halten nur letzte n Anzahl der Preise als SMA definiert ist (in Ihrem Fall 5). Also, wenn Sie neue Bar haben, werden Sie älteste entfernen und neue hinzufügen und erstellen Berechnung. Donnerstag, 10. April 2008 16:04 Alle Antworten Es gibt eine Bibliothek namens TA-Lib, die alles für Sie erledigt und es ist Open Source. Es hat etwa 50 Indikatoren denke ich. Weve verwendet es in der Produktionsumgebung und es ist sehr effizient und realible. Sie können es in C, Java, C, etc. verwenden. Wenn Sie einfache Berechnung ohne Ihren Aufwand benötigen, als Sie TA-Lib verwenden können. Aber wenn Sie wollen, dass Ihre Rechnung effizienter ist als TA-Lib, dann können Sie Ihre eigene technische Indikator erstellen. TA-Lib ist groß, aber Problem ist, dass diese Bibliothek nur statische Methoden haben. Das bedeutet, wenn Sie SMA-Array-Werte auf Basis von 500 Preisleisten berechnen müssen, dann werden Sie das gesamte Array von Balken senden und es wird Array von SMA-Werten zurückgeben. Aber wenn Sie neue 501-st-Wert erhalten, dann sollten Sie wieder das gesamte Array und TA-Lib erneut berechnen und zurückgeben SMA-Array von Werten. Stellen Sie sich jetzt vor, Sie brauchen einen solchen Indikator für den realen Preis, und für jede Preisänderung benötigen Sie einen neuen Indikatorwert. Wenn Sie einen Indikator nicht ein großes Problem haben, aber wenn Sie Hunderte Indikatoren arbeiten, könnte es ein Leistungsproblem sein. Ich war in einer solchen Situation und beginnen die Entwicklung von Echtzeit-Indikatoren, die effizient sind und zusätzliche Berechnungen für neue Preisleiste oder für geänderte Preisleiste nur. Leider habe ich nie benötigt SMA-Indikator für meine Handelssysteme, aber ich habe solche für EMA, WMA, AD, und andere. Ein solcher Indikator AD ist in meinem Blog veröffentlicht und Sie können von dort sehen, was ist die grundlegende Struktur meiner Echtzeit-Indikator-Klasse. Ich hoffe, Sie benötigen kleine Änderungen, um SMA-Indikator zu implementieren, denn ist einer der einfachsten. Die Logik ist einfach. Zur Berechnung von SMA benötigen Sie nur die letzten Preiswerte. So Klasse Instanz haben Sammlung von Preisen, die Speicherung halten nur letzte n Anzahl der Preise als SMA definiert ist (in Ihrem Fall 5). Also, wenn Sie neue Bar haben, werden Sie älteste entfernen und neue hinzufügen und erstellen Berechnung. Ich würde den gleitenden Durchschnitt in der Datenbank über eine gespeicherte Prozedur oder in einem Cube berechnen. Haben Sie sich Analysis Services angesehen, hat es die Möglichkeit, gleitende Durchschnitte zu berechnen. Donnerstag, 10. April 2008 16:05 Ja. TA-LIB ist gut, aber vielleicht nicht geeignet für mich. Wenn ich neuen Wert oder aktualisierten Wert für den Verlauf der Datensätze Ich werde die Berechnung in einer separaten Funktion nur für das neue Angebot und speichern Sie es in der Datenbank. Ich plane, das Zitat jede Stunde zu aktualisieren. Ich muss etwa 25 bis 30 technische Indikatoren für 2200 Aktien machen. Die Ausführungszeit eines TA-Lib-Aufrufs auf einem Array von 10000 Elementen beträgt etwa 15 Millisekunden (auf einem Intel Core Duo 2,13 Ghz). Dies ist der Durchschnitt aller Funktionen. Unter den schnellsten, nimmt SMA weniger als 2,5 Millisekunden. Der langsamste HTTRENDMODE benötigt 450 Millisekunden. Mit weniger Elementen ist es schneller. SMA benötigt ca. 0,22 Millisekunden für 1000 Eingangselemente. Die Geschwindigkeitsverstärkung ist fast linear (der Aufwand für die Ausführung des Funktionsaufrufs ist vernachlässigbar). Im Rahmen Ihrer Bewerbung ist TA-Lib höchstwahrscheinlich Ihr Engpass für die Geschwindigkeitsleistung. Auch ich in der Regel nicht empfehlen, solche quotlast nquot Lösung. Lesen Sie unten für Details. Zuerst eine Korrektur zur Boban. s-Anweisung Alle Funktionen in TA-Lib können auch einen einzigen letzten Wert berechnen, indem sie ein Minimum an Quell-nquot-Elementen verwenden. Sie können ein Array der Größe 10000 haben, die Daten nur für die ersten 500 Elemente initialisieren, ein Element hinzufügen und TA-Lib aufrufen, um die SMA nur für das neue Element zu berechnen. TA-Lib schaut nicht mehr als nötig (wenn SMA von 5, dann wird TA-Lib ein einzelnes SMA mit den letzten 5 Werten berechnen). Dies wird mit dem Parameter startIdx und endIdx ermöglicht. Sie können einen zu berechnenden Bereich oder einen einzelnen Wert angeben. In diesem Szenario würden Sie startIdx endIdx 500 machen, um das 501st-Element zu berechnen. Warum ist solch eine Quell-nquot-Lösung für einige gefährlich? Unabhängig von der Auswahl der Boban. s-Lösung oder TA-Lib bedenkt man, dass die Verwendung einer kleinen endlichen Anzahl von vergangenen Daten nicht gut funktioniert mit den meisten TA-Funktionen. Mit SMA, ist es offensichtlich, dass Sie nur n Element benötigen, um einen Durchschnitt über n Element zu berechnen. Es ist nicht so einfach mit EMA (und vielen anderen TA-Funktionen). Der Algo hängt oft vom vorherigen Wert ab, um den neuen Wert zu berechnen. Die Funktion ist rekursiv. Das bedeutet, dass alle vergangenen Werte einen Einfluss auf zukünftige Werte haben. Wenn Sie sich entscheiden, Ihr algo zu verwenden, um nur eine kleine Menge von Vergangenheit n Wert verwenden, erhalten Sie nicht das gleiche Ergebnis wie jemand, der über eine große Anzahl von vergangenen Werten berechnet. Die Lösung ist ein Kompromiss zwischen Geschwindigkeit und Präzision. Ich habe dies oft im Zusammenhang mit TA-Lib diskutiert (ich nenne es die quotquellierbare Periodquot in der Dokumentation und Forum). Um es einfach zu halten, meine allgemeine Empfehlung ist, wenn Sie nicht den Unterschied zwischen einem Algo mit einer endlichen Impulsantwort (FIR) aus einem Algo mit einer unendlichen Impulsantwort (IIR) machen können, sind Sie sicherer zu berechnen, über alle Daten, die Sie haben erhältlich. TA-Lib spezifizieren im Code, welche seiner Funktionen eine instabile Periode (IIR) haben. Editiert von mfortier Freitag, 15. August 2008 04:25 Korrektur von englischer Satz Freitag, 15. August, 2008 4:20 AMCalculating Moving Average Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl an. Zunächst initialisiert das VI zwei Schieberegister. Das obere Schieberegister wird mit einem Element initialisiert und fügt dann kontinuierlich den vorherigen Wert mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen. Nach dem Teilen der Ergebnisse der Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Average. Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt nach jeder Schleife den neuen Wert. Dieses VI ist sehr effizient und schnell, weil es die replace-Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Lesezeichen amp Share
No comments:
Post a Comment