Wolfram Language

Bild- und Signalverarbeitung

Aktienkurse mithilfe von DTW vergleichen

Nutzen Sie die Funktion WarpingCorrespondence, um das erste Quartal 2016 des HPQ-Aktienkurses mit Daten von 2010 bis 2015 zu vergleichen.

In[1]:=
Click for copyable input
recent = FinancialData["HPQ", {{2016, 1, 1}, {2016, 3, 31}}, "Value"]; {histDates, hist} = Transpose[ FinancialData["HPQ", {{2010, 1, 1}, {2015, 1, 31}}, "DateValue"]];

Ermitteln Sie die am besten übereinstimmende Teilfolge der Daten aus dem Zeitraum 20102015.

In[2]:=
Click for copyable input
{corrHist, corrRecent} = WarpingCorrespondence[hist, recent, Method -> {"MatchingInterval" -> "Flexible"}];

Ermitteln Sie den Intervall, der dem ersten Quartal 2016 am meisten ähnelt.

In[3]:=
Click for copyable input
{m, n} = corrHist[[{1, -1}]]; histDates[[{m, n}]]
Out[3]=

Vergleichen Sie die Quartalsdaten visuell mit der besten Entsprechung aus dem Zeitraum 20102015.

Den kompletten Wolfram Language-Input zeigen
In[4]:=
Click for copyable input
DateListPlot[{AssociationThread[ Take[histDates[[m ;; n]], Length[recent]], recent], AssociationThread[histDates[[m ;; n]], hist[[m ;; n]]]}, PlotTheme -> "Business", PlotLegends -> {"2016 data", "Best historical match"}, DateTicksFormat -> {"MonthNameShort", " ", "YearShort"}, ImageSize -> Medium]
Out[4]=

Stellen Sie auf Basis der historischen Daten eine Prognose für die Aktienkurse der nächsten 30 Tage auf.

Den kompletten Wolfram Language-Input zeigen
In[5]:=
Click for copyable input
l = Length[recent]; colDat = ColorData["Atoms"]; offset = Last[recent] - hist[[n]]; hist30d = hist[[n ;; n + 30]]; ListLinePlot[{recent, {l + Range[31], hist30d + offset}\[Transpose], hist[[m ;; n]], {n - m + Range[31], hist30d}\[Transpose]}, PlotStyle -> {colDat["Rh"], {colDat["Mo"], Dotted}, colDat["Yb"], {colDat["Tb"], Dotted}}, PlotLegends -> Placed[{"2016 data", "30 days prediction", "Best historical match", "Next 30 days of historical data"}, Below], ImageSize -> Medium, Axes -> {False, True}, Epilog -> {Dashed, {Arrow[{{n - m, hist[[n]]}, {l + 1, Last[recent]}}], Arrow[{{n - m + 30, hist[[n + 30]]}, {l + 31, hist[[n + 30]] + offset}}]}}]
Out[5]=

Verwandte Beispiele

en es fr ja ko pt-br ru zh