00001
00002 #include <assert.h>
00003 #include <stdio.h>
00004
00005 #include "hurst_stocks.h"
00006 #include "rescaled_range.h"
00007
00008
00023 void hurst_stocks::test()
00024 {
00025 const size_t days = 10;
00026
00027 const size_t ReturnSize = 8192;
00028
00029 const size_t DataSize = 8192;
00030
00031
00032
00033 static double data[ DataSize ];
00034 static double returns[ ReturnSize ];
00035
00036 rescaled_range hurst;
00037 rescaled_range::hurstInfo info;
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 const char *fileName = "ibm_30year.csv";
00048 size_t n = DataSize;
00049 if (ts.getTS( fileName, data, n, yahooTS::Close )) {
00050 assert(n == DataSize );
00051
00052
00053
00054
00055
00056
00057 for (size_t blockSize = 1; blockSize <= 30; blockSize++) {
00058 for (size_t i = 0; i < ReturnSize; i++)
00059 returns[i] = 0;
00060
00061 size_t numReturns;
00062 numReturns = blockedLogReturn( data, returns, DataSize, blockSize );
00063
00064 hurst.calc_hurst_est( returns, numReturns, info );
00065
00070
00071
00072
00073 const char *companyName = "IBM Corp.";
00081
00082
00083 printf("%2d %7.4f\n", blockSize, info.slope());
00084 }
00085
00093 }
00094 }