質問編集履歴
3
コードブロックに整理
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,10 +32,6 @@
|
|
32
32
|
|
33
33
|
ここに質問の内容を詳しく書いてください。
|
34
34
|
|
35
|
-
(例)PHP(CakePHP)で●●なシステムを作っています。
|
36
|
-
|
37
|
-
■■な機能を実装中に以下のエラーメッセージが発生しました。
|
38
|
-
|
39
35
|
cloud9のPython3でif関数のエラーが発生しました。
|
40
36
|
|
41
37
|
### 発生している問題・エラーメッセージ
|
@@ -48,67 +44,7 @@
|
|
48
44
|
|
49
45
|
### 該当のソースコード
|
50
46
|
|
51
|
-
```def calcIndicator():
|
52
|
-
|
53
|
-
global GLB_indicator
|
54
|
-
|
55
|
-
global GLB_order_signal
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
## テクニカル分析変数の準備
|
62
|
-
|
63
|
-
candles = getCandles(GLB_config['candleTimeFrame'])
|
64
|
-
|
65
|
-
high_piddle = np.array([ohlcv[H] for ohlcv in candles], dtype='f8')
|
66
|
-
|
67
|
-
low_piddle = np.array([ohlcv[L] for ohlcv in candles], dtype='f8')
|
68
|
-
|
69
|
-
close_piddle = np.array([ohlcv[C] for ohlcv in candles], dtype='f8')
|
70
|
-
|
71
|
-
volume_piddle = np.array([ohlcv[V] for ohlcv in candles], dtype='f8')
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
##ATRを求める
|
78
|
-
|
79
|
-
GLB_indicator['ATR'] = ta.ATR(high_piddle, low_piddle, close_piddle)
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
##highestを求める
|
84
|
-
|
85
|
-
price_highest = ta.MAX(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
##lowestを求める
|
90
|
-
|
91
|
-
price_lowest = ta.MIN(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
##hilimtを求める
|
96
|
-
|
97
|
-
hilimit = price_highest[-1]-(GLB_indicator['ATR'][-1]*3)
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
##lolimtを求める
|
102
|
-
|
103
|
-
lolimit = price_lowest[-1]+(GLB_indicator['ATR'][-1]*3)
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
## SMA_M を求める
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
47
|
+
```if (close_piddle > hilimit and close_piddle > lolimit):
|
112
48
|
|
113
49
|
GLB_indicator['SMA_M'] = hilimit
|
114
50
|
|
@@ -124,74 +60,6 @@
|
|
124
60
|
|
125
61
|
GLB_indicator['SMA_M'] = hilimit
|
126
62
|
|
127
|
-
|
128
|
-
|
129
|
-
## SMA_S を求める
|
130
|
-
|
131
|
-
GLB_indicator['SMA_S'] = ta.SMA(close_piddle, timeperiod=GLB_STconfig['TERM_S'])
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
## debug
|
136
|
-
|
137
|
-
logger.debug('Indicator OHLCV=' + str(candles[-1]))
|
138
|
-
|
139
|
-
logger.debug('Indicator SMA_S=' + str(GLB_indicator['SMA_S'][-6:]))
|
140
|
-
|
141
|
-
logger.debug('Indicator SMA_M=' + str(GLB_indicator['SMA_M']))
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
GLB_order_signal = OrderSignal.NONE
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
63
|
コード
|
152
64
|
|
153
|
-
```
|
65
|
+
``````
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
### 試したこと
|
160
|
-
|
161
|
-
翻訳: ValueError:複数の要素を持つ配列の真理値はあいまいです。 a.any()またはa.all()を使用して、
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
ここに問題に対して試したことを記載してください。
|
166
|
-
|
167
|
-
翻訳してみましたが、初心者なのでよくわかりません。
|
168
|
-
|
169
|
-
### 補足情報(FW/ツールのバージョンなど)
|
170
|
-
|
171
|
-
cloud9 TA-lib
|
172
|
-
|
173
|
-
ここにより詳細な情報を記載してください。
|
174
|
-
|
175
|
-
if関数の部分がエラーとなりました。
|
176
|
-
|
177
|
-
``` if (close_piddle > hilimit and close_piddle > lolimit):
|
178
|
-
|
179
|
-
GLB_indicator['SMA_M'] = hilimit
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
elif(close_piddle < lolimit and close_piddle < hilimit):
|
184
|
-
|
185
|
-
GLB_indicator['SMA_M'] = lolimit
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
else:
|
190
|
-
|
191
|
-
GLB_indicator['SMA_M'] = hilimit
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
コード
|
196
|
-
|
197
|
-
```
|
2
コードブロックに入れ直しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,7 +48,67 @@
|
|
48
48
|
|
49
49
|
### 該当のソースコード
|
50
50
|
|
51
|
+
```def calcIndicator():
|
52
|
+
|
53
|
+
global GLB_indicator
|
54
|
+
|
55
|
+
global GLB_order_signal
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
## テクニカル分析変数の準備
|
62
|
+
|
63
|
+
candles = getCandles(GLB_config['candleTimeFrame'])
|
64
|
+
|
65
|
+
high_piddle = np.array([ohlcv[H] for ohlcv in candles], dtype='f8')
|
66
|
+
|
67
|
+
low_piddle = np.array([ohlcv[L] for ohlcv in candles], dtype='f8')
|
68
|
+
|
69
|
+
close_piddle = np.array([ohlcv[C] for ohlcv in candles], dtype='f8')
|
70
|
+
|
71
|
+
volume_piddle = np.array([ohlcv[V] for ohlcv in candles], dtype='f8')
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
##ATRを求める
|
78
|
+
|
79
|
+
GLB_indicator['ATR'] = ta.ATR(high_piddle, low_piddle, close_piddle)
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
##highestを求める
|
84
|
+
|
85
|
+
price_highest = ta.MAX(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
##lowestを求める
|
90
|
+
|
91
|
+
price_lowest = ta.MIN(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
##hilimtを求める
|
96
|
+
|
97
|
+
hilimit = price_highest[-1]-(GLB_indicator['ATR'][-1]*3)
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
##lolimtを求める
|
102
|
+
|
103
|
+
lolimit = price_lowest[-1]+(GLB_indicator['ATR'][-1]*3)
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
## SMA_M を求める
|
108
|
+
|
109
|
+
|
110
|
+
|
51
|
-
|
111
|
+
if (close_piddle > hilimit and close_piddle > lolimit):
|
52
112
|
|
53
113
|
GLB_indicator['SMA_M'] = hilimit
|
54
114
|
|
@@ -64,7 +124,33 @@
|
|
64
124
|
|
65
125
|
GLB_indicator['SMA_M'] = hilimit
|
66
126
|
|
127
|
+
|
67
128
|
|
129
|
+
## SMA_S を求める
|
130
|
+
|
131
|
+
GLB_indicator['SMA_S'] = ta.SMA(close_piddle, timeperiod=GLB_STconfig['TERM_S'])
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
## debug
|
136
|
+
|
137
|
+
logger.debug('Indicator OHLCV=' + str(candles[-1]))
|
138
|
+
|
139
|
+
logger.debug('Indicator SMA_S=' + str(GLB_indicator['SMA_S'][-6:]))
|
140
|
+
|
141
|
+
logger.debug('Indicator SMA_M=' + str(GLB_indicator['SMA_M']))
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
GLB_order_signal = OrderSignal.NONE
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
コード
|
152
|
+
|
153
|
+
```
|
68
154
|
|
69
155
|
|
70
156
|
|
@@ -85,3 +171,27 @@
|
|
85
171
|
cloud9 TA-lib
|
86
172
|
|
87
173
|
ここにより詳細な情報を記載してください。
|
174
|
+
|
175
|
+
if関数の部分がエラーとなりました。
|
176
|
+
|
177
|
+
``` if (close_piddle > hilimit and close_piddle > lolimit):
|
178
|
+
|
179
|
+
GLB_indicator['SMA_M'] = hilimit
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
elif(close_piddle < lolimit and close_piddle < hilimit):
|
184
|
+
|
185
|
+
GLB_indicator['SMA_M'] = lolimit
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
else:
|
190
|
+
|
191
|
+
GLB_indicator['SMA_M'] = hilimit
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
コード
|
196
|
+
|
197
|
+
```
|
1
内容の修正をしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,32 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
+
|
3
|
+
下記のPINEエディタをPythonに変換。
|
4
|
+
|
5
|
+
```study(title="Trend Trader", overlay = true)
|
6
|
+
|
7
|
+
Length = input(21, minval=1),
|
8
|
+
|
9
|
+
Multiplier = input(3, minval=1)
|
10
|
+
|
11
|
+
avgTR = wma(atr(1), Length)
|
12
|
+
|
13
|
+
highestC = highest(Length)
|
14
|
+
|
15
|
+
lowestC = lowest(Length)
|
16
|
+
|
17
|
+
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
|
18
|
+
|
19
|
+
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
|
20
|
+
|
21
|
+
ret = iff(close > hiLimit and close > loLimit, hiLimit,
|
22
|
+
|
23
|
+
iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
|
24
|
+
|
25
|
+
plot(ret, color= blue , title="Trend Trader")
|
26
|
+
|
27
|
+
コード
|
28
|
+
|
29
|
+
```
|
2
30
|
|
3
31
|
|
4
32
|
|
@@ -12,45 +40,15 @@
|
|
12
40
|
|
13
41
|
### 発生している問題・エラーメッセージ
|
14
42
|
|
15
|
-
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
|
43
|
+
```ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
|
16
44
|
|
17
|
-
```
|
18
45
|
|
19
|
-
エラーメッセージ
|
20
|
-
|
21
|
-
```
|
22
46
|
|
23
47
|
|
24
48
|
|
25
49
|
### 該当のソースコード
|
26
50
|
|
27
|
-
if (close_piddle > hilimit and close_piddle > lolimit):
|
51
|
+
```if (close_piddle > hilimit and close_piddle > lolimit):
|
28
|
-
|
29
|
-
GLB_indicator['SMA_M'] = hilimit
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
elif(close_piddle < lolimit and close_piddle < hilimit):
|
34
|
-
|
35
|
-
GLB_indicator['SMA_M'] = lolimit
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
else:
|
40
|
-
|
41
|
-
GLB_indicator['SMA_M'] = hilimit
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
```ここに言語名を入力
|
46
|
-
|
47
|
-
python3
|
48
|
-
|
49
|
-
ソースコード
|
50
|
-
|
51
|
-
```
|
52
|
-
|
53
|
-
if (close_piddle > hilimit and close_piddle > lolimit):
|
54
52
|
|
55
53
|
GLB_indicator['SMA_M'] = hilimit
|
56
54
|
|
@@ -70,6 +68,8 @@
|
|
70
68
|
|
71
69
|
|
72
70
|
|
71
|
+
|
72
|
+
|
73
73
|
### 試したこと
|
74
74
|
|
75
75
|
翻訳: ValueError:複数の要素を持つ配列の真理値はあいまいです。 a.any()またはa.all()を使用して、
|
@@ -82,6 +82,6 @@
|
|
82
82
|
|
83
83
|
### 補足情報(FW/ツールのバージョンなど)
|
84
84
|
|
85
|
-
cloud9
|
85
|
+
cloud9 TA-lib
|
86
86
|
|
87
87
|
ここにより詳細な情報を記載してください。
|