NovaMarketLabs
文档 · API 参考

文档

REST API、SDK、程序化交易与 agent 集成参考。想快速上手请看首页的「按市场开发」。

NovaMarket Labs 能做什么

Labs 是 NovaMarket 的「研究 + 开发」一侧:设计策略、确定性回测、分享,再把跑得好的策略变成交易程序。Labs 不托管资金——实盘资金在主站。

策略库

浏览已发布/已验证的策略,附真实回测曲线;任意一条可 fork 进你的工作台。

开发工作台

用经典或 IDE(vibe)皮肤写 Python、沙箱确定性回测、读验证尾段指标、留版本历史,然后发布。

交易程序

把 Validated 策略变成程序(托管或自部署);从待接管池里选一个,实盘部署到主站。

社区

点赞、评论、关注作者、fork——作者身份去标识化。

回测引擎

确定性合成、真实 Hyperliquid 与链上 Uniswap(现货)历史、真实 Polymarket 事件、选股数据源;grid/随机 参数搜索、walk-forward 验证尾段、taker 手续费+滑点、逐笔成交明细。

AI 助手

流式答疑、优化/归因/生成、逐 hunk 内联 diff、⌘I ghost-text——每处 AI 改动都以 diff 呈现供确认。

开发模式

按你习惯的方式选界面——所有路径共用同一个回测引擎和同一套策略模型。

在线开发工作台

免安装——浏览器里写码与回测

  • 经典界面:表单 + 卡片,信息密度高
  • Vibe 界面:IDE 布局——文件树、大编辑器、⌘K 命令面板、终端控制台
  • 随时切换,记住你的偏好
  • 两套皮肤的 保存/回测/发布 完全一致

本地 SDK

你的编辑器,你的仓库

  • pip install nova-strategy-sdk
  • 与工作台同一套 StrategyBase 接口
  • 离线回测迭代;开源(MIT)

REST API + agents

程序化读取池子与参数

  • 匿名 GET、JSON、RFC 7807 错误格式
  • OpenAPI 3.1 + llms.txt + agents.json 发现
  • 操盘手可鉴权下单

交易程序

从策略到实盘执行

  • 托管:平台跑你的策略核心
  • 自部署:下载启动包自己跑;订单排队到平台 executor
  • 实盘部署(铸操作员、绑池、入金)在主站完成

AI 助手 · 用例

工作台助手共享你当前的代码、最近一次回测指标与 lint 报错。四种模式,同一上下文:

🤖 对话随便问

什么时候用

卡在 SDK、某个指标,或某笔单为什么没成交

例子

「怎么给这个策略加一个基于 ATR 的止损?」——流式回答,已经看得到你的代码。

✨ 建议优化

什么时候用

回测能跑但 Sharpe 偏弱、回撤偏深

例子

返回一段小结 + 具体建议 + 修改后代码,你在 diff 里确认,再「应用并回测」一步完成。

📊 归因解读回测

什么时候用

有了结果,想知道是什么在驱动它

例子

结构化解读:结论、驱动因子、风险(如样本内 vs 验证尾段过拟合)、下一步。

🛠 生成想法 → 骨架

什么时候用

想法在脑子里,代码还没写

例子

「ETH 均值回归,用 20 根 K 的 z-score,低于 -2 做多、回到 0 平仓。」→ 一个过了 lint 的 StrategyBase 草稿,你在 diff 里确认。

AI 从不静默改你的代码——生成或修改的代码永远以 diff 呈现,你确认后才落入编辑器。

NovaMarket Agent API

面向 AI agent 与开发者的公开只读 API:直接读取资金池、参数、余额与结算。全部 GET、匿名、JSON;金额为 USDC 基本单位(decimals: 6,大整数以字符串返回);错误用 RFC 7807。无写/交易操作。

只读 · 无鉴权 · CORS

机器可发现

端点

GET/api/v1/protocol平台元数据:品牌、链、合约、市场、发现链接
GET/api/v1/contracts已部署合约地址
GET/api/v1/markets支持的市场(HL/PM/UNI)与即将接入
GET/api/v1/health链可达性与配置状态
GET/api/v1/pools全部资金池:参数 + 实时余额
GET/api/v1/pools/{address}单个资金池详情
GET/api/v1/pools/{address}/settlements最近链上结算(尽力而为)

Base URL: https://novamarket.io/api/v1

curl

curl https://novamarket.io/api/v1/pools

JavaScript

const r = await fetch("https://novamarket.io/api/v1/pools");
const { items } = await r.json();
console.log(items[0].balances.investorNav); // USDC base units (string)

