質問編集履歴
31
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,21 +1,6 @@
|
|
1
|
-
### 前提
|
2
|
-
|
3
|
-
データを読み込み、高値等を求めたいです。
|
4
|
-
また、画面には、高値等を表示させたいです。
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
### 実現したいこと
|
9
|
-
|
10
|
-
データファイルを読み込んだ後、高値等を画面に出力させたいです。
|
11
|
-
|
12
|
-
|
13
|
-
|
14
1
|
|
15
2
|
### 試したこと
|
16
3
|
|
17
|
-
|
18
|
-
現時点では以下のコードで、高値等を出力させることができました。
|
19
4
|
正しく表示されているかを確認しています。
|
20
5
|
|
21
6
|
|
30
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
-
|
3
|
+
データを読み込み、高値等を求めたいです。
|
4
4
|
また、画面には、高値等を表示させたいです。
|
5
5
|
|
6
6
|
|
29
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
-
株価のデータを読み込み、高値等を
|
3
|
+
株価のデータを読み込み、高値等を求めたいです。
|
4
4
|
また、画面には、高値等を表示させたいです。
|
5
5
|
|
6
6
|
|
28
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
3
|
株価のデータを読み込み、高値等を画面に出力させるプログラムを組みたいです。
|
4
|
-
データには、時刻・株価の順に、時系列順に並んでいます。
|
5
4
|
また、画面には、高値等を表示させたいです。
|
6
5
|
|
7
6
|
|
27
文章の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Fortran
|
1
|
+
Fortranにおけるデータ解析
|
test
CHANGED
File without changes
|
26
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
株価のデータを読み込み、高値等を画面に出力させるプログラムを組みたいです。
|
4
4
|
データには、時刻・株価の順に、時系列順に並んでいます。
|
5
|
-
また、画面には、高値
|
5
|
+
また、画面には、高値等を表示させたいです。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
9
|
### 実現したいこと
|
10
10
|
|
11
|
-
データファイルを読み込んだ後、
|
11
|
+
データファイルを読み込んだ後、高値等を画面に出力させたいです。
|
12
12
|
|
13
13
|
|
14
14
|
|
25
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,32 +1,15 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
-
株価のデータを読み込み、
|
3
|
+
株価のデータを読み込み、高値等を画面に出力させるプログラムを組みたいです。
|
4
|
-
データには、時刻
|
4
|
+
データには、時刻・株価の順に、時系列順に並んでいます。
|
5
|
-
また、画面には、
|
5
|
+
また、画面には、高値・安値・始値・終値を表示させたいです。
|
6
|
-
データファイルの中身は次のようになっています。(時刻は(時・分・秒・1マイクロ秒)となっています。)
|
7
6
|
|
8
|
-
|
7
|
+
|
9
|
-
90000604508 744.9
|
10
|
-
90001372798 766.9
|
11
|
-
90001777654 766.6
|
12
|
-
90002563876 766.3
|
13
|
-
90002577687 754.8
|
14
|
-
・
|
15
|
-
・
|
16
|
-
・
|
17
8
|
|
18
9
|
### 実現したいこと
|
19
10
|
|
20
|
-
データファイルを読み込んだ後、
|
11
|
+
データファイルを読み込んだ後、始値・高値・安値・終値を画面に出力させたいです。
|
21
12
|
|
22
|
-
時刻 始値 高値 安値 終値
|
23
|
-
9時1秒 744 744.6 743.9 744.5
|
24
|
-
9時2秒 744.2 744.8 744.1 744.7
|
25
|
-
9時3秒 745.5 746.1 745.4 746
|
26
|
-
9時4秒 745.8 746.5 745.7 746.4
|
27
|
-
・
|
28
|
-
・
|
29
|
-
・
|
30
13
|
|
31
14
|
|
32
15
|
|
@@ -36,60 +19,4 @@
|
|
36
19
|
現時点では以下のコードで、高値等を出力させることができました。
|
37
20
|
正しく表示されているかを確認しています。
|
38
21
|
|
39
|
-
```Fortran
|
40
|
-
program kakaku
|
41
|
-
implicit none
|
42
|
-
integer(8) :: time, time0, tt
|
43
|
-
real(8) :: price, high, low, opening, closing
|
44
|
-
time0 = 999999
|
45
22
|
|
46
|
-
open(17,file='rate.dat',status='old')
|
47
|
-
read(17, '(I6.6, I6.6, f10.4)') time, tt, price
|
48
|
-
|
49
|
-
high = price
|
50
|
-
low = price
|
51
|
-
opening = price
|
52
|
-
|
53
|
-
rewind(17)
|
54
|
-
|
55
|
-
do
|
56
|
-
read(17, '(I6.6, I6.6, f10.4)', end=99, err=98) time, tt, price
|
57
|
-
|
58
|
-
if (time > time0) then
|
59
|
-
print '(f10.4)', high, low, opening, closing
|
60
|
-
print *
|
61
|
-
high = price
|
62
|
-
low = price
|
63
|
-
opening = price
|
64
|
-
end if
|
65
|
-
|
66
|
-
if (high < price) then
|
67
|
-
high = price
|
68
|
-
end if
|
69
|
-
|
70
|
-
if (low > price) then
|
71
|
-
low = price
|
72
|
-
end if
|
73
|
-
|
74
|
-
print '(I6.6, I6.6, f10.4)', time, tt, price
|
75
|
-
time0 = time
|
76
|
-
closing = price
|
77
|
-
end do
|
78
|
-
|
79
|
-
98 print *, 'Error'
|
80
|
-
99 high=price
|
81
|
-
low=price
|
82
|
-
opening=price
|
83
|
-
closing=price
|
84
|
-
print '(f10.4)', high, low, opening, closing
|
85
|
-
|
86
|
-
stop
|
87
|
-
|
88
|
-
end program kakaku
|
89
|
-
|
90
|
-
```
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
24
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
### 前提
|
2
2
|
|
3
|
-
株価の
|
3
|
+
株価のデータを読み込み、1秒区切りで高値等を画面に出力させるプログラムを組みたいです。
|
4
|
-
|
4
|
+
データには、時刻(hh/mm/ss/tttttt)・株価の順に、時系列順に並んでいます。
|
5
|
-
また、
|
5
|
+
また、画面には、1秒区切りで高値・安値・始値・終値を表示させたいです。
|
6
|
-
|
6
|
+
データファイルの中身は次のようになっています。(時刻は(時・分・秒・1マイクロ秒)となっています。)
|
7
7
|
|
8
8
|
90000243601 745.8
|
9
9
|
90000604508 744.9
|
@@ -17,7 +17,7 @@
|
|
17
17
|
|
18
18
|
### 実現したいこと
|
19
19
|
|
20
|
-
|
20
|
+
データファイルを読み込んだ後、以下の例のように、1秒ごとに始値・高値・安値・終値を画面に出力させたいです。
|
21
21
|
|
22
22
|
時刻 始値 高値 安値 終値
|
23
23
|
9時1秒 744 744.6 743.9 744.5
|
@@ -33,9 +33,8 @@
|
|
33
33
|
### 試したこと
|
34
34
|
|
35
35
|
|
36
|
-
|
36
|
+
現時点では以下のコードで、高値等を出力させることができました。
|
37
|
-
このデータは、時刻が11:30:00:000000(11時30分ジャスト)までのデータが書かれています。(この部分が説明不足でした。)
|
38
|
-
|
37
|
+
正しく表示されているかを確認しています。
|
39
38
|
|
40
39
|
```Fortran
|
41
40
|
program kakaku
|
@@ -89,9 +88,8 @@
|
|
89
88
|
end program kakaku
|
90
89
|
|
91
90
|
```
|
92
|
-
実行画面
|
93
|
-

