人类对Codex的开发不足1%!
昨天刚拿到了API就花了一点时间做了一个挂单脚本
账户初始资产总额311.8u
跑了一晚刷了8k的交易量还挣了1.31u
这样的积分成本相当于是负的
主要得益于现在平台流动性嘎嘎好
去做这么一个脚本需要考虑的东西不少:
- 用什么策略?可以参考一下
@ZhanweiC 的策略
- 哪些任务可以并发,哪些动作必须串行?
读取可以并发,但提交订单、撤单最好串行,否则很容易出现刚下单又被另一个线程误删、误撤、重复挂单
- BUY 和 SELL 要不要拆线程?
BUY 需要扫市场和盘口,比较慢;SELL 需要盯账户持仓,响应要快。拆开后 SELL 不会被 BUY 全量扫描拖住
- 本地 state 怎么设计?
不能只靠 API open orders,因为交易所状态不是实时一致的。create order 成功后,open orders 可能几秒后才查得到。本地 state 需要承担短期去重、防重复提交、防误清理的作用
- 如何处理 eventual consistency?
刚创建的订单不能因为下一秒 open orders 查不到就认为失效。需要设置等待窗口,比如 30-60 秒,避免账户同步线程把新订单误清掉
- 订单价格怎么取?
Yes / No、Over / Under 这种反向 outcome 很容易算反。尤其 SELL 时,最好用当前持仓 outcome 的 bestAsk,而不是盲目拿 Yes 侧 orderbook 做 complement
- 份额精度怎么处理?
前端显示 17.86,不代表真实可卖就是 17.86。下单数量必须向下截断,不能四舍五入,否则会出现 insufficient shares
- API 异常怎么分类?
hash mismatch、余额不足、份额不足、远端断连、返回截断、订单同步延迟,处理方式都不一样。不能简单无限 retry
- dry-run 和 live 必须隔离
所有真实下单逻辑都要先 dry-run,看清楚 would-place / would-cancel,再打开 live
- 日志一定要可读
真跑起来以后,最重要的是快速知道:挂了什么、撤了什么、为什么跳过、为什么失败、是不是重复提交。
- 风控边界怎么写?
不市价卖出、不吃单、post-only、限制 BUY 范围、开赛前撤买单,这些都要变成代码里的硬约束
不是说有了AI随随便便就能做出一个可以长期稳定可交付的系统,一定要从工程的角度出发做好稳定性测试跟风控
感兴趣的朋友一起来交流~
@predictdotfun