jev-trader 核心交易循环:trader.ts 如何管理持仓、盈亏与 1000 条历史事件
jev-trader 核心交易循环trader.ts 如何管理持仓、盈亏与 1000 条历史事件【免费下载链接】jev-traderOne AI trade decision every Monad block. Jev on Kuru MON-USDC.项目地址: https://gitcode.com/gh_mirrors/je/jev-traderjev-trader 是一个跑在 Monad 链上的 AI 交易机器人src/trader.ts 里的Trader类构成它的核心交易循环每个约 300 ms 的区块读一次 Kuru MON-USDC 订单簿、让模型给出买或卖、下一单 post-only 限价单并全程管理持仓、实时盈亏PL与最近 1000 条区块事件。一个区块 一次完整决策整个循环的入口是 onBlock()由区块推送触发每 300 ms 执行一轮确认上一批订单回执confirmPending走热路径之外不拖慢本区块读订单簿一次eth_call拿到最新盘口模型决策把压缩后的市场状态交给 Jev 模型或默认的mock动量模型约 100 ms 内返回 buy / sell 及概率下单在指定一侧、最优价内 1 个 tick 挂 post-only 限价单同时撤销上一块留下的旧单广播事件把本块完整状态推给 src/server.ts 的 SSE 仪表盘。 关键约束是busy标志同一时刻只允许一个区块在跑。如果模型上一块还没跑完新块会被标记为late决策记为hold见 src/trader.ts#L89-L93保证一个区块内完成决策 下单的节奏不被破坏。持仓管理有符号库存 仓位上限持仓用一个极简结构表示position { mon, costUsd }即有符号的 MON 库存和它的成本基础src/trader.ts#L67。正数多头、负数空头、零为平仓。每笔成交fill触发 applyFill() 更新库存加仓同向买入直接累加成本减仓先按平均入场价costUsd / mon计算已实现盈亏累加进totals.realizedUsd翻仓剩余部分按新价格反向开仓。除了持仓本身循环还要防超仓。allowed() 检查拟挂订单加上该侧所有已挂单后总敞口是否超过MAX_POSITION_MON默认 1000 MON见 src/config.ts#L15实盘模式下还要检查 Kuru 保证金余额是否够。 如果模型想的一侧被限系统会自动翻到另一侧下单并打上capped: true概率分布仍如实展示模型的真实判断。盈亏会计未实现 已实现 − Gas每个区块广播前emit() 会重算一组账本字段指标计算方式未实现盈亏库存 ×当前中间价 − 平均入场价已实现盈亏每次减仓/翻仓时累加Gas 成本Monad 按 gas limit 收费所以发出即计成本revert 也不豁免总盈亏pnlUsd已实现 未实现 − GasUSD收益率pnlPct总盈亏 / 本金默认 $100× 100 注意 gas 的计费逻辑pnlPct把 AI 推理成本jevUsd和链上 Gas 都摊了进去让仪表盘上的盈亏不美化、不隐藏这正是 jev-trader 产品规格SPEC.md里诚实展示原则的体现。1000 条历史事件滚动窗口 落盘 补写history数组就是核心交易循环的记忆滚动窗口每块push一条BlockEvent超过 config.historySize1000就从头部shift掉正好覆盖最近约 5 分钟1000 × 300 ms与仪表盘的价格图窗口一致同步落盘每条事件同时以 JSONL 追加写入data/events.jsonlsrc/trader.ts#L291用于回放与审计事后补写区块事件先按意图广播status: sent。1~2 个区块后回执到达时applyQuoteResult() 会回溯找到 history 里对应那条事件并原地更新quote字段为placed/reverted成交日志到达时同理补上fillharvest()。这样/history接口最近 1000 条与 SSE 流README.md 的 Endpoints 一节始终共享同一份权威数据新连接的客户拿到snapshot后可无缝衔接实时流。小结trader.ts 用不到 300 行代码把读盘口 → AI 决策 → 下单 → 持仓记账 → 盈亏核算 → 事件归档串成一个 300 ms 一拍的热循环busy锁保证节奏、有符号库存 成本基础让持仓与已实现盈亏干净可算、1000 条滚动历史兼顾仪表盘实时性与事后审计。想动手研究的话从 src/ 目录配合 README.md 的 Layout 一节入手即可src/chain.ts 供区块、src/book.ts 读盘口、src/market.ts 下单、src/model.ts 出决策。【免费下载链接】jev-traderOne AI trade decision every Monad block. Jev on Kuru MON-USDC.项目地址: https://gitcode.com/gh_mirrors/je/jev-trader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →