teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コードブロックに整理

2018/09/09 16:08

投稿

PS4pro4Khdr
PS4pro4Khdr

スコア10

title CHANGED
File without changes
body CHANGED
@@ -15,45 +15,13 @@
15
15
  ```
16
16
 
17
17
  ここに質問の内容を詳しく書いてください。
18
- (例)PHP(CakePHP)で●●なシステムを作っています。
19
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
20
18
  cloud9のPython3でif関数のエラーが発生しました。
21
19
  ### 発生している問題・エラーメッセージ
22
20
  ```ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
23
21
 
24
22
 
25
23
  ### 該当のソースコード
26
- ```def calcIndicator():
27
- global GLB_indicator
28
- global GLB_order_signal
29
-
30
-
31
- ## テクニカル分析変数の準備
32
- candles = getCandles(GLB_config['candleTimeFrame'])
33
- high_piddle = np.array([ohlcv[H] for ohlcv in candles], dtype='f8')
34
- low_piddle = np.array([ohlcv[L] for ohlcv in candles], dtype='f8')
35
- close_piddle = np.array([ohlcv[C] for ohlcv in candles], dtype='f8')
36
- volume_piddle = np.array([ohlcv[V] for ohlcv in candles], dtype='f8')
37
-
38
-
39
- ##ATRを求める
40
- GLB_indicator['ATR'] = ta.ATR(high_piddle, low_piddle, close_piddle)
41
-
42
- ##highestを求める
43
- price_highest = ta.MAX(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
44
-
45
- ##lowestを求める
46
- price_lowest = ta.MIN(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
47
-
48
- ##hilimtを求める
49
- hilimit = price_highest[-1]-(GLB_indicator['ATR'][-1]*3)
50
-
51
- ##lolimtを求める
52
- lolimit = price_lowest[-1]+(GLB_indicator['ATR'][-1]*3)
53
-
54
- ## SMA_M を求める
55
-
56
- if (close_piddle > hilimit and close_piddle > lolimit):
24
+ ```if (close_piddle > hilimit and close_piddle > lolimit):
57
25
  GLB_indicator['SMA_M'] = hilimit
58
26
 
59
27
  elif(close_piddle < lolimit and close_piddle < hilimit):
@@ -61,39 +29,5 @@
61
29
 
62
30
  else:
63
31
  GLB_indicator['SMA_M'] = hilimit
64
-
65
- ## SMA_S を求める
66
- GLB_indicator['SMA_S'] = ta.SMA(close_piddle, timeperiod=GLB_STconfig['TERM_S'])
67
-
68
- ## debug
69
- logger.debug('Indicator OHLCV=' + str(candles[-1]))
70
- logger.debug('Indicator SMA_S=' + str(GLB_indicator['SMA_S'][-6:]))
71
- logger.debug('Indicator SMA_M=' + str(GLB_indicator['SMA_M']))
72
-
73
- GLB_order_signal = OrderSignal.NONE
74
-
75
-
76
32
  コード
