Ich muss den Überblick über die letzten 7 Tage Arbeitsstunden in einem Flat-File-Leseschleife zu halten. Seine verwendet werden, um die Ermüdbarkeit von Arbeitsplänen zu messen. Im Moment habe ich etwas, das funktioniert, aber es scheint ziemlich ausführlich und Im nicht sicher, ob theres ein Muster, das mehr prägnant ist. Derzeit habe ich eine Java-Klasse mit einem statischen Array, um die letzten x-Tage-Daten zu halten, dann, wie ich durch die Datei zu lesen, hacke ich das erste Element und verschieben die anderen 6 (für eine Woche rollende Gesamtmenge) von einem zurück. Die Verarbeitung dieses statischen Arrays erfolgt in seinem eigenen Verfahren, dh. Meine Frage: ist dies eine vernünftige Design-Ansatz, oder gibt es etwas blendend offensichtlich und einfach, diese Aufgabe zu tun Danke Jungs gefragt Aug 30 11 at 14:33 Vielen Dank Jungs: I39ve bekam die Nachricht: verwenden Sie ein übergeordnetes Objekt und nutzen Sie die Relevante Methoden oder einen Ringpuffer. Große Antworten, alle von ihnen. Wenn Sie darüber nachdenken, benötigen Sie immer Zugriff auf das gesamte Array, so können Sie loswerden, dass erste Eintrag - die ich war nicht sicher, auf eigene Faust. I39m erleichtert, dass ich hadn39t verpasste einige 1 Liner und war im Grunde auf eine vernünftige, wenn nicht effizient und knapp Track Dies ist, was ich liebe über diese Website: qualitativ hochwertige, relevante Antworten von Menschen, die ihre sht kennen. Ndash Pete855217 Aug 11, 2010, um 15:05 Uhr Warum initialisieren Sie runningTotal auf null Was ist der Typ, wo es deklariert Es wäre gut, wenn Sie einige Code-Beispiele, die tatsächlichen Java-Code ähneln setzen. Im Übrigen wäre meine Kritik die folgende: Ihre Funktion hat zu viel. Eine Funktion oder Methode sollte zusammenhängend sein. Entsprechend sollten sie eine Sache und eins nur tun. Schlimmer noch, was passiert in Ihrer for-Schleife, wenn x 5 Sie kopieren runningTotal6 in runningTotal5. Aber dann haben Sie zwei Kopien des gleichen Wertes an Position 5 und 6. In Ihrem Design, Ihre Funktion movesshuffles die Elemente in Ihrem Array berechnet die Gesamtausdruck Zeug auf Standard-Fehler liefert die Summe Es tut zu viel. Mein erster Vorschlag ist nicht zu bewegen Zeug um in der Array. Stattdessen implementieren Sie einen kreisförmigen Puffer und verwenden ihn statt des Arrays. Es vereinfacht Ihren Entwurf. Mein zweiter Vorschlag ist, Dinge in Funktionen zusammenzufassen, die zusammenhängen: haben Sie eine Datenstruktur (ein zirkularer Puffer), der Ihnen erlaubt, sie hinzuzufügen (und dass der älteste Eintrag sinkt, wenn er seine Kapazität erreicht hat) Interator haben eine Funktion, die die Summe auf dem Iterator berechnet (Sie dont care, wenn Sie die Summe aus einem Array, Liste oder kreisförmigen bufer.) Dont nennen es insgesamt. Nennen Sie es Summe, die ist, was Sie berechnen. Das ist, was Id tun :) That39s große info luis, aber denken Sie daran, diese Funktion ist ein kleiner Teil der Funktionalität der Klasse, und es wäre Overkill zu viel Code hinzufügen, um es perfekt. Sie sind technisch korrekt, und ich verstehe, dass mein Code zu viel 39 macht, aber gleichzeitig ist es manchmal besser, auf der Seite des kleineren, klareren Codes zu irren als für Perfektion zu gehen. Angesichts meiner Java-Fähigkeiten, auch die Herstellung der Pseudocode Sie beschreiben kompilieren würde ich blasen mein Budget auf diese (), aber danke für die klare Beschreibung. Ndash Pete855217 Aug 31 11 at 2:23 Hmmm, es geht nicht um Perfektion, sondern um etablierte industrielle Praktiken, die wir für die letzten 3 Jahrzehnte kennen. Sauberer Code ist immer einer, der partitioniert ist. Wir haben jahrzehntelange Evidenz, die zeigen, dass dies der Weg ist, um in den allgemeinen Fall zu gehen (in Bezug auf Kosteneffizienz, Defektverkleinerung, Verständnis usw.). Es sei denn, es ist Wegwerf-Code für eine einmalige Art der Sache. Es ist niemals teuer, dies zu tun, wenn man auf diese Weise eine Problemanalyse startet. Codierung 101, brechen das Problem und der Code folgt, weder Overkill noch schwierig) ndash luis. espinal Ihre Aufgabe ist zu einfach und die Vorgehensweise Sie angenommen haben, ist sicherlich gut für den Job. Allerdings, wenn Sie ein besseres Design verwenden möchten, müssen Sie loszuwerden, dass alle die Anzahl der Bewegung Sie besser eine FIFO-Warteschlange und machen gute Verwendung von Push-und Pop-Methoden, die Art und Weise der Code reflektiert keine Datenbewegung, nur die beiden logischen Aktionen Von neuen Daten und entfernen Sie Daten, die älter als 7 Tage sind. (SMA) Ein einfacher gleitender Durchschnitt (SMA) ist ein arithmetischer gleitender Durchschnitt, der berechnet wird, indem man den Schlusskurs der Sicherheit für eine Anzahl von Zeitperioden addiert und dann dividiert Diese Summe durch die Anzahl der Zeitperioden. Wie in der obigen Grafik gezeigt, beobachten viele Händler kurzfristige Durchschnittswerte, um längerfristige Durchschnittswerte zu überschreiten, um den Beginn eines Aufwärtstrends zu signalisieren. Kurzzeitmittel können als Stufen der Unterstützung zu handeln, wenn der Preis erlebt ein Pullback. Laden des Players. BREAKING DOWN Einfacher gleitender Durchschnitt - SMA Ein einfacher gleitender Durchschnitt ist anpassbar, indem er für eine unterschiedliche Anzahl von Zeitperioden berechnet werden kann, indem einfach der Schlusskurs des Wertpapiers für eine Anzahl von Zeitperioden addiert wird und dann diese Summe durch die Zahl dividiert wird Von Zeiträumen, die den durchschnittlichen Preis der Sicherheit über den Zeitraum gibt. Ein einfacher gleitender Durchschnitt glättet die Volatilität und macht es einfacher, die Preisentwicklung eines Wertpapiers zu sehen. Wenn der einfache gleitende Durchschnitt nach oben zeigt, bedeutet dies, dass der Sicherheitspreis steigt. Wenn es nach unten zeigt, bedeutet dies, dass der Sicherheitspreis sinkt. Je länger der Zeitrahmen für den gleitenden Durchschnitt, desto glatter der einfache gleitende Durchschnitt. Ein kürzerer bewegter Durchschnitt ist volatiler, aber sein Messwert ist näher an den Quelldaten. Analytische Bedeutung Die gleitenden Durchschnitte sind ein wichtiges analytisches Instrument, um aktuelle Preisentwicklungen und das Potenzial für eine Veränderung eines etablierten Trends zu identifizieren. Die einfachste Form der Verwendung eines einfachen gleitenden Durchschnitt in der Analyse ist es, schnell zu identifizieren, ob eine Sicherheit in einem Aufwärtstrend oder Abwärtstrend ist. Ein weiteres populäres, wenn auch etwas komplexeres analytisches Werkzeug, besteht darin, ein Paar einfacher gleitender Durchschnitte mit jeweils unterschiedlichen Zeitrahmen zu vergleichen. Liegt ein kürzerer einfacher gleitender Durchschnitt über einem längerfristigen Durchschnitt, wird ein Aufwärtstrend erwartet. Auf der anderen Seite signalisiert ein langfristiger Durchschnitt über einem kürzerfristigen Durchschnitt eine Abwärtsbewegung im Trend. Beliebte Trading-Muster Zwei beliebte Trading-Muster, die einfache gleitende Durchschnitte verwenden, schließen das Todeskreuz und ein goldenes Kreuz ein. Ein Todeskreuz tritt auf, wenn die 50-tägige einfache gleitende Durchschnitt unter dem 200-Tage gleitenden Durchschnitt kreuzt. Dies wird als bärisch signalisiert, dass weitere Verluste auf Lager sind. Das goldene Kreuz tritt auf, wenn ein kurzfristiger gleitender Durchschnitt über einen langfristigen gleitenden Durchschnitt bricht. Verstärkt durch hohe Handelsvolumina, kann dies signalisieren, weitere Gewinne sind im Laden.
Comments
Post a Comment