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

