跳转到主要内容

策略开发指南

配置指南

Injective Trader 使用 YAML 配置文件来定义行为、组件和策略参数。 需要关注的最重要配置部分是:
  • LogLevel
  • Components 部分下 Initializer 中的 NetworkMarketTickers
  • Strategies 部分
以下是配置结构的详细分解:

顶级参数

Components 部分

Components 部分配置框架组件:
注意:大多数用户只需要关注 Network 并在 MarketTickers 中包含他们想要监听的所有市场。 他们不需要修改这些高级组件设置。默认值适用于大多数用例。

Strategies 部分

Strategies 部分定义每个交易策略:
必需的策略参数:
  • Class:必须与你的 Python 类名完全匹配
  • MarketIds:此策略要交易的市场 ID 列表(使用十六进制格式)
  • AccountAddresses:此策略要使用的交易账户列表
  • TradingAccount:用于订单执行的账户(必须在 AccountAddresses 中)
推荐参数:
  • CIDPrefix:客户端订单 ID 前缀(帮助识别你的订单)
  • Name:用于日志和监控的人类可读名称
自定义参数:
  • 你可以添加策略需要的任何自定义参数
  • 策略名称下的所有参数都将在 self.config 中可用
  • 将相关参数分组在 Parameters 部分下以保持清晰

交易模式配置

框架支持两种交易模式:

直接执行模式

授权 (Authz) 模式

注意:你必须指定 TradingAccount 用于直接执行,或者指定 GranterGrantees 用于授权模式。 框架在初始化期间强制执行此要求。

策略开发指南

Injective Trader 中的策略遵循基于 Strategy 基类的一致结构。本节解释如何构建有效的策略。

策略类结构

你的策略类继承自基础 Strategy 类:

最佳实践

  1. on_initialize 中初始化所有参数
    • self.config 获取参数
    • 为缺失的参数设置默认值
    • 初始化内部状态变量
  2. 过滤更新类型
    • 只处理你的策略关心的更新类型
    • 始终检查 processed_data 中的必需字段
  3. 验证市场数据
    • 在使用前检查 bid/ask 是否存在
    • 在基于仓位做出决策之前验证仓位是否存在
  4. 遵守市场约束
    • 将价格和数量四舍五入到市场刻度大小
    • 检查最小订单大小和名义要求
  5. 正确处理交易账户
    • 确保交易账户在 AccountAddresses 中
    • 为订单指定正确的 subaccount_id
  6. 实现适当的日志记录
    • 记录策略决策和重要事件
    • 使用适当的日志级别(info、warning、error)
  7. 设置自定义参数
    • 使用 Parameters 部分存储策略特定值
    • 记录预期参数
本指南应该为你使用框架创建和配置有效的交易策略提供坚实的基础。

下一步

了解更多关于自定义处理程序和关键数据结构的信息。
最后修改于 2026年3月30日