質問編集履歴

8

2023/11/28 15:46

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -148,6 +148,8 @@
148
148
 
149
149
  ema50(移動平均線)は良さそうな値が出てますが、ema50_slope(移動平均線の傾き) はほぼ0なので、傾きがうまく出てないようです。
150
150
 
151
+ Closing Priceもなにかおかしいです
152
+
151
153
  (理想のグラフ)
152
154
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-11-29/86d79029-0f56-4dd5-9f3b-10ca4e616b6d.png)
153
155
 

7

2023/11/28 15:46

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -138,6 +138,7 @@
138
138
  lange(51,len(ma),1) としてema50 の51行目以降にしてみましたが、無意味でした。
139
139
  (50行目(49行目?)まではema50は作成されないと思います。NaN )
140
140
 
141
+ (2023.11.29.0時追記)
141
142
  ご回答通り、
142
143
  ma.iloc[i] にすることで、エラーなく処理は終わりましたが、EMA50(黄色のグラフ)が直線になってしまいます。
143
144
  理想のグラフ、

6

2023/11/28 15:45

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -152,19 +152,7 @@
152
152
 
153
153
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-11-29/817fa1ea-0ee6-4e0e-98bf-f25dddcb5989.png)
154
154
  ```
155
- 0 2023-11-26 22:00:00 149.514 149.514 149.501 149.502
156
- 1 2023-11-26 22:01:00 149.502 149.507 149.502 149.503
157
- 2 2023-11-26 22:02:00 149.503 149.507 149.503 149.504
158
- 3 2023-11-26 22:03:00 149.503 149.511 149.503 149.505
159
- 4 2023-11-26 22:04:00 149.505 149.505 149.503 149.503
160
- ... ... ... ... ... ...
161
- 1375 2023-11-27 20:55:00 148.681 148.691 148.677 148.689
162
- 1376 2023-11-27 20:56:00 148.689 148.702 148.687 148.699
163
- 1377 2023-11-27 20:57:00 148.699 148.707 148.699 148.703
164
- 1378 2023-11-27 20:58:00 148.703 148.703 148.668 148.669
165
- 1379 2023-11-27 20:59:00 148.669 148.691 148.669 148.69
166
155
 
167
- [1380 rows x 5 columns]
168
156
  Date time Open High Low Close ema50 \
169
157
  0 2023-11-26 22:00:00 149.514 149.514 149.501 149.502 NaN
170
158
  1 2023-11-26 22:01:00 149.502 149.507 149.502 149.503 NaN

5

2023/11/28 15:44

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -138,10 +138,16 @@
138
138
  lange(51,len(ma),1) としてema50 の51行目以降にしてみましたが、無意味でした。
139
139
  (50行目(49行目?)まではema50は作成されないと思います。NaN )
140
140
 
141
+ ご回答通り、
142
+ ma.iloc[i] にすることで、エラーなく処理は終わりましたが、EMA50(黄色のグラフ)が直線になってしまいます。
143
+ 理想のグラフ、
144
+ 問題のグラフ画像、
141
- ご回答通り、.ilocつけみまし
145
+ コードの最後にprint(df)追加し、出メッセージ
142
- かし、下記のようになりました。
146
+ を記載しました。
147
+
143
-
148
+ ema50(移動平均線)は良さそうな値が出てますが、ema50_slope(移動平均線の傾き) はほぼ0なので、傾きがうまく出てないようです。
149
+
144
- (理想のイメージ
150
+ (理想のグラフ
145
151
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-11-29/86d79029-0f56-4dd5-9f3b-10ca4e616b6d.png)
146
152
 
147
153
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-11-29/817fa1ea-0ee6-4e0e-98bf-f25dddcb5989.png)

4

2023/11/28 15:42

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -138,8 +138,59 @@
138
138
  lange(51,len(ma),1) としてema50 の51行目以降にしてみましたが、無意味でした。
139
139
  (50行目(49行目?)まではema50は作成されないと思います。NaN )
140
140
 
141
+ ご回答通り、.iloc をつけてみました。
142
+ しかし、下記のようになりました。
143
+
144
+ (理想のイメージ)
145
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-11-29/86d79029-0f56-4dd5-9f3b-10ca4e616b6d.png)
146
+
147
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-11-29/817fa1ea-0ee6-4e0e-98bf-f25dddcb5989.png)
148
+ ```
149
+ 0 2023-11-26 22:00:00 149.514 149.514 149.501 149.502
150
+ 1 2023-11-26 22:01:00 149.502 149.507 149.502 149.503
151
+ 2 2023-11-26 22:02:00 149.503 149.507 149.503 149.504
152
+ 3 2023-11-26 22:03:00 149.503 149.511 149.503 149.505
153
+ 4 2023-11-26 22:04:00 149.505 149.505 149.503 149.503
154
+ ... ... ... ... ... ...
155
+ 1375 2023-11-27 20:55:00 148.681 148.691 148.677 148.689
156
+ 1376 2023-11-27 20:56:00 148.689 148.702 148.687 148.699
157
+ 1377 2023-11-27 20:57:00 148.699 148.707 148.699 148.703
158
+ 1378 2023-11-27 20:58:00 148.703 148.703 148.668 148.669
159
+ 1379 2023-11-27 20:59:00 148.669 148.691 148.669 148.69
160
+
161
+ [1380 rows x 5 columns]
162
+ Date time Open High Low Close ema50 \
163
+ 0 2023-11-26 22:00:00 149.514 149.514 149.501 149.502 NaN
164
+ 1 2023-11-26 22:01:00 149.502 149.507 149.502 149.503 NaN
165
+ 2 2023-11-26 22:02:00 149.503 149.507 149.503 149.504 NaN
166
+ 3 2023-11-26 22:03:00 149.503 149.511 149.503 149.505 NaN
167
+ 4 2023-11-26 22:04:00 149.505 149.505 149.503 149.503 NaN
168
+ ... ... ... ... ... ... ...
169
+ 1375 2023-11-27 20:55:00 148.681 148.691 148.677 148.689 148.677618
170
+ 1376 2023-11-27 20:56:00 148.689 148.702 148.687 148.699 148.678456
171
+ 1377 2023-11-27 20:57:00 148.699 148.707 148.699 148.703 148.679419
172
+ 1378 2023-11-27 20:58:00 148.703 148.703 148.668 148.669 148.679010
173
+ 1379 2023-11-27 20:59:00 148.669 148.691 148.669 148.69 148.679441
174
+
175
+ ema50_slope
176
+ 0 NaN
177
+ 1 NaN
178
+ 2 NaN
179
+ 3 NaN
180
+ 4 NaN
181
+ ... ...
182
+ 1375 0.000465
183
+ 1376 0.000839
184
+ 1377 0.000962
185
+ 1378 -0.000409
186
+ 1379 0.000431
187
+
188
+ [1380 rows x 7 columns]
189
+ 2023-11-29 00:38:00.894 Python[8482:492950] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES.
190
+ ```
141
191
  ### 補足情報(FW/ツールのバージョンなど)
142
192
 
143
193
  macOS
144
194
  Python3
145
195
 
196
+

3

z

2023/11/27 14:08

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -23,13 +23,13 @@
23
23
  3 2023-11-26 22:03:00 149.503 149.511 149.503 149.505
24
24
  4 2023-11-26 22:04:00 149.505 149.505 149.503 149.503
25
25
  .. ... ... ... ... ...
26
+ 963 2023-11-27 14:03:00 148.866 148.89 148.858 148.876
27
+ 964 2023-11-27 14:04:00 148.877 148.886 148.857 148.871
26
- 955 2023-11-27 13:55:00 148.794 148.812 148.777 148.812
28
+ 965 2023-11-27 14:05:00 148.871 148.888 148.862 148.872
27
- 956 2023-11-27 13:56:00 148.812 148.812 148.79 148.799
29
+ 966 2023-11-27 14:06:00 148.872 148.874 148.853 148.858
28
- 957 2023-11-27 13:57:00 148.799 148.84 148.797 148.814
29
- 958 2023-11-27 13:58:00 148.813 148.831 148.808 148.82
30
+ 967 2023-11-27 14:07:00 148.858 148.871 148.854 148.871
30
- 959 2023-11-27 13:59:00 148.82 148.821 148.798 148.805
31
31
 
32
- [960 rows x 5 columns]
32
+ [968 rows x 5 columns]
33
33
  Date time Open High Low Close ema50
34
34
  0 2023-11-26 22:00:00 149.514 149.514 149.501 149.502 NaN
35
35
  1 2023-11-26 22:01:00 149.502 149.507 149.502 149.503 NaN
@@ -37,13 +37,13 @@
37
37
  3 2023-11-26 22:03:00 149.503 149.511 149.503 149.505 NaN
38
38
  4 2023-11-26 22:04:00 149.505 149.505 149.503 149.503 NaN
39
39
  .. ... ... ... ... ... ...
40
+ 963 2023-11-27 14:03:00 148.866 148.89 148.858 148.876 148.801582
41
+ 964 2023-11-27 14:04:00 148.877 148.886 148.857 148.871 148.804304
40
- 955 2023-11-27 13:55:00 148.794 148.812 148.777 148.812 148.788501
42
+ 965 2023-11-27 14:05:00 148.871 148.888 148.862 148.872 148.806959
41
- 956 2023-11-27 13:56:00 148.812 148.812 148.79 148.799 148.788912
43
+ 966 2023-11-27 14:06:00 148.872 148.874 148.853 148.858 148.808960
42
- 957 2023-11-27 13:57:00 148.799 148.84 148.797 148.814 148.789896
43
- 958 2023-11-27 13:58:00 148.813 148.831 148.808 148.82 148.791077
44
+ 967 2023-11-27 14:07:00 148.858 148.871 148.854 148.871 148.811393
44
- 959 2023-11-27 13:59:00 148.82 148.821 148.798 148.805 148.791623
45
45
 
46
- [960 rows x 6 columns]
46
+ [968 rows x 6 columns]
47
47
  Traceback (most recent call last):
48
48
  File "/opt/homebrew/lib/python3.11/site-packages/pandas/core/indexes/range.py", line 414, in get_loc
49
49
  return self._range.index(new_key)
@@ -53,10 +53,10 @@
53
53
  The above exception was the direct cause of the following exception:
54
54
 
55
55
  Traceback (most recent call last):
56
- File "/Users/uta/Documents/code/fx/trade_test3.py", line 48, in <module>
56
+ File "/Users/uta/Documents/code/fx/trade_test3.py", line 44, in <module>
57
57
  df['ema50_slope'] = make_ma_slope(df['ema50'], 1)
58
58
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
59
- File "/Users/uta/Documents/code/fx/trade_test3.py", line 38, in make_ma_slope
59
+ File "/Users/uta/Documents/code/fx/trade_test3.py", line 34, in make_ma_slope
60
60
  ma_slope.append((ma[i] - ma[i - span]) / (i - (i - span)))
61
61
  ~~^^^^^^^^^^
62
62
  File "/opt/homebrew/lib/python3.11/site-packages/pandas/core/series.py", line 1040, in __getitem__

2

2023/11/27 14:06

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -112,6 +112,10 @@
112
112
 
113
113
  # EMA50
114
114
  df['ema50'] = make_ema(df['Close'], 50)
115
+
116
+ # 次でエラーが出るので一旦printしときます
117
+ print(df)
118
+
115
119
  df['ema50_slope'] = make_ma_slope(df['ema50'], 1)
116
120
 
117
121
  # チャート描画

1

2023/11/27 14:05

投稿

penpen88
penpen88

スコア18

test CHANGED
File without changes
test CHANGED
@@ -10,24 +10,8 @@
10
10
 
11
11
  ・移動平均線の作成までは上手くいきましたが、傾きの算出がうまくいきません。その中の for文でエラーが出ている状態です。
12
12
 
13
+ ・為替のDataFrameはGMOコインのAPIを利用して取得しています。
13
14
 
14
- ・下記では省略しましたが、為替のDataFrameはこちらをコピペで取得できます。
15
- ```python
16
- import requests
17
- import json
18
- import pandas as pd
19
-
20
- endPoint = 'https://forex-api.coin.z.com/public'
21
- path = '/v1/klines?symbol=USD_JPY&priceType=ASK&interval=1min&date=20231127'
22
- response = requests.get(endPoint + path)
23
-
24
- df = pd.DataFrame(response.json()['data'])
25
- df['openTime'] = pd.to_datetime(df['openTime'].astype(int), unit='ms')
26
- df = df.set_axis(['Date time', *df.columns[1:].str.title()], axis=1)
27
-
28
- pd.set_option('display.max_columns', 10)
29
- print(df)
30
- ```
31
15
 
32
16
  ### 発生している問題・エラーメッセージ
33
17
 
@@ -96,7 +80,16 @@
96
80
  import numpy as np
97
81
  import matplotlib.pyplot as plt
98
82
 
99
- # 為替のデータフレームはすでに取得しています
83
+ # 為替のデータフレーム取得
84
+ endPoint = 'https://forex-api.coin.z.com/public'
85
+ path = '/v1/klines?symbol=USD_JPY&priceType=ASK&interval=1min&date=20231127'
86
+ response = requests.get(endPoint + path)
87
+
88
+ df = pd.DataFrame(response.json()['data'])
89
+ df['openTime'] = pd.to_datetime(df['openTime'].astype(int), unit='ms')
90
+ df = df.set_axis(['Date time', *df.columns[1:].str.title()], axis=1)
91
+
92
+ pd.set_option('display.max_columns', 10)
100
93
  print(df)
101
94
 
102
95
  # 単純移動平均線を作成