annotate makedata.pl @ 1:c32b619844ba default tip

add eview.go.
author pyon@macmini
date Sun, 17 Sep 2017 14:33:27 +0900
parents 43e580fa4719
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
1 # makedata.pl
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
2 # Last Change: 2017-09-04 Mon 21:38:58.
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
3 #
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
4 # ai.go への入力データを作る
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
5 # 入力ファイル: ./USDJPY.csv
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
6 # 出力ファイル: ./ai_input.dat
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
7 # 出力形式:
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
8 # 通番 年月日 始値 高値 安値 終値 3日平均 7日平均 30日平均
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
9 #
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
10
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
11 use v5.10;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
12 use utf8;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
13
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
14 my ( @date, @start, @highest, @lowest, @end );
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
15 open my $f, '<', 'USDJPY.csv';
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
16 while ( <$f> ) {
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
17 next unless /^\d/;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
18 chomp;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
19 my ( $dt, $st, $hi, $lo, $en ) = split /,/;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
20
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
21 $dt =~ s#/#-#g; push @date, $dt;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
22 $st = sprintf "%.02f", $st; push @start, $st;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
23 $hi = sprintf "%.02f", $hi; push @highest, $hi;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
24 $lo = sprintf "%.02f", $lo; push @lowest, $lo;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
25 $en = sprintf "%.02f", $en; push @end, $en;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
26 }
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
27 close $f;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
28
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
29 my ( @ma3, @ma7, @ma30 );
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
30 my $i = 0;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
31 for ( @end ) {
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
32 $ma3[$i] = ( $i < 2 ) ? $_ : ( $end[$i-2] + $end[$i-1] + $_ ) / 3;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
33 $ma7[$i] = $_;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
34 $ma30[$i] = $_;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
35 if ( $i > 5 ) {
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
36 $ma7[$i] += $end[$i-$_] for ( 1..6 );
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
37 $ma7[$i] /= 7;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
38 }
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
39 if ( $i > 28 ) {
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
40 $ma30[$i] += $end[$i-$_] for ( 1..29 );
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
41 $ma30[$i] /= 30;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
42 }
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
43 $i++;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
44 }
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
45
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
46 open $f, '>', 'ai_input.dat';
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
47 say {$f} '#通番 年月日 始値 高値 安値 終値 3日平均 7日平均 30日平均';
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
48 $i = 0;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
49 for my $dt ( @date ) {
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
50 my $ip = sprintf "%04d", $i+1;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
51 my $ma3p = sprintf "%.02f", $ma3[$i];
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
52 my $ma7p = sprintf "%.02f", $ma7[$i];
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
53 my $ma30p = sprintf "%.02f", $ma30[$i];
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
54 say {$f} join ' ' => $ip, $dt, $start[$i], $highest[$i], $lowest[$i], $end[$i], $ma3p, $ma7p, $ma30p;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
55 $i++;
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
56 }
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
57 close $f
43e580fa4719 first commit.
pyon@macmini
parents:
diff changeset
58