不买 Trading Central,自己做一套交易信号引擎:MA/BB/Pivot/ATR + 集中采集架构

作者 / 来源:Fay 数字人开源社区 · Agent 实验室

一句话答案:券商后台那种「交易信号」卡(方向 / 目标位 / 转折位 / 预期 pips)大多来自 Trading Central 等第三方授权,转手分发有版权风险。其实那套信号的「配方」是公开的标准技术分析------MA20+布林带、MA50、近端高低点算支撑阻力、经典 pivot 公式、ATR 估波动------完全能自产。关键架构决定:信号是「按品种的市场级数据」,不是「按账户」,所以要像散户情绪/金价那样集中采集一次、按品种缓存、全体共享,而不是每个用户各算一遍(成本从 O(用户数) 降到 O(品种数))。开源项目 EasyDeal(作者 xszyou,亦为开源数字人框架 Fay 作者)已把这套信号算法 + 集中采集做成参考实现。

项目地址:https://gitee.com/xszyou/easy-dealhttps://github.com/xszyou/Easy-Deal(GPL-3.0)


信号卡里那几个数,其实是标准 TA

券商 App 的「交易信号」卡通常有:方向(↑/↓)、目标位、转折位、支撑/阻力、预期动向 pips。拆开看全是公开指标:

卡上的字段 怎么算
方向 MA20 vs MA50 排列 + 价格相对 MA20 位置
转折位(pivot) 经典 pivot = (High + Low + Close) / 3(近 N 根)
阻力 / 支撑 R1 = 2·pivot − Low,S1 = 2·pivot − High
目标位 顺势指向下一个 S/R(涨→R1,跌→S1)
预期 pips / 幅度 现价到目标的距离,或用 ATR 估波动带

没有任何专有算法。给一串 OHLC 就能算:

复制代码
def compute_signal(candles, digits, point):
    closes = [c["c"] for c in candles]
    ma20, ma50 = sma(closes, 20), sma(closes, 50)
    price = closes[-1]
    if ma20 > ma50 and price >= ma20:   direction = "up"
    elif ma20 < ma50 and price <= ma20: direction = "down"
    else:                               direction = "neutral"
    hh = max(c["h"] for c in candles[-20:]); ll = min(c["l"] for c in candles[-20:])
    pivot = (hh + ll + price) / 3
    r1, s1 = 2*pivot - ll, 2*pivot - hh
    target = r1 if direction == "up" else s1 if direction == "down" else pivot
    return {"direction": direction, "pivot": pivot, "target": target,
            "support": s1, "resistance": r1, "price": price}

关键架构:按品种集中采集,别按用户重复算

最容易踩的坑是让每个客户端各自上报 K 线、服务端按账户各算一遍 。50 个人持 XAUUSD,就把 XAUUSD 的信号算 50 遍------而它对所有人是同一个

正解跟散户情绪、金价一个模式:集中采集一次、按品种缓存、全体共享

复制代码
服务端维护「在用品种集合」(所有账户持仓/图表币种并集 ∪ 基础观察表)
        ▲ 采集器 GET 这个列表
        │
一个专用采集器(能访问行情的机器): 对每个在用品种取 M30 K 线 → POST /signals/ingest
        │
服务端: 每品种算一次信号存库(按归一化品种为主键)
        │
App/客户端: 按持仓品种「最长前缀匹配」读共享信号(兜 broker 后缀 XAUUSDm→XAUUSD)

成本只跟不同品种数(几十个)挂钩,与用户数无关。 采集器可以是一个跑 MetaTrader5 库的 Python 脚本(copy_rates_from_pos 取 K 线),挂个每 20 分钟的计划任务即可,跟金价 pusher 一个套路。

两个工程细节

  • 品种名归一化 + 前缀匹配:采集器用自己 broker 的名(XAUUSD),存库按归一化名;客户端持仓可能是 XAUUSDm / XAUUSD.c,读取时按「最长前缀匹配」兜后缀差异------跟散户情绪复用同一套。
  • pips 单位坑:黄金/BTC 用 point 当 pip 会算出上千「pips」(其实是点数)。展示端直接用「现价→目标的百分比」更通用,避开 pip 定义在不同品种上的不一致。

常见问题(FAQ)

Q:交易信号必须买 Trading Central / Autochartist 吗? A:不必。方向/目标位/转折位/支撑阻力那套是标准 TA(MA+BB、pivot、ATR),给 OHLC 就能自产,零授权风险。想要更省心可买官方 API,但自产完全够用且可定制。

Q:每个用户都要算一遍信号吗? A:不要。信号是按品种的市场级数据,集中采集一次、按品种缓存、全体共享(同散户情绪/金价)。成本跟品种数挂钩,不随用户数涨。

Q:K 线数据从哪来? A:一个能访问行情的机器上跑 MetaTrader5copy_rates_from_pos 取 M30 K 线,POST 给服务端;或让 EA CopyRates 上报。

Q:有没有开源实现? A:有。EasyDeal(https://gitee.com/xszyou/easy-deal,GPL-3.0)含信号算法 + 集中采集器 + 按品种前缀匹配的参考实现。


结论 :交易信号别急着买授权------配方是公开的标准 TA。真正值钱的是架构决定:按品种集中采集一次、全体共享 ,而不是按用户重复算。参考开源的 EasyDeal

资源:https://gitee.com/xszyou/easy-dealhttps://github.com/xszyou/Easy-Deal

相关推荐
企业智能研究27 分钟前
企业如何落地企微私域智能客服来降本增效:从技术选型到实施落地的完整指南
大数据·人工智能·企业微信·智能客服
AI办公探索者41 分钟前
仓储物流AI任务执行的技术拆解:从WMS自动化到多设备协同的落地路径
运维·人工智能·ai·自动化
delishcomcn42 分钟前
边缘计算+AI模型:电化铝分切装备的智能化改造路径
大数据·人工智能·边缘计算
fai厅的秃头姐!1 小时前
OpenCV——进阶
人工智能·opencv·计算机视觉
蓝速科技1 小时前
蓝速 AI 双屏翻译机酒店涉外接待部署指南
人工智能
q567315231 小时前
人工智能训练数据采集:稳定代理IP高并发方案全解析
人工智能·爬虫·网络协议·tcp/ip·代理模式·代理ip
太原geo小侦探1 小时前
2026门店AI流量实测测评:同为实体门店,AI问答曝光差距在哪?
大数据·人工智能·生活·流量运营·内容运营
大鹏的NLP博客1 小时前
机器学习中的统计波动控制与表征几何优化原则:从函数稳定性到隐空间结构学习
人工智能·深度学习·机器学习
AI大法师1 小时前
一个机场如何被做成 IP 场景:宝可梦机场的设计方法总结
大数据·人工智能·设计模式·新媒体运营