最近写了一个低频周期为主的自动交易机器人,
前面从tradingview接收交易信号,
后端渠道接了hyperliquid平台。
由于像OKX之类的交易所可以很方便的直接接第三方的交易机器人,当时为了练手,就选择了hyperliquid。
接入的API选择了hyperliquid的原生的python-sdk。
项目概述
Order7 是一个基于 TradingView 交易信号的自动下单交易机器人应用(Github地址已开源),主要用于加密货币合约交易。该项目使用 Python Django 框架开发,能够接收 TradingView 发送的交易信号,并在 Hyperliquid 交易平台上自动执行相应的交易操作。
核心业务功能
- 交易信号接收与处理
信号来源:通过 TradingView 的 Webhook 功能接收交易信号 信号验证:使用密钥验证信号的有效性,确保信号来源可信 信号过滤:实现基础的信号过滤策略,避免重复处理相同方向的信号 异步处理:使用异步队列处理有效信号,提高系统响应能力
- 交易执行 自动下单:根据交易信号自动在 Hyperliquid 平台下单 订单监控:实时监控订单状态,包括挂单、部分成交和完全成交状态 自动止损:开仓订单成交后,系统会自动根据配置的止损参数设置止损单(挂单开仓成交之后,系统自动下止损单) 超时撤单:对于超时未成交的订单,系统会自动撤单(默认挂单超时时间可以在Setting配置文件里自定义) 平仓管理:平仓订单会根据现有持仓数量进行平仓,不支持加仓操作(当前有持仓的情况下,优先平仓,暂不支持加仓的逻辑和策略)
- 风险控制 止损机制:开仓成功后自动设置止损单,保护资金安全 持仓限制:在已有持仓的情况下不允许加仓,避免过度风险 订单超时处理:对超时未成交的订单进行自动撤单处理 价格计算优化:止损价格计算基于实际成交价格而非委托价格,确保止损距离准确
- 订单状态查询优化
订单状态查询:使用 Hyperliquid API 的方法直接查询订单状态 订单详情获取:优化了订单详情获取逻辑,能够准确获取订单的成交价格、成交数量和手续费等信息 状态解析:针对 Hyperliquid API 返回的嵌套数据结构,实现了专门的解析逻辑
技术特点
异步处理架构:使用异步队列处理交易信号和数据库操作,提高系统响应能力 WebSocket 连接管理:实现了 WebSocket 连接管理器,用于实时获取市场数据和订单更新 重试机制:对网络请求实现了超时处理和重试机制,提高系统稳定性 动态监控间隔:订单监控使用动态调整的检查间隔,接近超时时会更频繁地检查订单状态 数据缓存:实现了订单状态的缓存机制,减少重复查询,提高性能
适用场景
适合中长周期交易策略,推荐用于 5 分钟以上时间级别的交易 支持多种交易周期,包括 1 分钟、5 分钟、15 分钟、30 分钟、1 小时、4 小时、1 天等 目前仅支持 Hyperliquid 平台的合约交易,不支持现货交易(这一点是hyperliquid平台特有的特点,挺有意思的) 不适合高频交易场景(后面迭代的时候我看看是否用GO语言重构它)
项目限制
目前仅支持 Hyperliquid 交易平台 仅支持合约交易,不支持现货交易 不支持加仓策略,仅支持全仓位开平操作 暂无止盈功能,仅实现了止损功能 不适合高频交易场景
总结
Order7 是一个专注于加密货币合约交易的自动化交易系统,通过接收 TradingView 信号实现自动下单、监控和风险管理。该系统特别注重订单状态的准确获取和止损单的管理,适合中长期交易策略。项目使用 Python Django 框架开发,采用异步处理架构,具有良好的可扩展性和稳定性。