|
94
91
|
|
95
92
|
|
96
93
|
|
97
94
|
|
95
|
+
|
23
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,6 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
+
このデータは、時刻が11:30:00:000000(11時30分ジャスト)までのデータが書かれています。(この部分が説明不足でした。)
|
37
38
|
実行画面を追加しました。(時刻最後の行の部分)
|
38
39
|
|
39
40
|
```Fortran
|
22
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -88,6 +88,8 @@
|
|
88
88
|
end program kakaku
|
89
89
|
|
90
90
|
```
|
91
|
+
実行画面
|
92
|
+

|
91
93
|
|
92
94
|
|
93
95
|
|
21
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,6 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
+
実行画面を追加しました。(時刻最後の行の部分)
|
37
38
|
|
38
39
|
```Fortran
|
39
40
|
program kakaku
|
20
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
-
|
37
|
+
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
@@ -54,10 +54,6 @@
|
|
54
54
|
do
|
55
55
|
read(17, '(I6.6, I6.6, f10.4)', end=99, err=98) time, tt, price
|
56
56
|
|
57
|
-
if (time == time0) then
|
58
|
-
closing = price
|
59
|
-
end if
|
60
|
-
|
61
57
|
if (time > time0) then
|
62
58
|
print '(f10.4)', high, low, opening, closing
|
63
59
|
print *
|
@@ -66,17 +62,17 @@
|
|
66
62
|
opening = price
|
67
63
|
end if
|
68
64
|
|
69
|
-
if (high
|
65
|
+
if (high < price) then
|
70
66
|
high = price
|
71
67
|
end if
|
72
68
|
|
73
|
-
if (low
|
69
|
+
if (low > price) then
|
74
70
|
low = price
|
75
71
|
end if
|
76
72
|
|
77
73
|
print '(I6.6, I6.6, f10.4)', time, tt, price
|
78
74
|
time0 = time
|
79
|
-
|
75
|
+
closing = price
|
80
76
|
end do
|
81
77
|
|
82
78
|
98 print *, 'Error'
|
@@ -92,7 +88,6 @@
|
|
92
88
|
|
93
89
|
```
|
94
90
|
|
95
|
-
実行画面
|
96
|
-

