回答編集履歴

1

予めsmaを演算しておくように修正

2022/11/12 16:08

投稿

ujimushi_sradjp
ujimushi_sradjp

スコア2094

test CHANGED
@@ -5,12 +5,16 @@
5
5
  data_frame[1, :B_1] = NaN;
6
6
  data_frame[!, :B_2] = circshift(data_frame[!, :B], 2);
7
7
  data_frame[1:2, :B_2] .= NaN;
8
+ data_frame[!, :SMA] = (data_frame[!, :B_2] + data_frame[!, :B_1]) .* 0.5;
8
9
 
9
- function my_cond(b, b1, b2, c1)
10
+ function my_cond(b, c1, sma)
11
+ ifelse.(c1 .== "A",
10
- ifelse.(c1 .== "A", b .> 0.5 .&& (b1 + b2) ./ 2 .> 0.3,
12
+ b .> 0.5 .&& sma .> 0.3,
13
+ ifelse.(c1 .== "B",
11
- c1 .== "B" .&& b .> 0.3 .&& (b1 + b2) ./ 2 .> 0.1)
14
+ b .> 0.3 .&& sma .> 0.1,
15
+ false))
12
16
  end
13
17
 
14
- df_filterd = filter([:B, :B_1, :B_2, :C_1] => my_cond, data_frame)
18
+ df_filt_view = filter([:B, :C_1, :SMA] => my_cond, data_frame)
15
19
  ```
16
20