77
- ```
33
+ ``````
78
-
79
-
80
- ### 試したこと
81
- 翻訳: ValueError:複数の要素を持つ配列の真理値はあいまいです。 a.any()またはa.all()を使用して、
82
-
83
- ここに問題に対して試したことを記載してください。
84
- 翻訳してみましたが、初心者なのでよくわかりません。
85
- ### 補足情報(FW/ツールのバージョンなど)
86
- cloud9 TA-lib
87
- ここにより詳細な情報を記載してください。
88
- if関数の部分がエラーとなりました。
89
- ``` if (close_piddle > hilimit and close_piddle > lolimit):
90
- GLB_indicator['SMA_M'] = hilimit
91
-
92
- elif(close_piddle < lolimit and close_piddle < hilimit):
93
- GLB_indicator['SMA_M'] = lolimit
94
-
95
- else:
96
- GLB_indicator['SMA_M'] = hilimit
97
-
98
- コード
99
- ```

2

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

2018/09/09 16:08

投稿

PS4pro4Khdr
PS4pro4Khdr

スコア10

title CHANGED
File without changes
body CHANGED
@@ -23,7 +23,37 @@
23
23
 
24
24
 
25
25
  ### 該当のソースコード
26
+ ```def calcIndicator():
27
+ global GLB_indicator
28
+ global GLB_order_signal
29
+
30
+
31
+ ## テクニカル分析変数の準備
32
+ candles = getCandles(GLB_config['candleTimeFrame'])
33
+ high_piddle = np.array([ohlcv[H] for ohlcv in candles], dtype='f8')
34
+ low_piddle = np.array([ohlcv[L] for ohlcv in candles], dtype='f8')
35
+ close_piddle = np.array([ohlcv[C] for ohlcv in candles], dtype='f8')
36
+ volume_piddle = np.array([ohlcv[V] for ohlcv in candles], dtype='f8')
37
+
38
+
39
+ ##ATRを求める
40
+ GLB_indicator['ATR'] = ta.ATR(high_piddle, low_piddle, close_piddle)
41
+
42
+ ##highestを求める
43
+ price_highest = ta.MAX(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
44
+
45
+ ##lowestを求める
46
+ price_lowest = ta.MIN(close_piddle, timeperiod=GLB_STconfig['TERM_EST'])
47
+
48
+ ##hilimtを求める
49
+ hilimit = price_highest[-1]-(GLB_indicator['ATR'][-1]*3)
50
+
51
+ ##lolimtを求める
52
+ lolimit = price_lowest[-1]+(GLB_indicator['ATR'][-1]*3)
53
+
54
+ ## SMA_M を求める
55
+
26
- ```if (close_piddle > hilimit and close_piddle > lolimit):
56
+ if (close_piddle > hilimit and close_piddle > lolimit):
27
57
  GLB_indicator['SMA_M'] = hilimit
28
58
 
29
59
  elif(close_piddle < lolimit and close_piddle < hilimit):
@@ -31,9 +61,22 @@
31
61
 
32
62
  else:
33
63
  GLB_indicator['SMA_M'] = hilimit
64
+
65
+ ## SMA_S を求める
66
+ GLB_indicator['SMA_S'] = ta.SMA(close_piddle, timeperiod=GLB_STconfig['TERM_S'])
67
+
68
+ ## debug
69
+ logger.debug('Indicator OHLCV=' + str(candles[-1]))
70
+ logger.debug('Indicator SMA_S=' + str(GLB_indicator['SMA_S'][-6:]))
71
+ logger.debug('Indicator SMA_M=' + str(GLB_indicator['SMA_M']))
34
72
 
73
+ GLB_order_signal = OrderSignal.NONE
35
74
 
36
75
 
76
+ コード
77
+ ```
78
+
79
+
37
80
  ### 試したこと
38
81
  翻訳: ValueError:複数の要素を持つ配列の真理値はあいまいです。 a.any()またはa.all()を使用して、
39
82
 
@@ -41,4 +84,16 @@
41
84
  翻訳してみましたが、初心者なのでよくわかりません。
42
85
  ### 補足情報(FW/ツールのバージョンなど)
43
86
  cloud9 TA-lib
44
- ここにより詳細な情報を記載してください。
87
+ ここにより詳細な情報を記載してください。
88
+ if関数の部分がエラーとなりました。
89
+ ``` if (close_piddle > hilimit and close_piddle > lolimit):
90
+ GLB_indicator['SMA_M'] = hilimit
91
+
92
+ elif(close_piddle < lolimit and close_piddle < hilimit):
93
+ GLB_indicator['SMA_M'] = lolimit
94
+
95
+ else:
96
+ GLB_indicator['SMA_M'] = hilimit
97
+
98
+ コード
99
+ ```

1

内容の修正をしました。

2018/09/09 16:01

投稿

PS4pro4Khdr
PS4pro4Khdr

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,17 +1,29 @@
1
1
  ### 前提・実現したいこと
2
+ 下記のPINEエディタをPythonに変換。
3
+ ```study(title="Trend Trader", overlay = true)
4
+ Length = input(21, minval=1),
5
+ Multiplier = input(3, minval=1)
6
+ avgTR = wma(atr(1), Length)
7
+ highestC = highest(Length)
8
+ lowestC = lowest(Length)
9
+ hiLimit = highestC[1]-(avgTR[1] * Multiplier)
10
+ loLimit = lowestC[1]+(avgTR[1] * Multiplier)
11
+ ret = iff(close > hiLimit and close > loLimit, hiLimit,
12
+ iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
13
+ plot(ret, color= blue , title="Trend Trader")
14
+ コード
15
+ ```
2
16
 
3
17
  ここに質問の内容を詳しく書いてください。
4
18
  (例)PHP(CakePHP)で●●なシステムを作っています。
5
19
  ■■な機能を実装中に以下のエラーメッセージが発生しました。
6
20
  cloud9のPython3でif関数のエラーが発生しました。
7
21
  ### 発生している問題・エラーメッセージ
8
- ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
22
+ ```ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
9
- ```
10
- エラーメッセージ
11
- ```
12
23
 
24
+
13
25
  ### 該当のソースコード
14
- if (close_piddle > hilimit and close_piddle > lolimit):
26
+ ```if (close_piddle > hilimit and close_piddle > lolimit):
15
27
  GLB_indicator['SMA_M'] = hilimit
16
28
 
17
29
  elif(close_piddle < lolimit and close_piddle < hilimit):
@@ -20,18 +32,6 @@
20
32
  else:
21
33
  GLB_indicator['SMA_M'] = hilimit
22
34
 
23
- ```ここに言語名を入力
24
- python3
25
- ソースコード
26
- ```
27
- if (close_piddle > hilimit and close_piddle > lolimit):
28
- GLB_indicator['SMA_M'] = hilimit
29
-
30
- elif(close_piddle < lolimit and close_piddle < hilimit):
31
- GLB_indicator['SMA_M'] = lolimit
32
-
33
- else:
34
- GLB_indicator['SMA_M'] = hilimit
35
35
 
36
36
 
37
37
  ### 試したこと
@@ -40,5 +40,5 @@
40
40
  ここに問題に対して試したことを記載してください。
41
41
  翻訳してみましたが、初心者なのでよくわかりません。
42
42
  ### 補足情報(FW/ツールのバージョンなど)
43
- cloud9
43
+ cloud9 TA-lib
44
44
  ここにより詳細な情報を記載してください。