问答交流
评论
  • 大神们,为什么全部运行之后一直报错啊?我用的东西也不多呀…
  •  AND (CASE
  •             WHEN (m_lag(mean(close, 5), 1) < m_lag(mean(close, 20), 1))
  •                  AND (mean(close, 5) >= mean(close, 20)) THEN 1
  •             ELSE 0
  •         END = 1) 提示你漏了一个括号。
  • 就算补上了照样运行不了…这东西好难用啊…
  • SELECT
  •     date,
  •     instrument,
  •     close,
  •     volume,
  •     m_avg(close, 5) AS close_5,
  •     m_avg(close, 20) AS close_20,
  •     m_avg(volume, 5) AS vol_5,
  •     m_avg(volume, 10) AS vol_10,
  •     m_avg(volume, 20) AS vol_20,
  •     m_lag(m_avg(close, 5), 1) AS close_5_lag1,
  •     m_lag(m_avg(close, 20), 1) AS close_20_lag1,
  •     CASE
  •         WHEN (m_lag(m_avg(close, 5), 1) < m_lag(m_avg(close, 20), 1))
  •                 AND (m_avg(close, 5) >= m_avg(close, 20)) THEN 1
  •         ELSE 0
  •     END AS ma_cross_signal
  • FROM
  •     cn_stock_bar1d
  • WHERE
  •     volume > 0 AND close > 0
  •     AND date BETWEEN '2018-10-01' AND '2024-04-30'  -- 明确指定日期范围[1,2](@ref)
  • QUALIFY
  •     COLUMNS(*) IS NOT NULL
  •     -- 添加成交量过滤条件:成交量超过5日、10日、20日均量
  •     AND (volume >= m_avg(volume, 5))
  •     AND (volume >= m_avg(volume, 10))
  •     AND (volume >= m_avg(volume, 20))
  •     -- 只选择有买入信号的股票
  •     AND ma_cross_signal = 1
  • ORDER BY date, instrument
  • 可以试试这个
{link}