거래 함수인 Buy () 를 사용해서/Sell () 는 몇 가지 API를 알고 있어야 합니다.
[
ORDER_STATE_PENDING :未完成
ORDER_STATE_CLOSED :已关闭
ORDER_STATE_CANCELED :已取消
]
{
Id :交易单唯一标识
Price :下单价格
Amount :下单数量
DealAmount :成交数量
Status :订单状态, 参考常量里的订单状态
Type :订单类型, 参考常量里的订单类型
}
API 문서
Buy(Price, Amount) 下买单, Price为买单价格,Amount为数量, 返回一个订单ID
可以跟多余的参数做为附加消息显示到日志, 如exchange.Buy(1000,0.1, "OK", 123)
支持现货(火币/BitVC/OKCoin/OKCoin国际/OKCoin期货/BTCChina/BitYes)市价单, 市价单价格指定为-1
exchange.Buy(1000), 指买市价1000元的币, BTCChina例外exchange.Buy(0.3)指市价买0.3个币
이제 한정판을 어떻게 간단하게 사용할 수 있는지 살펴보겠습니다. 사실 한정판에는 많은 세부사항이 있습니다. 먼저 한정판을 간단하게 이해해야 합니다.3.1장그리고 이 모든 것을 다룰 수 있는 아주 세밀한 과정이 있습니다.
function main() {
// 方便用户看这些 宏的值 我们事先打印出来
// ORDER_STATE_PENDING :未完成
// ORDER_STATE_CLOSED :已关闭
// ORDER_STATE_CANCELED :已取消
Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, ", ORDER_STATE_CLOSED:",
ORDER_STATE_CLOSED, ", ORDER_STATE_CANCELED:", ORDER_STATE_CANCELED); // 这些都是订单状态的宏,打印这些值认识下,在本段代码不起任何作用,仅仅观察下这些 “状态” 的值。
var ticker = exchange.GetTicker(); // 上一章 已经讲述了怎么获取行情信息。
Log("初始账户信息:", exchange.GetAccount()); // 用于对比交易前后账户信息
var ID = exchange.Buy(ticker.Sell + 0.1, 0.1); // ticker.Sell 即 上一章中的 depth.Asks[0].Price 。
// 返回值是一个订单 ID ,参考上面 小准备。
// 限价单下单后 返回一个ID 可以用来查询这个订单的完成情况。我们暂停1秒 即: Sleep(1000) 。
Sleep(1000);
var order = exchange.GetOrder(ID); // 根据ID 获取 对应的 订单信息。
Log("order:", order);
Log("当前账户信息:", exchange.GetAccount()); // 对比初始账户信息
}
그 결과는 다음과 같습니다.
인쇄된 주문의 상태가 1인 것을 볼 수 있습니다. 즉: ORDER_STATE_CLOSED 。 현재 주문 상태는 완료된 것으로, dealAmount를 0.1로 볼 수 있으며, 이 주문이 거래를 완료한 것을 확인할 수 있습니다. 거래 금액은 dealAmount 。 자세히 관찰한 동문들은 인쇄된 주문이 API 문서보다 AvgPrice ((평균 거래 가격)) 이 더 많은 것을 발견할 수 있습니다. 이것은 이 속성이 나중에 확장되어 표시되기 때문입니다.
API 문서
Sell(Price, Amount) 跟Buy函数一样的调用方法和场景
위의 Buy () 함수는 우리가 사용하는 피드백 시스템 테스트입니다. 여기 우리는 시뮬레이션 디스크를 사용하여 주문이 미달되었는지 확인합니다.
function main() {
// 方便用户看这些 宏的值 我们事先打印出来
// ORDER_STATE_PENDING :未完成
// ORDER_STATE_CLOSED :已关闭
// ORDER_STATE_CANCELED :已取消
Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, "
, ORDER_STATE_CLOSED:", ORDER_STATE_CLOSED, ", ORDER_STATE_CANCELED:", ORDER_STATE_CANCELED);
var ticker = exchange.GetTicker(); // 上一章 已经讲述了怎么获取行情信息。
Log("初始账户信息:", exchange.GetAccount()); // 用于对比交易前后账户信息
var ID = exchange.Sell(ticker.Sell + 0.3, 2); // 这里故意把卖出价格加了 0.3 ,并且使用的ticker.Sell,增加了未成交的几率。
// 返回值是一个订单 ID ,参考上面 小准备。
// 限价单下单后 返回一个ID 可以用来查询这个订单的完成情况。我们暂停1秒 即: Sleep(1000) 。
Sleep(1000);
var order = exchange.GetOrder(ID); // 根据ID 获取 对应的 订单信息。
Log("order:", order);
Log("当前账户信息:", exchange.GetAccount()); // 对比初始账户信息
}
발명가들의 분석 결과:
인쇄된 오더의 Status 값이 0인 것을 볼 수 있습니다. DealAmount 값은 0이며, 판매된 2개의 동전도 오더가 Pending 상태이기 때문에 동결되었다.
“Pending”의 경우 어떻게 될까요? 여기서 CancelOrder () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
function main() {
// 方便用户看这些 宏的值 我们事先打印出来
// ORDER_STATE_PENDING :未完成
// ORDER_STATE_CLOSED :已关闭
// ORDER_STATE_CANCELED :已取消
Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, ", ORDER_STATE_CLOSED:", ORDER_STATE_CLOSED,
", ORDER_STATE_CANCELED:", ORDER_STATE_CANCELED);
var ticker = exchange.GetTicker(); // 上一章 已经讲述了怎么获取行情信息。
Log("初始账户信息:", exchange.GetAccount()); // 用于对比交易前后账户信息
var ID = exchange.Sell(ticker.Sell + 50, 2); // ticker.Sell 即 上一章中的 depth.Asks[0].Price 。
// 返回值是一个订单 ID ,参考上面 小准备。
// 限价单下单后 返回一个ID 可以用来查询这个订单的完成情况。我们暂停1秒 即: Sleep(1000) 。
Sleep(1000);
var order = exchange.GetOrder(ID); // 根据ID 获取 对应的 订单信息。
Log("order:", order);
Log("当前账户信息:", exchange.GetAccount()); // 对比初始账户信息
Sleep(60 * 1000);
exchange.CancelOrder(ID); // 取消 这个ID 的订单
order = exchange.GetOrder(ID); // 读取这个ID的订单信息。
Log("order:", order);
}
실행 결과: ID 634795459의 주문이 표시됩니다. 마지막 인쇄된 메시지의 상태는 2입니다. 즉: ORDER_STATE_CANCELED: 취소되었습니다.

GetOrder(ID) 와 GetOrders() 함수는 비슷하게 보이지만, 전자는 지정된 ID의 주문 정보를 얻으며, 후자는 모든未完成의 순서 ((GetOrders (() 의 데이터 구조는 객체 배열, 즉 각 요소가 order 구조의 배열으로 반환됩니다) 。