爱意满满的作品展示区。
anyongjin

我用 Go 写了一个高性能量化交易机器人,开源了

  •  
  •   anyongjin ·
    anyongjin · Mar 4, 2025 · 7132 views
    This topic created in 612 days ago, the information mentioned may be changed or developed.

    作为常年混迹加密货币量化圈的牛马,踩过无数坑后终于打磨出 banbot 这个量化框架。今天给大家分享下这把好用的锤子!

    为什么要重复造轮子?

    市面上确实已经有不少量化交易框架,但在实际使用中我遇到了这些问题:

    1. 性能问题:很多框架在回测时速度很慢,特别是在处理 1 分钟级别的数据时。
    2. 策略实现繁琐:需要写很多模板代码,而且策略代码在回测和实盘时还需要修改。
    3. 超参数优化容易过拟合:很多框架缺乏有效的防过拟合机制。
    4. 实盘部署复杂:需要配置很多环境依赖,而且不同策略要开多个进程。

    banbot 的主要特点

    经过反复打磨,banbot 现在具备以下特点:

    1. 超高性能:得益于 Go 语言和优化的指标库,1 秒钟就能回测 1 年的数据(基于 5 分钟 K 线测试)。
    2. 一份代码多处运行:同一个策略代码,无需修改即可用于回测、模拟交易和实盘。再也不用担心回测和实盘表现不一致了。
    3. 事件驱动架构:完全基于事件驱动设计,杜绝未来函数,让策略逻辑更自由,回测结果更可靠。
    4. 内置防过拟合机制:提供了滚动优化回测功能,可以更真实地模拟策略在未来的表现。比如用最近 3 年数据,每次用 1 年数据优化参数,然后用优化后的参数对后 2 个月进行回测,如此滚动,最终得到不含未来信息的回测报告。
    5. 规模化部署:一个 2 核 2G 的小服务器就能同时运行数百个账户的策略。而且所有策略打包成单个可执行文件,部署超级方便。
    6. 完善的 WebUI:提供了美观的 Web 界面,可以在线编辑策略、执行回测、分析交易表现等。
    7. 支持 AI 和机器学习:支持通过 grpc 和 python 交互,可供模型训练和调用 AI 模型推理。

    技术实现上的一些思考

    1. 为什么选择 Go ?
      量化交易最常用的语言是 Python ,但在追求性能的同时又要保持开发效率,Go 是很好的选择。而且 Go 的交叉编译特性让部署变得极其简单。
    2. 数据存储方案
      采用了 TimeScaleDB 时序数据库存储 K 线数据,在存储空间和查询性能上取得了很好的平衡。只存储 1m 、5m 、15m 、1h 、1d 这些基础周期,其他周期都通过动态聚合生成。
    3. 回测性能优化
      通过支持状态缓存的指标库设计,大大提升了回测速度。同时采用事件驱动架构,让回测更接近实盘表现。

    示例量化策略

    [ github 策略仓库]

    banbot 提供了包括趋势、网格等社区公开策略,您可从上面示例策略仓库中查看并测试。(请勿直接用于实盘)

    使用建议

    1. 在实盘之前,一定要进行充分的回测和滚动优化测试。
    2. 建议先用小资金测试策略,确认策略表现符合预期后再加大资金量。
    3. 实盘时建议配置微信通知,及时了解策略运行状态。

    未来规划

    • 支持更多交易所(目前仅支持币安)
    • 添加更多经典策略
    • 支持更多社交 app 通知和控制

    项目完全开源,欢迎大家使用和贡献代码。如果对项目感兴趣,可以到 GitHub 查看更多细节。

    [官方文档]

    [ github 仓库]

    PS:我只分享锤子,请别问我的圣杯雕刻的咋样,圣杯还得看各位大佬

    更多深度交流从文档中扫码加微信进群

    17 replies  •  2025-06-01 10:36:52 +08:00
    ziyeziye
    ziyeziye
    Mar 4, 2025❤️1
    1
    666, star 了,学习一下
    Rabbit233
    Rabbit233
    Mar 4, 2025❤️1
    2
    太 6 啦,直接一手 start ,支持支持~
    qloog
    qloog
    Mar 4, 2025
    3
    厉害,已 star, 另外 关于子命令和帮助可以使用 github.com/spf13/cobra 可以极大的优化代码结构
    gy0624ww
    gy0624ww
    Mar 4, 2025❤️1
    4
    大佬 真厉害
    prosgtsr
    prosgtsr
    Mar 4, 2025 via iPhone❤️1
    5
    太神奇了
    gy0624ww
    gy0624ww
    Mar 4, 2025
    6
    大佬 这个除了虚拟货币 支持美股不
    anyongjin
    anyongjin
    OP
    Mar 4, 2025
    7
    @gy0624ww #6 目前只支持虚拟货币的币安交易所哈,欢迎更多人参与进来对接更多市场~
    anyongjin
    anyongjin
    OP
    Mar 4, 2025
    8
    @qloog 感谢,看着很不错,晚些详细研究下
    zjiajun
    zjiajun
    Mar 4, 2025
    9
    点赞了
    acerphoenix
    acerphoenix
    Mar 5, 2025
    10
    学习,star
    xsen
    xsen
    Mar 5, 2025
    11
    看着不错,详细研究下
    yesha
    yesha
    Mar 5, 2025
    12
    策略还要自己写吗?
    anyongjin
    anyongjin
    OP
    Mar 5, 2025
    13
    @yesha 策略是量化交易的核心,示例项目有经典的策略可以学习测试;不过可稳定盈利的实盘策略还是要花很多时间研究;我有组策略在实盘测试,感兴趣可以加文档中微信聊下
    ddoyou
    ddoyou
    Mar 6, 2025
    14
    有意思,什么时候支持一下 oke
    CareiOS
    CareiOS
    Mar 7, 2025
    15
    牛啊。
    anyongjin
    anyongjin
    OP
    Mar 7, 2025
    16
    @ddoyou 可以 issue 提需求哈,按优先级支持,社区一起完善
    FatSheep2020
    FatSheep2020
    Jun 1, 2025
    17
    谢谢楼主开源这套代码。
    我今天试着在 Archlinux 编译运行了一下,发现启动不了。
    我已经创建了一个新的 issue ,请楼主过目。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1032 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 23:07 · PVG 07:07 · LAX 15:07 · JFK 18:07
    ♥ Do have faith in what you're doing.