質問編集履歴

1

説明があまりにも不十分だったので修正しました)

2018/07/09 04:24

投稿

kazushige
kazushige

スコア20

test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,57 @@
4
4
 
5
5
  上手くいきません。
6
6
 
7
- ここに質問の内容を詳しく書いてください。
7
+ ここに質問の内容を詳しく書いてください。(説明があまりにも不十分だったので修正しました)
8
8
 
9
- IDLE(Python3.5 64-bit)jsmkから株価データ(リスト形式)
9
+ IDLE(Python3.5 64-bit)を使って、Pythonのjsmモジュールで日本の証券引所に上場ている次のように、株価を取得。
10
10
 
11
+ # 株価のデータ取得(銘柄コード, 開始日, 終了日)
12
+
13
+ def get_stock(code, start_date, end_date):
14
+
15
+ # 期間設定
16
+
17
+ year, month, day = start_date.split("/")
18
+
19
+ start = datetime.date(int(year), int(month), int(day))
20
+
21
+ year, month, day = end_date.split("/")
22
+
23
+ end = datetime.date(int(year), int(month), int(day))
24
+
25
+ # 株価データ取得
26
+
27
+ q = jsm.Quotes()
28
+
29
+ target = q.get_historical_prices(code, jsm.DAILY, start_date = start, end_date = end)
30
+
31
+ # 項目ごとにリストに格納して返す
32
+
33
+ date = [data.date for data in target]
34
+
35
+ open = [data.open for data in target]
36
+
37
+ close = [data.close for data in target]
38
+
39
+ high = [data.high for data in target]
40
+
41
+ low = [data.low for data in target]
42
+
43
+
44
+
45
+ return [date, open, close, high, low]
46
+
47
+ これを使って、
48
+
49
+ date に取得したい年月日を指定し、その日の株コード、株価データを得る。
50
+
51
+ data = get_stock(code, date,date)
52
+
11
- を使って分析で、次のような比率を計算したいのです。
53
+ この株価データ(リスト構造)を使って、次のような比率を計算したいのです。
12
54
 
13
55
  hDd = (data[3] - data[4])/data[2] #発表日の(高値―安値)/終値
56
+
57
+ 株価データがリスト構造で、エラーが出ました。
14
58
 
15
59
  ```
16
60
 
@@ -19,3 +63,23 @@
19
63
  ``` hDd = (data[3] - data[4])/data[2] #発表日の(高値―安値)/終値
20
64
 
21
65
  TypeError: unsupported operand type(s) for -: 'list' and 'list'
66
+
67
+
68
+
69
+
70
+
71
+ 解決策として、あまり良い方法とは思いませんが、appendを見つけ、これを
72
+
73
+ 利用して、appendでリストの0番目だけ取り上げたら、解決しました
74
+
75
+ dd1 = data[2]
76
+
77
+ dd2 = data[3]
78
+
79
+ dd3 = data[4]
80
+
81
+ h = []#リストの初期化
82
+
83
+ for i in range(1):
84
+
85
+   h.append((dd1[i] - dd2[i])/dd3[i])