質問編集履歴

3

コードブロックに整理

2018/09/09 16:08

投稿

PS4pro4Khdr
PS4pro4Khdr

スコア10

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
- if (close_piddle > hilimit and close_piddle > lolimit):
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

コードブロックに入れ直しました。

2018/09/09 16:08

投稿

PS4pro4Khdr
PS4pro4Khdr

スコア10

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
- ```if (close_piddle > hilimit and close_piddle > lolimit):
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

内容の修正をしました。

2018/09/09 16:01

投稿

PS4pro4Khdr
PS4pro4Khdr

スコア10

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
  ここにより詳細な情報を記載してください。