|
97
91
|
|
98
92
|
|
93
|
+
|
19
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
-
現時点では、終値が正しく出力できないです。できたところまでのプログラムを記載します。このプログラムだと、時刻が1行だけのとき、終値が正しく表示されなくなってしまいます。(実行画面を記載します。)
|
37
|
+
現時点では、終値が正しく出力できないです。できたところまでのプログラムを記載します。このプログラムだと、時刻が1行だけのとき、終値が正しく表示されなくなってしまいます。原因は、時刻が1行だけのとき終値がひとつ前の値を記憶しているため、だと思います。(実行画面を記載します。)
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
18
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,8 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
-
現時点では、終値が正しく出力でき
|
37
|
+
現時点では、終値が正しく出力できないです。できたところまでのプログラムを記載します。このプログラムだと、時刻が1行だけのとき、終値が正しく表示されなくなってしまいます。(実行画面を記載します。)
|
38
|
-
(実行画面を添付します。)
|
39
38
|
```Fortran
|
40
39
|
program kakaku
|
41
40
|
implicit none
|
@@ -81,12 +80,19 @@
|
|
81
80
|
end do
|
82
81
|
|
83
82
|
98 print *, 'Error'
|
83
|
+
99 high=price
|
84
|
+
low=price
|
85
|
+
opening=price
|
86
|
+
closing=price
|
87
|
+
print '(f10.4)', high, low, opening, closing
|
88
|
+
|
84
|
-
|
89
|
+
stop
|
90
|
+
|
85
91
|
end program kakaku
|
86
92
|
|
87
93
|
```
|
88
94
|
|
89
95
|
実行画面
|
90
|
-

