Я пытаюсь создать сигнал на покупку / продажу. Я пытаюсь назначить сигнал с помощью оператора case_when. Я создал несколько новых столбцов, используя tidyquant TQ_MUTATE на предыдущем шаге. При этом назначаются только сигналы «возможное повышение» и «возможное снижение».
Что я делаю не так?
df_with_decisions <- test%>% group_by (symbol)%>% mutate (
signal = case_when(
(EMA_9 > EMA_55) ~ "possible up",
(EMA_9 > EMA_55 && EVWMA_9 > EMA_55) ~ "watch upward",
(EMA_9 > EMA_55 && EMA_21 >= EMA_55 && EVWMA_9 > EMA_55) ~ "buy",
(EMA_9 > EMA_55 && EMA_21 >= EMA_55 && EVWMA_9 > EMA_55 && EVWMA_21 > EMA_55) ~ "strong_buy",
EMA_9 < EMA_55 ~ "possible down",
(EMA_9 < EMA_55 && EVWMA_9 < EMA_55) ~ "watch downward",
(EMA_9 < EMA_55 && EMA_21 <= EMA_55 && EVWMA_9 < EMA_55) ~ "sell",
(EMA_9 < EMA_55 && EMA_21 <= EMA_55 && EVWMA_9 < EMA_55 && EVWMA_21 < EMA_55) ~ "strong_sell",
),
previous_signal = lag(signal, 1),
decision = case_when(
signal == previous_signal ~ "hold",
TRUE ~ signal ) )