前提・実現したいこと
for文を使って値を取得したいのですがうまくいきません。
実現したいことは rを20回転して値を取得したあと、jに+1してから
またrを20回転し、それが終了したらjに+2してまたrを20回転する、
という処理をしたいです。
if文で条件を付けたりいろいろやったのですが、うまくいきませんでした。
アドバイスよろしくお願いします。(python初心者です)
該当のソースコード
python3
1ten_pips_result=[] 2counter_all = [] 3 4for j in range(10): 5 for r in range(20): 6 7 if df["close"][j+r] +0.01 < df["close"][j+(21-r)] : 8 kekka = 3 9 10 elif df["close"][j+r]-0.01 > df["close"][j+(21-r)] : 11 kekka = 4 12 13 else: 14 kekka = 5 15 16 ten_pips_result.append(kekka) 17 counter = Counter(ten_pips_result) 18counter_all.append(counter.most_common()[0][0])
### 現状のエラー
[5, 4, 4, 4, 4, 5, 5, 5, 3, 5, 5, 5, 5, 4, 5, 5, 5, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 4, 3, 5, 5, 5, 5, ・・・
といったような長い配列になってしまいます。
rはrange(20)なので20個づつ値を取りたいのですが、jのループ分もプラスされた数値を取得しているようです。
### 取得したい値
(ソースコードを少し変更しました。)
まずrを20回転させる。
↓
kekkaの値を20個取得。[5,5,5,4,3,5,4,4,5,5,5,5,3,5,5,5,4,5,3,4]
↓
kekkaの中で一番多い数値を取得。(ここでは5を取得)
↓
この処理をjの値を+1づつしながら繰り返したい。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー