Data(7/3 : 日経225先物1限月(2009/09)(1分足), .txt→.datファイルへ変換が必要)     (出典:株価データダウンロードサイト)

/*
ここでやること。

1。データを読み込む。
2。平均を求める。
3。平均との距離を求める。
4。ヒストグラムを作る。

理論的には、正規分布となる。しかし現実のデータはFat-Tailが出るとされている。
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define Count 435

main(void)
{  
  FILE *fp;
  double x[Count];
  int nx = sizeof(x)/sizeof(x[0]);
  int ave=0, i=0, cnt=0, wa=0, val=0, histo[Count+1],histo2[Count+1],rank=0,rank2=0;

 for (cnt=0;cnt<=Count;cnt++){
   histo[cnt]=0;
   x[cnt]=0;
  }

  if(( fp= fopen("n225-1-20090703.dat", "r") ) == NULL )
    {
      printf( "ファイルが見つかりません。 --- n225-1-20090703.dat\n");
      exit( EXIT_FAILURE);
    }
  
  for(cnt = 0; cnt < Count ; cnt++)
    {
      fscanf(fp,"%ld",&val);
      
      if(val == 0)
	{
	  break;
	}
      x[cnt]=val;
      wa+=x[cnt];
   /*printf("%d\n", wa);*/ /*OK*/
   }
 ave=wa/Count;

 /*printf("%f\n", ave);*/ /*OK*/

 for (cnt=0;cnt<Count;cnt++){
      rank=x[cnt]-ave;
   if (rank>=0)
      histo[rank]++;
   else {
      rank2=-rank;
      histo2[rank2]++;
       }
     }
  
  for(i=0;i<120;i++){
     /*printf("%d %d\n", i*10, histo[i]);*/
     printf("%d %d\n", -i*10, histo2[i]);
     }

  fclose(fp);
  return 0;
}


出力結果

平均からの乖離。
正規分布はもちろんのこと、Fat-Tailも出てこない。


Back to C Language

Google




BLOG
PICASAWEB
Panoramio