【从0搭Bot · 第3讲】给 bot 装方向感:EMA50 硬闸门
·
【从0搭Bot · 第3讲】给 bot 装方向感:EMA50 硬闸门
标签:连载 / 从0搭Bot / 第3讲 / EMA / 趋势过滤
本期目标
这一讲结束,你能理解 EMA50 方向闸门:为什么它只判断方向、不做预测,以及怎么把它接进突破策略。
前置准备
第2讲已能拉 K 线;会用 Python 列表切片(closes[-1]、closes[-50:])。
步骤1:EMA50 是什么
指数移动平均线,越近的价格权重越大,比普通均线更跟手。你的 bot 用 50 周期,也就是把最近 50 根 5m K 线揉成一条趋势线。
def calculate_ema(closes, period=50):
multiplier = 2 / (period + 1)
ema = sum(closes[:period]) / period # 前50根先算简单均值做种子
for price in closes[period:]:
ema = (price - ema) * multiplier + ema
return round(ema, 4)
步骤2:方向闸门:顺趋势才给分
价格在 EMA50 上方 = 多头市场,多单打分;在下方 = 空头市场,空单打分。方向不符直接 0 分——这就是「硬闸门」:逆势信号进不来。
uptrend = current_price > ema # 多头市场
downtrend = current_price < ema # 空头市场
# 多单的 EMA 方向分(满分15):
s_ema = 15.0 if uptrend else (7.5 if abs(close-ema)/ema < 0.001 else 0.0)
步骤3:为什么是闸门,不是金叉死叉
不做金叉/死叉这种滞后信号,只用 EMA 判断大方向;进场仍然看「突破 + 量能」。方向错了,再漂亮的突破也不碰——这就是闸门的价值。
# 常见误区:金叉追多(滞后)
# 正确姿势:价格在EMA上方 + 突破阻力 + 量比放大 才做多
验证
在 bot 日志里找到含「EMA50」的信号行;对照图表:多头时 bot 只出多单,空头时只出空单,没有逆势单。
小结
EMA50 是方向盘:上方只做多、下方只做空;它过滤的是「逆势单」,不是预测涨跌。
下期预告
第4讲:ADX 过滤——怎么识别横盘死市,别在震荡里送钱
完整代码:https://github.com/a380467214-art/AiBot
真实 bot 开发日常连载,demo 盘实测后才发,代码可复制。每日复盘 / 踩坑日记 / 从0搭Bot 连载 / 行业观察持续更新。
#量化bot日常 #从0搭Bot
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)