# Detecting patterns in the Time Series

Posted 9 years ago
32194 Views
|
13 Replies
|
14 Total Likes
|
 Pattern analysis in the time series is useful approach for data decomposition and detection of drivers that affect trends, dispersion or curvature. Combination of standard time series techniques with statistical analysis, probability and signal processing methods provide powerful base for quick pattern detection. Mathematica 10 brings extended functionality in every dimension which makes the pattern analysis quick and efficient task. Attachments:
13 Replies
Sort By:
Posted 8 years ago
 Thanks for your quick response Igor! Will try out your instructions. Any idea how to implement a Bayesian Regression Algorithm on historical prices of Bitcoins (BTC/USD); say from January 11, 2011 to March 20, 2015 and backtest it? Here's the link to the pdf file describing the algorithm: http://arxiv.org/pdf/1410.1231.pdf A bit of sample code to start on my own will help. I am really a novice when it comes to Mathematica.
Posted 8 years ago
 How do we detect patterns in BTC/USD (Bitcoin/US Dollar) and BTC/LTC (Bitcoin/Litecoin) prices/trading volumes by hooking into Bloomberg Link and cryptocoincharts API?
Posted 8 years ago
 Hello Aryan BTCUSD and BTCLTC are fundamentally the same as any other currency pairs time series and the patterns detection techniques which I showed in the document will equally apply to BTC / LTC . This assumes that historical data is available.Get the historical data using Bloomberg Link and convert them into Time series with appropriate data stamps. Resample the data to create continuous series and apply any method you like to detect (I) trend, (ii) volatility and higher-order moments.Hope this answers your question. If you, feel free to come back.Kind regards Igor
Posted 9 years ago
 Hi Igor, thanks a lot for the explanation. I'm just frustrated that the FinancialData command is not consistent. For example this will work: FinancialData["USD/JPY"] but this will not: FinancialData["USD/JPY", {{2009, 1, 1}, {2014, 11, 07}}] The correct way is what you did: FinancialData["JPY=X", {{2009, 1, 1}, {2014, 11, 07}}] But this last command template is documented nowhere as far as I know :-(Regards, Ruben
Posted 9 years ago
 RubenThis is exactly what I explained yesterday. Yahoo maintains two sets of tickers - (I) live spot and (ii) historical indices.Spot can be entered as "USDGBP", however if you need the historical series, you need to enter "GBP=X".You're right. This duality feature is not documented (yet). Treat this explanation as "User - Explored Documentation".Hope this helps Igor
Posted 9 years ago
 Igor, thanks a lot for the file! The main problem with my approach was that the structure of the data was not in the time series format. I just used Import. However, I'm mystified by the use of "JPY=X" in the FinancialData command in Mathematica. Is this use documented somewhere? By the way, I think your materials are excellent for showing Mathematica's capabilities in finance and risk management and I'm looking forward to reading more of them. Regards, Ruben
Posted 9 years ago
 RubenPlease find below the link for the Yahoo Finance that gives you the list of currencies they provide the historical data: https://uk.finance.yahoo.com/currencies/investing.html When you click on any currency pair, you will get the Yahoo ticker which is valid for historical series.Please note that the Yahoo support different tickers for historical series and live sports. The logic "ABC=X" applies to any series for standard currency quote (against \$US).I am certainly delighted to hear that the stuff helps you getting the understanding of Mathematica in Finance (-:Kind regards Igor
Posted 9 years ago
 Hi Igor, I have tried to replicate your results related to the cumulants and the gaussian filter but I haven't been able to get the same results as you. All the previous calculations were ok. Here's my code and the resulting graphs: cs = TimeSeriesAggregate[jpyhdata, "Quarter", Cumulant[#, 2] &]; SmoothHistogram[cs, PlotTheme -> "Business", PlotStyle -> Red, Filling -> Axis, FillingStyle -> Yellow]  DateListPlot[GaussianFilter[hvol, 4], PlotTheme -> "Web", PlotStyle -> Blue, PlotLabel -> "Volatility with Gaussian Filter"] May I know what I'm doing incorrectly? Many thanks in advance, Ruben
Posted 9 years ago
 Hello RubenI have enclosed the Mathematica notebook that contains the code for the document. Hope this solves your query. Kind regards Igor Attachments:
Posted 9 years ago
 Hi Igor, may I know how to reproduce the residuals plot showing the different magnitude of dispersion? Many thanks in advance, Ruben
Posted 9 years ago
 Hi Igor, thanks again for such a great post. As usual I'd like to replicate your results on my own and I've been able to get the data for the JPY/USD exchange rate from QUANDL (1/1/2009 - 11/30/2014) and save them in the variable named "jpyhdata" but I'm wondering about the contents of the variable "win" that you use in the TimeSeriesAggregate commands. May I know what information it contains? How can I create it? Many thanks in advance, Ruben
Posted 9 years ago
 Hello RubenI do apologise for the late reply. The "win" term in the code refers to the window period = Quarter. All functions therefore use the quarter as the aggregation period. Hope this answers your question. Kind regards Igor
Posted 9 years ago
 Hi Igor, thanks a lot! Regards, Ruben