Python

import httpx
r = httpx.get("https://novamarket.io/api/v1/pools").json()
for p in r["items"]:
    print(p["strategy"]["label"], p["status"]["name"])

给 AI agent 的接入说明

  • 发现:抓取 /.well-known/agents.json 获取能力与 OpenAPI/llms 链接。
  • 上下文:读取 /llms.txt(精简)或 /llms-full.txt(含机制说明)。
  • 数据:/api/v1/pools 列池、/pools/{address} 取详情、/settlements 取结算。
  • 字段:bps 为万分比(1500=15%);status 0 募资中/1 待操盘手/2 运作中/3 熔断/4 已关闭;market 0 HL/1 PM/2 UNI。

出资/质押走链上签名交易;操盘手与程序操盘手可用 API 密钥程序化下单(见下方交易小节)。本页只读数据非投资建议。 机制

程序化交易(操盘手与程序)

任何池子的 operator——人类钱包或程序地址——都通过同一套认证 API 交易。先铸造 API 密钥(程序在程序控制台铸造),然后带 Bearer 头调用池子交易端点。

curl

# place an order (operator API key; queued to the executor)
curl -X POST https://novamarket.io/api/pools/0xPOOL/orders \
  -H "Authorization: Bearer nm_xxxxxxxx_..." \
  -H "Content-Type: application/json" \
  -d '{"symbol":"ETH","side":"BUY","size":0.5,"clientOrderId":"my-uuid-1"}'

# poll the result / live snapshots
curl -H "Authorization: Bearer nm_xxxxxxxx_..." \
  https://novamarket.io/api/pools/0xPOOL/positions

队列语义:POST /orders 返回 201 与一条 PENDING 订单——平台执行器在下个约 30 秒周期把它路由到场馆。201 表示已入队而非已成交;用 GET /orders/{id} 或 SSE /stream 查询结果。clientOrderId 让重试幂等。

认证:同一个 Authorization: Bearer 头既接受 API 密钥(nm_…)也接受 SIWE 会话 JWT(POST /api/auth/nonce → 签名 → POST /api/auth/verify 返回 token)。密钥只能从已登录会话铸造。

常见错误

  • 401 unauthenticated——密钥或会话缺失/无效
  • 403 not operator——调用方不是该池的链上 operator(或密钥未授权此池)
  • 409 conflict——池子非 Active 或无场馆凭证
  • 200——clientOrderId 重复:幂等去重,返回原订单
运营者程序化下单 → 申请 API key

策略接入 SDK

量化开发者写一个策略类即可在确定性回测与真实场馆上以同一份逻辑运行。策略的 name 就是资金池链上的 strategyType 文本——声明该名称发起/认领池子,即表示用此策略操盘。策略由开发者自定义,平台不预设。

SDK 源码 · README
$pip install nova-strategy-sdk
from strategy_sdk import StrategyBase, register, indicators as ind

@register("我的趋势")                 # 名称 = 链上 strategyType
class MyTrend(StrategyBase):
    params = {"fast": 10, "slow": 30, "size": 5.0}
    async def on_tick(self, ctx):     # 每 tick 调用
        sym = ctx.conn_symbol()
        hist = await ctx.history(sym, 31)
        f, s = ind.ema(hist, 10), ind.ema(hist, 30)
        if f and s:
            await ctx.target(sym, 5.0 if f > s else 0.0)   # 调到目标仓位

# 回测:  fp-strategy backtest 我的趋势 --seed 7 --steps 300

ctx 提供 price/history/position/equity 与 buy/sell/target/flatten(自带 max_position/max_order 风控);指标含 sma/ema/rsi/zscore/bollinger/atr。回测用内置确定性模拟(GBM 种子,可复现)或接 Hyperliquid 真实 K 线。

趋势fast / slow / size

EMA 快慢线交叉,趋势做多、否则离场

回测 240 步收益 8.78%Sharpe 1.65最大回撤 2.28%
均值回归window / k / size

z-score 偏离均值买入、回归离场

回测 240 步收益 3.73%Sharpe 1.72最大回撤 1.31%
做市ref_window / max_inventory / spread

围绕中间价的库存偏移,越便宜持仓越多

回测 240 步收益 3.00%Sharpe 1.91最大回撤 0.54%
网格grid_pct / levels / unit

区间等距网格,每跌一格加仓、每涨一格减仓

回测 240 步收益 1.62%Sharpe 1.64最大回撤 0.41%

回测曲线为确定性模拟行情下的示例(同一价格路径),仅供演示策略行为,不代表真实收益。