|
91
97
|
|
92
98
|
|
17
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,8 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
-
現時点では、
|
37
|
+
現時点では、終値が正しく出力できず、最後の時刻になると四本値自体が出力できなくなってしまいます。できたところまでのプログラムを記載します。
|
38
|
+
(実行画面を添付します。)
|
38
39
|
```Fortran
|
39
40
|
program kakaku
|
40
41
|
implicit none
|
16
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -33,17 +33,17 @@
|
|
33
33
|
### 試したこと
|
34
34
|
|
35
35
|
|
36
|
-
|
36
|
+
ご指摘があったように、時刻のIF文が間違っており、修正しました。
|
37
|
-
現時点では、
|
37
|
+
現時点では、四本値を求めることができたのですが、最後の時刻になると正しく出力できなくなってしまいます。(実行画面を添付します。)
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
41
|
-
integer(8) ::
|
41
|
+
integer(8) :: time, time0, tt
|
42
42
|
real(8) :: price, high, low, opening, closing
|
43
|
-
|
43
|
+
time0 = 999999
|
44
44
|
|
45
45
|
open(17,file='rate.dat',status='old')
|
46
|
-
read(17, '(
|
46
|
+
read(17, '(I6.6, I6.6, f10.4)') time, tt, price
|
47
47
|
|
48
48
|
high = price
|
49
49
|
low = price
|
@@ -52,9 +52,13 @@
|
|
52
52
|
rewind(17)
|
53
53
|
|
54
54
|
do
|
55
|
-
read(17, '(
|
55
|
+
read(17, '(I6.6, I6.6, f10.4)', end=99, err=98) time, tt, price
|
56
56
|
|
57
|
+
if (time == time0) then
|
58
|
+
closing = price
|
59
|
+
end if
|
60
|
+
|
57
|
-
if (
|
61
|
+
if (time > time0) then
|
58
62
|
print '(f10.4)', high, low, opening, closing
|
59
63
|
print *
|
60
64
|
high = price
|
@@ -70,22 +74,18 @@
|
|
70
74
|
low = price
|
71
75
|
end if
|
72
76
|
|
73
|
-
print '(
|
77
|
+
print '(I6.6, I6.6, f10.4)', time, tt, price
|
74
|
-
ss0 = ss
|
75
|
-
|
76
|
-
if (ss == ss0) then
|
77
|
-
|
78
|
+
time0 = time
|
78
|
-
end if
|
79
|
-
|
80
79
|
|
81
80
|
end do
|
82
81
|
|
82
|
+
98 print *, 'Error'
|
83
83
|
99 stop
|
84
84
|
end program kakaku
|
85
85
|
|
86
86
|
```
|
87
87
|
|
88
88
|
実行画面
|
89
|
-

