不买 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

相关推荐
想会飞的蒲公英1 小时前
一个 PyTorch 模型训练的完整流程
人工智能·pytorch·python
Lucky_luckyZzz1 小时前
销售会话分析设备选型:成熟方案实测红榜与避坑指南
人工智能
c_lb72881 小时前
最新AI量化练习,小策略更适合练流程感
人工智能·python
腾讯云大数据1 小时前
腾讯云TBDS面向AI时代的多模态智算平台,助力企业AI转型
人工智能·云计算·腾讯云·tbds
金智维科技官方1 小时前
AI驱动的应付账款自动化,落地时要拆解哪些流程?
运维·人工智能·自动化
蓝速科技2 小时前
蓝速科技 AI 数字人渲染显卡选型与部署指南
人工智能·科技
电化学仪器白超2 小时前
低阻域 ADC 与参考源选型理论分析
人工智能·python·单片机·嵌入式硬件·自动化
AI科技星2 小时前
超复数全域经济周期场与信息谱场——金融与密码学底层理论重构《0·1·∞三元一体全域超复数统一场论》系列全集(六一字不漏完整合订终版)
人工智能·算法·金融·密码学·拓扑学·乖乖数学·全域数学
香蕉鼠片2 小时前
机器学习经典任务
深度学习·ai