Injective Trader
Injective Trader 是一个专业级框架,为在 Injective 区块链上开发和部署算法交易策略提供高性能、可靠的基础。它弥合了算法交易策略和区块链执行之间的差距,消除了技术障碍。该框架负责繁重的工作——实时数据流、订单执行、重连/恢复、交易批处理和分析。这使交易者可以专注于策略开发,而不是区块链的复杂性。 你可以使用它来导入现有策略或创建新策略:- 根据你的逻辑自动下单
- 24/7 监控市场并对价格变化做出反应
- 管理风险,具有内置限制和安全功能
- 同时处理多个市场
- 提供所有交易活动的详细日志
核心能力
简化的策略开发- 无需 SDK 专业知识——专注于交易逻辑
- 以最小的技术开销快速部署策略
- 事件驱动架构实现直观的策略实现
- 自动重连和恢复机制
- 执行前的交易验证
- 全面的错误处理和重试逻辑
- 智能交易批处理以降低成本
- 自动费用管理和优化
- 多账户支持以实现规模化
- 完整的仓位和盈亏跟踪
- 风险管理能力
- 详细的性能分析
Injective trader 交易具有真实价值的资产,因此安全性至关重要。请确保使用以下作为安全基线,并采取进一步措施保护你的资产。
- 永远不要分享私钥或将其提交到 Git。
- 将密钥存储在本地
.env文件中,并通过环境变量加载。 - 为了额外的安全性,考虑使用 AuthZ 授予交易权限而不暴露你的主账户。
快速入门(5 分钟)
1. 准备好你的 Injective 账户(并充值)
- 使用 Keplr 或
injectived在 Injective 上创建账户。 - 如果使用 Keplr,导出你的私钥用于
.env文件。- 提示:使用 AuthZ,你可以向交易账户授予有限权限以获得更好的安全性。
- 通过从另一个 Injective 地址发送或通过 bridge.injective.network 为你的账户充值 USDT。
- EVM 提示:你可以使用 TS SDK 派生你的
inj地址,并将 USDT 从以太坊桥接到 Injective,甚至无需设置 Injective 账户。
- EVM 提示:你可以使用 TS SDK 派生你的
2. 下载和设置
injective-trader 尚未与 injective-py v1.11 兼容。
3. 配置你的策略
编辑预先存在的config.yaml:
4. 设置你的私钥
不使用单个INJECTIVE_PRIVATE_KEY,而是在 .env 中使用机器人范围的环境变量(与框架默认值匹配):
5. 运行你的策略
IDE 设置
如果你使用 VS Code 或兼容的 IDE(如 Cursor),考虑添加以下配置以便于调试。.vscode/launch.json:
架构
系统架构图
核心设计模式
- 中介者模式:集中组件之间的通信,实现解耦架构,组件无需直接依赖即可交互。
- 组件模式:标准化所有系统组件的生命周期管理(初始化、运行、终止),确保一致的行为。
- 状态模式:通过明确定义的状态(空闲、运行、终止)管理组件生命周期,提供可预测的转换和错误处理。
- 任务管理模式:协调异步任务,具有自动监控和恢复功能,确保在事件驱动环境中可靠执行。
- 观察者模式:使策略能够通过专门的事件处理程序对特定更新事件做出反应,创建灵活的策略开发方法。
关键组件
交易所特定代理- Initializer:设置交易所连接、账户和市场
- ChainListener:流式传输实时区块链数据,具有自动重连功能
- MessageBroadcaster:处理交易创建和广播,具有重试逻辑
- Liquidator:监控并执行抵押不足仓位的清算
- MarketManager:处理市场数据并维护订单簿完整性
- AccountManager:跟踪余额、仓位和订单状态
- StrategyManager:将市场事件路由到适当的策略实现
- RiskManager:执行仓位限制和风险控制
- TaskManager:编排和监控异步任务执行
- Market:表示具有订单簿和元数据的交易对
- Account:管理账户余额、存款和子账户
- Positions:跟踪衍生品仓位及盈亏计算
- Order:订单状态跟踪及执行历史
- Oracle Prices:带时间戳跟踪的实时价格馈送
- Strategy Base:实现自定义策略的模板
- Update Handlers:市场数据事件的特定事件处理器
- Performance Metrics:统计和盈亏跟踪
- Risk Models:可定制的风险管理规则
