Tuesday, 9 May 2017

Moving Average Sample Problem

OR-Notes sind eine Reihe von einleitenden Bemerkungen zu Themen, die unter die breite Überschrift des Bereichs Operations Research (OR) fallen. Sie wurden ursprünglich von mir in einer einleitenden ODER-Kurs Ich gebe am Imperial College verwendet. Sie stehen nun für alle Studenten und Lehrer zur Verfügung, die an den folgenden Bedingungen interessiert sind. Eine vollständige Liste der Themen in OR-Notes finden Sie hier. Prognosebeispiel Prognosebeispiel 1996 UG-Prüfung Die Nachfrage nach einem Produkt in den letzten fünf Monaten ist nachfolgend dargestellt. Verwenden Sie einen zweimonatigen gleitenden Durchschnitt, um eine Prognose für die Nachfrage im Monat 6 zu generieren. Wenden Sie exponentielle Glättung mit einer Glättungskonstante von 0,9 an, um eine Prognose für die Nachfrage nach Nachfrage im Monat 6 zu generieren. Welche dieser beiden Prognosen bevorzugen Sie und warumDie zwei Monate in Bewegung Durchschnitt für die Monate zwei bis fünf ist gegeben durch: Die Prognose für den sechsten Monat ist nur der gleitende Durchschnitt für den Monat davor, dh der gleitende Durchschnitt für den Monat 5 m 5 2350. Beim Anwenden einer exponentiellen Glättung mit einer Glättungskonstante von 0,9 erhalten wir: Wie zuvor Die Prognose für Monat sechs ist nur der Durchschnitt für Monat 5 M 5 2386 Um die beiden Prognosen zu vergleichen, berechnen wir die mittlere quadratische Abweichung (MSD). Wenn wir dies tun, finden wir für den gleitenden Durchschnitt MSD (15 - 19) sup2 (18 - 23) sup2 (21 - 24) sup23 16,67 und für den exponentiell geglätteten Durchschnitt mit einer Glättungskonstante von 0,9 MSD (13 - 17) sup2 (16,60 - 19) sup2 (18,76 - 23) sup2 (22,58 - 24) sup24 10,44 Insgesamt sehen wir, dass die exponentielle Glättung die besten Prognosen für einen Monat liefert, da sie eine niedrigere MSD aufweist. Daher bevorzugen wir die Prognose von 2386, die durch exponentielle Glättung erzeugt wurde. Prognosebeispiel 1994 UG-Prüfung Die folgende Tabelle zeigt die Nachfrage nach einem neuen Aftershave in einem Geschäft für die letzten 7 Monate. Berechnen Sie einen zweimonatigen gleitenden Durchschnitt für die Monate zwei bis sieben. Was würden Sie Ihre Prognose für die Nachfrage in Monat acht Bewerben exponentielle Glättung mit einer Glättungskonstante von 0,1, um eine Prognose für die Nachfrage in Monat acht abzuleiten. Welche der beiden Prognosen für den Monat acht bevorzugen Sie und warum Der Ladenbesitzer glaubt, dass Kunden auf diese neue Aftershave von anderen Marken umschalten. Erläutern Sie, wie Sie dieses Schaltverhalten modellieren und die Daten anzeigen können, die Sie benötigen, um zu bestätigen, ob diese Umschaltung stattfindet oder nicht. Der zweimonatige Gleitender Durchschnitt für die Monate zwei bis sieben ist gegeben durch: Die Prognose für Monat acht ist nur der gleitende Durchschnitt für den Monat davor, dh der gleitende Durchschnitt für Monat 7 m 7 46. Anwendung exponentieller Glättung mit einer Glättungskonstante von 0,1 wir Erhalten: Wie vorher ist die Prognose für Monat acht gerade der Durchschnitt für Monat 7 M 7 31.11 31 (da wir keine gebrochene Nachfrage haben können). Um die beiden Prognosen zu vergleichen, berechnen wir die mittlere quadratische Abweichung (MSD). Wenn wir dies tun, finden wir, dass für den gleitenden Durchschnitt und für die exponentiell geglättete Durchschnitt mit einer Glättungskonstante von 0,1 Insgesamt sehen wir, dass die zwei Monate gleitenden Durchschnitt scheinen, um die besten einen Monat prognostiziert, da es eine niedrigere MSD hat. Daher bevorzugen wir die Prognose von 46, die durch die zwei Monate gleitenden Durchschnitt produziert wurde. Um das Switching zu untersuchen, müssten wir ein Markov-Prozeßmodell verwenden, bei dem die Zustandsmarken verwendet werden, und wir müssten anfängliche Zustandsinformationen und Kundenvermittlungswahrscheinlichkeiten (von Umfragen) benötigen. Wir müssten das Modell auf historischen Daten laufen lassen, um zu sehen, ob wir zwischen dem Modell und dem historischen Verhalten passen. Prognosebeispiel 1992 UG-Prüfung Die nachstehende Tabelle zeigt die Nachfrage nach einer bestimmten Rasierklinge in einem Geschäft für die letzten neun Monate. Berechnen Sie einen dreimonatigen gleitenden Durchschnitt für die Monate drei bis neun. Was wäre Ihre Prognose für die Nachfrage in Monat 10 Verwenden Sie exponentielle Glättung mit einer Glättungskonstante von 0,3, um eine Prognose für die Nachfrage in Monat zehn ableiten. Welche der beiden Prognosen für Monat zehn bevorzugen Sie und warum Der dreimonatige gleitende Durchschnitt für die Monate 3 bis 9 ist gegeben durch: Die Prognose für Monat 10 ist nur der gleitende Durchschnitt für den Monat davor, dass heißt der gleitende Durchschnitt für Monat 9 m 9 20.33. Die Prognose für den Monat 10 ist also 20. Die Anwendung der exponentiellen Glättung mit einer Glättungskonstante von 0,3 ergibt sich wie folgt: Nach wie vor ist die Prognose für Monat 10 nur der Durchschnitt für Monat 9 M 9 18,57 19 (wie wir Kann nicht gebrochene Nachfrage). Um die beiden Prognosen zu vergleichen, berechnen wir die mittlere quadratische Abweichung (MSD). Wenn wir dies tun, finden wir, dass für den gleitenden Durchschnitt und für die exponentiell geglättete Durchschnitt mit einer Glättungskonstante von 0,3 Insgesamt sehen wir, dass der dreimonatige gleitende Durchschnitt scheint die besten einen Monat voraus Prognosen geben, wie es eine niedrigere MSD hat. Daher bevorzugen wir die Prognose von 20, die durch die drei Monate gleitenden Durchschnitt produziert wurde. Prognosebeispiel 1991 UG-Prüfung Die nachstehende Tabelle zeigt die Nachfrage nach einer bestimmten Marke von Faxgeräten in einem Kaufhaus in den letzten zwölf Monaten. Berechnen Sie die vier Monate gleitenden Durchschnitt für die Monate 4 bis 12. Was wäre Ihre Prognose für die Nachfrage in Monat 13 Wenden Sie exponentielle Glättung mit einer Glättungskonstante von 0,2, um eine Prognose für die Nachfrage in Monat 13 ableiten. Welche der beiden Prognosen für Monat 13 lieber und warum Welche anderen Faktoren, die in den obigen Berechnungen nicht berücksichtigt werden, können die Nachfrage nach dem Faxgerät im Monat 13 beeinflussen. Der viermonatige Gleitende Durchschnitt für die Monate 4 bis 12 ist gegeben durch: m 4 (23 19 15 12) 4 17,25 m 5 (27 23 19 15) 4 21 m 6 (30 27 23 19) 4 24,75 m 7 (32 30 27 23) 4 28 m 8 (33 32 30 27) 4 30,5 m 9 (37 33 32 30) 4 33 m 10 (41 37 33 32) 4 35,75 m 11 (49 41 37 33) 4 40 m 12 (58 49 41 37) 4 46,25 Die Prognose für den Monat 13 ist nur der gleitende Durchschnitt für den Monat zuvor, dh der gleitende Durchschnitt Für den Monat 12 m 12 46,25. Die Prognose für den Monat 13 ist also 46. Wenn wir eine exponentielle Glättung mit einer Glättungskonstante von 0,2 anwenden, erhalten wir: Wie vorher ist die Prognose für den Monat 13 nur der Durchschnitt für den Monat 12 M 12 38,618 39 (wie wir Kann nicht gebrochene Nachfrage). Um die beiden Prognosen zu vergleichen, berechnen wir die mittlere quadratische Abweichung (MSD). Wenn wir dies tun, finden wir, dass für den gleitenden Durchschnitt und für die exponentiell geglättete Durchschnitt mit einer Glättungskonstante von 0,2 Insgesamt sehen wir, dass die vier Monate gleitenden Durchschnitt scheint die besten einen Monat voraus Prognosen geben, wie es eine niedrigere MSD hat. Daher bevorzugen wir die Prognose von 46, die durch die vier Monate gleitenden Durchschnitt produziert wurde. Saisonale Nachfrage Werbung Preisänderungen, sowohl diese Marke und andere Marken allgemeine wirtschaftliche Situation neue Technologie Prognosebeispiel 1989 UG-Prüfung Die folgende Tabelle zeigt die Nachfrage nach einer bestimmten Marke von Mikrowellenherd in einem Kaufhaus in jedem der letzten zwölf Monate. Berechnen Sie für jeden Monat einen Sechsmonatsdurchschnitt. Was wäre Ihre Prognose für die Nachfrage in Monat 13 Verwenden Sie exponentielle Glättung mit einer Glättungskonstante von 0,7, um eine Prognose für die Nachfrage in Monat 13 ableiten. Welche der beiden Prognosen für den Monat 13 bevorzugen Sie und warum Jetzt können wir nicht berechnen, ein sechs Monat, bis wir mindestens 6 Beobachtungen haben - dh wir können nur einen solchen Durchschnitt ab dem 6. Monat berechnen. Daher haben wir: m 6 (34 32 30 29 31 27) 6 30,50 m 7 (36 34 32 30 29 31) 6 32,00 m 8 (35 36 34 32 30 29) 6 32,67 m 9 (37 35 36 34 32 30) 6 34,00 m 10 (39 37 35 36 34 32) 6 35,50 m 11 (40 39 37 35 36 34) 6 36,83 m 12 (42 40 39 37 35 36) 6 38,17 Die Prognose für den Monat 13 ist nur der gleitende Durchschnitt für die Monat vor, dh der gleitende Durchschnitt für Monat 12 m 12 38,17. Die Prognose für den 13. Monat ist daher 38. Wenn wir eine exponentielle Glättung mit einer Glättungskonstante von 0,7 anwenden, erhalten wir: Gewichtete Bewegungsdurchschnitte: Die Grundlagen Im Laufe der Jahre haben Techniker zwei Probleme mit dem einfachen gleitenden Durchschnitt gefunden. Das erste Problem liegt im Zeitrahmen des gleitenden Durchschnitts (MA). Die meisten technischen Analysten glauben, dass Preis-Aktion. Der Eröffnungs - oder Schlussaktienkurs, reicht nicht aus, um davon abhängen zu können, ob Kauf - oder Verkaufssignale der MAs-Crossover-Aktion richtig vorhergesagt werden. Zur Lösung dieses Problems weisen die Analysten den jüngsten Preisdaten nun mehr Gewicht zu, indem sie den exponentiell geglätteten gleitenden Durchschnitt (EMA) verwenden. (Erfahren Sie mehr bei der Exploration der exponentiell gewogenen gleitenden Durchschnitt.) Ein Beispiel Zum Beispiel, mit einem 10-Tage-MA, würde ein Analytiker den Schlusskurs des 10. Tag nehmen und multiplizieren Sie diese Zahl mit 10, der neunte Tag um neun, der achte Tag um acht und so weiter auf die erste der MA. Sobald die Summe bestimmt worden ist, würde der Analytiker dann die Zahl durch die Addition der Multiplikatoren dividieren. Wenn Sie die Multiplikatoren des 10-Tage-MA-Beispiels hinzufügen, ist die Zahl 55. Dieses Kennzeichen wird als linear gewichteter gleitender Durchschnitt bezeichnet. (Für verwandte Themen lesen Sie in Simple Moving Averages machen Trends Stand Out.) Viele Techniker sind fest davon überzeugt, in der exponentiell geglättet gleitenden Durchschnitt (EMA). Dieser Indikator wurde auf so viele verschiedene Weisen erklärt, dass er Studenten und Investoren gleichermaßen verwirrt. Vielleicht die beste Erklärung kommt von John J. Murphys Technische Analyse der Finanzmärkte, (veröffentlicht von der New York Institute of Finance, 1999): Der exponentiell geglättete gleitende Durchschnitt behebt beide Probleme mit dem einfachen gleitenden Durchschnitt verbunden. Erstens weist der exponentiell geglättete Durchschnitt den neueren Daten ein größeres Gewicht zu. Daher ist es ein gewichteter gleitender Durchschnitt. Doch während es den vergangenen Preisdaten eine geringere Bedeutung zuweist, enthält es in seiner Berechnung alle Daten in der Lebensdauer des Instruments. Zusätzlich ist der Benutzer in der Lage, die Gewichtung anzupassen, um ein größeres oder geringeres Gewicht zu dem letzten Tagespreis zu ergeben, der zu einem Prozentsatz des vorherigen Tageswertes addiert wird. Die Summe der beiden Prozentwerte addiert sich zu 100. Beispielsweise könnte dem letzten Tagespreis ein Gewicht von 10 (.10) zugewiesen werden, das zum vorherigen Tagegewicht von 90 (.90) addiert wird. Das ergibt den letzten Tag 10 der Gesamtgewichtung. Dies wäre das Äquivalent zu einem 20-Tage-Durchschnitt, indem die letzten Tage Preis einen kleineren Wert von 5 (.05). Abbildung 1: Exponentiell geglättete gleitende Durchschnittswerte Die obige Grafik zeigt den Nasdaq Composite Index von der ersten Woche im Aug. 2000 bis zum 1. Juni 2001. Wie Sie deutlich sehen können, ist die EMA, die in diesem Fall die Schlusskursdaten über eine Neun-Tage-Zeitraum, hat endgültige Verkaufssignale am 8. September (gekennzeichnet durch einen schwarzen Pfeil nach unten). Dies war der Tag, an dem der Index unter dem Niveau von 4.000 unterbrach. Der zweite schwarze Pfeil zeigt ein anderes Bein, das die Techniker tatsächlich erwartet hatten. Der Nasdaq konnte nicht genug Volumen und Interesse von den Kleinanlegern erzeugen, um die 3.000 Marke zu brechen. Danach tauchte es wieder zu Boden, um 1619.58 am 4. April. Der Aufwärtstrend vom 12. April ist durch einen Pfeil markiert. Hier schloss der Index bei 1.961,46, und Techniker begannen zu sehen, institutionelle Fondsmanager ab, um einige Schnäppchen wie Cisco, Microsoft und einige der energiebezogenen Fragen abholen. (Lesen Sie unsere verwandten Artikel: Moving Average Umschläge: Raffinieren ein beliebtes Trading-Tool und Moving Average Bounce.) 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 Berechnung effizienter ist als TA-Lib, dann können Sie Ihre eigene technische Indikator. 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 wieder 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 Berechnung effizienter ist als TA-Lib, dann können Sie Ihre eigene technische Indikator. 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 wieder 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 begrenzten Anzahl vergangener Daten nicht gut mit den meisten TA-Funktionen funktionieren wird. 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, werden Sie sicherer zu berechnen, über alle Daten, die Sie haben verfügbar. TA-Lib spezifizieren im Code, welche seiner Funktionen eine instabile Periode (IIR) haben. Bearbeitet von mfortier Freitag, 15. August 2008 04:25 Richtig english sentence Freitag, 15. August 2008 04:20


No comments:

Post a Comment