|
90
90
|
|
91
91
|
|
15
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値
|
37
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での四本値(高値・安値・始値・終値)を途中まで求めることはできたのですが、時刻の最後ら辺になると四本値が出力できなくなってしまいます。(実行画面を添付します。)
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
@@ -55,7 +55,7 @@
|
|
55
55
|
read(17, '(3I2.2, I6.6, f10.4)', end=99) hh, mm, ss, tt, price
|
56
56
|
|
57
57
|
if (ss > ss0) then
|
58
|
-
print '(f10.4)', high, low, opening
|
58
|
+
print '(f10.4)', high, low, opening, closing
|
59
59
|
print *
|
60
60
|
high = price
|
61
61
|
low = price
|
@@ -72,6 +72,12 @@
|
|
72
72
|
|
73
73
|
print '(3I2.2, I6.6, f10.4)', hh, mm, ss, tt, price
|
74
74
|
ss0 = ss
|
75
|
+
|
76
|
+
if (ss == ss0) then
|
77
|
+
closing = price
|
78
|
+
end if
|
79
|
+
|
80
|
+
|
75
81
|
end do
|
76
82
|
|
77
83
|
99 stop
|
@@ -79,4 +85,7 @@
|
|
79
85
|
|
80
86
|
```
|
81
87
|
|
88
|
+
実行画面
|
89
|
+

|
82
90
|
|
91
|
+
|
14
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値と始値を画面に出力させることはできました。終値をどう表現すればよい
|
37
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値と始値を画面に出力させることはできました。終値をどう表現すればよいでしょうか。以下にコードを記載します。
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
13
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値と始値を画面に出力させることはできました。以下にコードを記載します。
|
37
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値と始値を画面に出力させることはできました。終値をどう表現すればよいのか分かりません。以下にコードを記載します。
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
12
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値を画面に出力させることはできました。以下にコードを記載します。
|
37
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値と始値を画面に出力させることはできました。以下にコードを記載します。
|
38
38
|
```Fortran
|
39
39
|
program kakaku
|
40
40
|
implicit none
|
@@ -42,12 +42,12 @@
|
|
42
42
|
real(8) :: price, high, low, opening, closing
|
43
43
|
ss0 = 99
|
44
44
|
|
45
|
-
|
46
45
|
open(17,file='rate.dat',status='old')
|
47
46
|
read(17, '(3I2.2, I6.6, f10.4)') hh, mm, ss, tt, price
|
48
47
|
|
49
|
-
high = price
|
48
|
+
high = price
|
50
|
-
low = price
|
49
|
+
low = price
|
50
|
+
opening = price
|
51
51
|
|
52
52
|
rewind(17)
|
53
53
|
|
@@ -55,10 +55,11 @@
|
|
55
55
|
read(17, '(3I2.2, I6.6, f10.4)', end=99) hh, mm, ss, tt, price
|
56
56
|
|
57
57
|
if (ss > ss0) then
|
58
|
-
print '(f10.4)', high, low
|
58
|
+
print '(f10.4)', high, low, opening
|
59
59
|
print *
|
60
60
|
high = price
|
61
61
|
low = price
|
62
|
+
opening = price
|
62
63
|
end if
|
63
64
|
|
64
65
|
if (high .lt. price) then
|
@@ -75,6 +76,7 @@
|
|
75
76
|
|
76
77
|
99 stop
|
77
78
|
end program kakaku
|
79
|
+
|
78
80
|
```
|
79
81
|
|
80
82
|
|
11
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,10 +36,10 @@
|
|
36
36
|
|
37
37
|
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値を画面に出力させることはできました。以下にコードを記載します。
|
38
38
|
```Fortran
|
39
|
-
program
|
39
|
+
program kakaku
|
40
40
|
implicit none
|
41
41
|
integer(8) :: hh, mm, ss, ss0, tt
|
42
|
-
real(8) :: price, high, low, open, clos
|
42
|
+
real(8) :: price, high, low, opening, closing
|
43
43
|
ss0 = 99
|
44
44
|
|
45
45
|
|
@@ -74,7 +74,7 @@
|
|
74
74
|
end do
|
75
75
|
|
76
76
|
99 stop
|
77
|
-
end program
|
77
|
+
end program kakaku
|
78
78
|
```
|
79
79
|
|
80
80
|
|
10
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
open(17,file='rate.dat',status='old')
|
47
|
-
read(17, '(3I2.2, I6.6, f10.4)'
|
47
|
+
read(17, '(3I2.2, I6.6, f10.4)') hh, mm, ss, tt, price
|
48
48
|
|
49
49
|
high = price
|
50
50
|
low = price
|
9
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,8 +32,7 @@
|
|
32
32
|
|
33
33
|
### 試したこと
|
34
34
|
|
35
|
-
|
35
|
+
|
36
|
-
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、それらを上手くコードに書けません。
|
37
36
|
|
38
37
|
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値を画面に出力させることはできました。以下にコードを記載します。
|
39
38
|
```Fortran
|
8
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,28 +35,47 @@
|
|
35
35
|
ファイルの中身を画面に出力させることはできたのですが、上記のプログラムが中々うまくいきません。
|
36
36
|
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、それらを上手くコードに書けません。
|
37
37
|
|
38
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切る
|
38
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切り、その範囲での高値と安値を画面に出力させることはできました。以下にコードを記載します。
|
39
39
|
```Fortran
|
40
|
-
program i
|
40
|
+
program price
|
41
41
|
implicit none
|
42
42
|
integer(8) :: hh, mm, ss, ss0, tt
|
43
|
-
real(8) :: price
|
43
|
+
real(8) :: price, high, low, open, close
|
44
44
|
ss0 = 99
|
45
45
|
|
46
|
+
|
46
47
|
open(17,file='rate.dat',status='old')
|
48
|
+
read(17, '(3I2.2, I6.6, f10.4)', end=99) hh, mm, ss, tt, price
|
49
|
+
|
50
|
+
high = price
|
51
|
+
low = price
|
52
|
+
|
53
|
+
rewind(17)
|
47
54
|
|
48
55
|
do
|
49
|
-
read(17, '(3I2.2, I6.6,f10.4)', end=99) hh, mm, ss, tt, price
|
56
|
+
read(17, '(3I2.2, I6.6, f10.4)', end=99) hh, mm, ss, tt, price
|
57
|
+
|
50
58
|
if (ss > ss0) then
|
59
|
+
print '(f10.4)', high, low
|
51
60
|
print *
|
61
|
+
high = price
|
62
|
+
low = price
|
52
63
|
end if
|
64
|
+
|
65
|
+
if (high .lt. price) then
|
66
|
+
high = price
|
67
|
+
end if
|
68
|
+
|
69
|
+
if (low .gt. price) then
|
70
|
+
low = price
|
71
|
+
end if
|
72
|
+
|
53
73
|
print '(3I2.2, I6.6, f10.4)', hh, mm, ss, tt, price
|
54
74
|
ss0 = ss
|
55
75
|
end do
|
56
76
|
|
57
77
|
99 stop
|
58
|
-
end program i
|
78
|
+
end program price
|
59
|
-
|
60
79
|
```
|
61
80
|
|
62
81
|
|
7
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -35,6 +35,28 @@
|
|
35
35
|
ファイルの中身を画面に出力させることはできたのですが、上記のプログラムが中々うまくいきません。
|
36
36
|
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、それらを上手くコードに書けません。
|
37
37
|
|
38
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切るプログラムは完成しました。
|
38
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切るプログラムは完成しました。以下にコードを記載します。
|
39
|
+
```Fortran
|
40
|
+
program interval
|
41
|
+
implicit none
|
42
|
+
integer(8) :: hh, mm, ss, ss0, tt
|
43
|
+
real(8) :: price
|
44
|
+
ss0 = 99
|
45
|
+
|
46
|
+
open(17,file='rate.dat',status='old')
|
47
|
+
|
48
|
+
do
|
49
|
+
read(17, '(3I2.2, I6.6,f10.4)', end=99) hh, mm, ss, tt, price
|
50
|
+
if (ss > ss0) then
|
51
|
+
print *
|
52
|
+
end if
|
53
|
+
print '(3I2.2, I6.6, f10.4)', hh, mm, ss, tt, price
|
54
|
+
ss0 = ss
|
55
|
+
end do
|
56
|
+
|
57
|
+
99 stop
|
58
|
+
end program interval
|
59
|
+
|
60
|
+
```
|
39
61
|
|
40
62
|
|
6
追記
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
5
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -33,33 +33,8 @@
|
|
33
33
|
### 試したこと
|
34
34
|
|
35
35
|
ファイルの中身を画面に出力させることはできたのですが、上記のプログラムが中々うまくいきません。
|
36
|
-
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、
|
36
|
+
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、それらを上手くコードに書けません。
|
37
|
-
※追記 (2022-12-15-19:37)
|
38
|
-
現時点では、まずデータ列を1秒ごとのまとまりに区切るプログラムを作成しているのですが、画面に出力すると数値が欠けてしまいます。以下にそのプログラムを記載します。
|
39
|
-
```Fortran
|
40
|
-
program interval
|
41
|
-
implicit none
|
42
|
-
integer(8) :: hh, mm, ss, ss0, tt
|
43
|
-
real(4) :: price
|
44
|
-
ss0 = 99
|
45
37
|
|
46
|
-
open(17,file='rate.dat',status='old')
|
47
|
-
|
48
|
-
do
|
49
|
-
read(17, '(3I2.2, I6.6, 2X, f6.3)', end=99) hh, mm, ss, tt, price
|
50
|
-
if (ss > ss0) then
|
51
|
-
print *
|
52
|
-
end if
|
53
|
-
print '(3I2.2, I6.6, 2X, f6.3)', hh, mm, ss, tt, price
|
54
|
-
ss0 = ss
|
55
|
-
end do
|
56
|
-
|
57
|
-
99 stop
|
58
|
-
end program interval
|
59
|
-
```
|
60
|
-
実行すると以下のようになります。途中の数が欠けています。
|
61
|
-

