返回顶部
o

orderly-trading-orders有序交易订单

Place, manage, and cancel orders using REST API or SDK hooks. Covers market, limit, IOC, FOK, POST_ONLY order types and batch operations

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
256
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

orderly-trading-orders

Orderly Network: 交易订单

本技能涵盖Orderly Network上订单管理的所有方面——通过REST API和React SDK进行下单、修改和取消订单。

使用场景

  • - 构建交易界面
  • 实现下单逻辑
  • 管理订单生命周期
  • 创建自动化交易机器人

前置条件

  • - 已注册Orderly账户
  • 具有trading权限的Ed25519 API密钥
  • 账户中有足够的抵押品

订单类型

类型描述使用场景
LIMIT指定价格下单精确入场/出场
MARKET
以最佳可用价格执行 | 立即执行 | | IOC | 立即成交或取消 | 可接受部分成交 | | FOK | 全部成交或取消 | 全有或全无 | | POST_ONLY | 仅做市商订单 | 赚取做市商返佣 | | ASK | 保证最佳卖价 | 快速卖出 | | BID | 保证最佳买价 | 快速买入 |

REST API:下单

端点

POST /v1/order

请求体

typescript
interface OrderRequest {
symbol: string; // 例如:PERPETHUSDC
side: BUY | SELL;
ordertype: LIMIT | MARKET | IOC | FOK | POSTONLY | ASK | BID;
order_price?: number; // LIMIT订单必填
order_quantity: number; // 基础资产数量
visible_quantity?: number; // 用于隐藏订单(0 = 隐藏)
clientorderid?: string; // 您的自定义ID
trigger_price?: string; // 用于止损订单
}

示例

typescript
import { signAsync } from @noble/ed25519;

async function placeOrder(order: OrderRequest) {
const timestamp = Date.now();
const body = JSON.stringify(order);
const message = ${timestamp}POST/v1/order${body};

const signature = await signAsync(new TextEncoder().encode(message), privateKey);

// 编码为base64url(浏览器和Node.js兼容)
const base64 = btoa(String.fromCharCode(...signature));
const base64url = base64.replace(/\+/g, -).replace(/\//g, _).replace(/=+$/, );

const response = await fetch(https://api.orderly.org/v1/order, {
method: POST,
headers: {
Content-Type: application/json,
orderly-timestamp: String(timestamp),
orderly-account-id: accountId,
orderly-key: ed25519:${publicKeyBase58},
orderly-signature: base64url,
},
body,
});

return response.json();
}

// 下限价买单
const order = await placeOrder({
symbol: PERPETHUSDC,
side: BUY,
order_type: LIMIT,
order_price: 3000,
order_quantity: 0.1,
});

React SDK:useOrderEntry

SDK提供了一个便捷的订单录入钩子:

typescript
import { useOrderEntry, OrderSide, OrderType } from @orderly.network/hooks;

function OrderForm({ symbol }: { symbol: string }) {
const {
submit,
setValue,
getValue,
helper,
reset,
isSubmitting
} = useOrderEntry(symbol, {
initialOrder: {
side: OrderSide.BUY,
order_type: OrderType.LIMIT,
price: ,
order_quantity: ,
},
});

const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();

// 提交前验证
const validationResult = await helper.validate();
if (!validationResult) {
console.error(验证失败);
return;
}

try {
await submit();
reset();
console.log(订单成功提交);
} catch (error) {
console.error(订单失败:, error);
}
};

return (


onChange={(e) => setValue(side, e.target.value as OrderSide)}
value={getValue(side)}
>


onChange={(e) => setValue(order_type, e.target.value as OrderType)}
value={getValue(order_type)}
>


type=text
placeholder=价格
value={getValue(price) || }
onChange={(e) => setValue(price, e.target.value)}
/>

type=text
placeholder=数量
value={getValue(order_quantity) || }
onChange={(e) => setValue(order_quantity, e.target.value)}
/>



);
}

订单验证

在提交前,验证订单参数:

typescript
// 获取某个交易对的订单规则
const rulesResponse = await fetch(https://api.orderly.org/v1/public/info/PERPETHUSDC);
const rules = await rulesResponse.json();

/*
规则包括:

  • - basemin:最小订单数量
  • basemax:最大订单数量
  • basetick:数量增量
  • quotemin:最低价格
  • quotemax:最高价格
  • quotetick:价格增量
  • min_notional:最小订单价值

*/

function validateOrder(order: OrderRequest, rules: OrderRules): boolean {
// 价格过滤
if (order.order_price) {
const price = parseFloat(order.order_price);
if (price < rules.quotemin || price > rules.quotemax) {
throw new Error(价格超出范围);
}
if ((price - rules.quotemin) % rules.quotetick !== 0) {
throw new Error(无效的价格增量);
}
}

// 数量过滤
const quantity = parseFloat(order.order_quantity);
if (quantity < rules.basemin || quantity > rules.basemax) {
throw new Error(数量超出范围);
}
if ((quantity - rules.basemin) % rules.basetick !== 0) {
throw new Error(无效的数量增量);
}

// 最小名义价值
const notional = (parseFloat(order.order_price) || 0) * quantity;
if (notional < rules.min_notional) {
throw new Error(最小订单价值为 ${rules.min_notional});
}

return true;
}

取消订单

取消单个订单

typescript
// REST API
DELETE /v1/order?orderid={orderid}&symbol={symbol}

// React SDK
import { useOrderStream } from @orderly.network/hooks;

function OrderList() {
const [orders, { cancelOrder }] = useOrderStream({
status: OrderStatus.INCOMPLETE,
});

return orders.map((order) => (


{order.symbol} - {order.side} - {order.order_qty}


));
}

取消所有订单

typescript
// REST API - 取消所有未成交订单
DELETE /v1/orders?symbol={symbol} // 可选交易对过滤

// React SDK
const [orders, { cancelAllOrders }] = useOrderStream();

await cancelAllOrders(); // 取消所有
await cancelAllOrders({ symbol: PERPETHUSDC }); // 取消特定交易对

按客户端订单ID取消

typescript
DELETE /v1/client/order?clientorderid={clientorderid}&symbol={symbol}

批量订单

在单个请求中下多个订单或取消多个订单:

typescript
// 批量创建(最多10个订单)
POST /v1/batch-order
Body: {
orders: [
{ symbol: PERPETHUSDC, side: BUY, ordertype: LIMIT, orderprice: 3000, order_quantity: 0.1 },
{ symbol: PERPBTCUSDC, side: BUY, ordertype: LIMIT, orderprice: 50000, order_quantity: 0.01 }
]
}

// 批量取消(最多10

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 orderly-trading-orders-1776193090 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 orderly-trading-orders-1776193090 技能

通过命令行安装

skillhub install orderly-trading-orders-1776193090

下载

⬇ 下载 orderly-trading-orders v1.0.0(免费)

文件大小: 4.39 KB | 发布时间: 2026-4-15 11:45

v1.0.0 最新 2026-4-15 11:45
Initial release of Orderly Trading Orders skill.

- Place, manage, and cancel orders via REST API or SDK hooks.
- Supports multiple order types: market, limit, IOC, FOK, POST_ONLY, ASK, BID.
- Batch creation and batch cancellation of orders.
- Includes order parameter validation and lifecycle management.
- SDK examples provided for React, covering order entry and order stream management.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部