You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas中基于CLOSE、EMA50列计算上穿信号SIGNAL列

实现方法

上穿信号的判断只需要同时匹配两个条件:

  • 当前行CLOSE > 当前行EMA50
  • 前一行CLOSE < 前一行EMA50

借助pandas的shift()方法可以直接取前一行的列值,组合判断即可,完整代码如下:

# 计算当前行CLOSE是否在EMA50上方
current_above = source_data['CLOSE'] > source_data['EMA50']
# 计算前一行CLOSE是否在EMA50下方,shift(1)表示取上一行数据
prev_below = source_data['CLOSE'].shift(1) < source_data['EMA50'].shift(1)
# 两个条件同时满足时SIGNAL为1,其余为0
source_data['SIGNAL'] = (current_above & prev_below).astype(int)

如果需要将非信号位置设为空值而非0,可以调整赋值逻辑:

source_data['SIGNAL'] = pd.NA
source_data.loc[current_above & prev_below, 'SIGNAL'] = 1

内容的提问来源于stack exchange,提问作者Lapoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:27:00