|
62
|
-
|
38
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切るプログラムは完成しました。
|
63
|
-

|
64
39
|
|
65
40
|
|
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
ファイルの中身を画面に出力させることはできたのですが、上記のプログラムが中々うまくいきません。
|
36
36
|
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、うまくいきません。
|
37
|
-
※追記 (2022-12-15-19:
|
37
|
+
※追記 (2022-12-15-19:37)
|
38
38
|
現時点では、まずデータ列を1秒ごとのまとまりに区切るプログラムを作成しているのですが、画面に出力すると数値が欠けてしまいます。以下にそのプログラムを記載します。
|
39
39
|
```Fortran
|
40
40
|
program interval
|
3
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,11 +46,11 @@
|
|
46
46
|
open(17,file='rate.dat',status='old')
|
47
47
|
|
48
48
|
do
|
49
|
-
read(17, '(3I2.2, I6, 2X, f6.3)', end=99) hh, mm, ss, tt, price
|
49
|
+
read(17, '(3I2.2, I6.6, 2X, f6.3)', end=99) hh, mm, ss, tt, price
|
50
50
|
if (ss > ss0) then
|
51
51
|
print *
|
52
52
|
end if
|
53
|
-
print '(3I2.2, I6, 2X, f6.3)', hh, mm, ss, tt, price
|
53
|
+
print '(3I2.2, I6.6, 2X, f6.3)', hh, mm, ss, tt, price
|
54
54
|
ss0 = ss
|
55
55
|
end do
|
56
56
|
|
@@ -58,7 +58,7 @@
|
|
58
58
|
end program interval
|
59
59
|
```
|
60
60
|
実行すると以下のようになります。途中の数が欠けています。
|
61
|
-

|
62
62
|
これを次のように表示させたいです。(小数点以下の000は表示させなくて大丈夫です。)
|
63
63
|

|
64
64
|
|
2
"試してみたこと"の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -59,7 +59,7 @@
|
|
59
59
|
```
|
60
60
|
実行すると以下のようになります。途中の数が欠けています。
|
61
61
|

|
62
|
-
これを次のように表示させたいです。
|
62
|
+
これを次のように表示させたいです。(小数点以下の000は表示させなくて大丈夫です。)
|
63
63
|

|
64
64
|
|
65
65
|
|
1
”試したこと"の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,5 +34,32 @@
|
|
34
34
|
|
35
35
|
ファイルの中身を画面に出力させることはできたのですが、上記のプログラムが中々うまくいきません。
|
36
36
|
datファイルを1行ずつ読み込み、1秒ごとの四本値をそれぞれ配列に入れ、それぞれの配列にmaxvalやminvalなどの関数を使うと考えているのですが、うまくいきません。
|
37
|
+
※追記 (2022-12-15-19:03)
|
38
|
+
現時点では、まずデータ列を1秒ごとのまとまりに区切るプログラムを作成しているのですが、画面に出力すると数値が欠けてしまいます。以下にそのプログラムを記載します。
|
39
|
+
```Fortran
|
40
|
+
program interval
|
41
|
+
implicit none
|
42
|
+
integer(8) :: hh, mm, ss, ss0, tt
|
43
|
+
real(4) :: price
|
44
|
+
ss0 = 99
|
45
|
+
|
46
|
+
open(17,file='rate.dat',status='old')
|
47
|
+
|
48
|
+
do
|
49
|
+
read(17, '(3I2.2, I6, 2X, f6.3)', end=99) hh, mm, ss, tt, price
|
50
|
+
if (ss > ss0) then
|
51
|
+
print *
|
52
|
+
end if
|
53
|
+
print '(3I2.2, I6, 2X, f6.3)', hh, mm, ss, tt, price
|
54
|
+
ss0 = ss
|
55
|
+
end do
|
56
|
+
|
57
|
+
99 stop
|
58
|
+
end program interval
|
59
|
+
```
|
60
|
+
実行すると以下のようになります。途中の数が欠けています。
|
61
|
+

|
62
|
+
これを次のように表示させたいです。
|
63
|
+

|
37
64
|
|
38
65
|
|