Die Transaktionsfunktion Buy wird verwendet./Sell ((() hat einige APIs, mit denen man vertraut sein muss.
[
ORDER_STATE_PENDING :未完成
ORDER_STATE_CLOSED :已关闭
ORDER_STATE_CANCELED :已取消
]
{
Id :交易单唯一标识
Price :下单价格
Amount :下单数量
DealAmount :成交数量
Status :订单状态, 参考常量里的订单状态
Type :订单类型, 参考常量里的订单类型
}
API-Dokumentation
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个币
Wir werden sehen, wie einfach es ist, mit dem Preislimit umzugehen, und es gibt viele Details, die wir zuerst verstehen müssen, weil wir später sehen werden, dass der Preislimit eine sehr einfache Lösung ist, und wir werden sehen, wie einfach es ist, mit dem Preislimit umzugehen.Kapitel 3.1Es wird ein sehr detaillierter Prozess geben, um zu lernen.
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()); // 对比初始账户信息
}
Das Ergebnis lautet:
Der Status des ausgedruckten Orders ist 1, das heißt: ORDER_STATE_CLOSED 。 Der aktuelle Auftragsstatus ist abgeschlossen, wenn dealAmount 0.1 ist, kann auch bestätigt werden, dass der Auftrag abgeschlossen wurde。 Die Transaktionsmenge ist dealAmount 。 Die Schüler, die möglicherweise genau beobachten, finden heraus, dass der ausgedruckte Auftrag einen AvgPrice mehr als das API-Dokument hat, weil diese Eigenschaft später in der Erweiterung angezeigt wurde。
API-Dokumentation
Sell(Price, Amount) 跟Buy函数一样的调用方法和场景
Die oben genannte Buy () -Funktion wurde von unserem Feedback-System getestet, hier testen wir sie mit der Simulationsscheibe, um zu sehen, ob die Bestellung nicht oder nur teilweise ausgeführt wurde.
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()); // 对比初始账户信息
}
Der Erfinder quantifizierte die Analogdiskette wie folgt:
Der Status der ausgedruckten Order ist 0, also noch nicht abgeschlossen. Der DealAmount ist 0, und die 2 Münzen, die verkauft wurden, sind auch eingefroren, da der Order als Pending gilt.
Was ist mit den “Pending”-Einzeln? Wir verwenden die Funktion CancelOrder ((ID), um die Bestellung mit der angegebenen ID zu stornieren.
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);
}
Laufende Ergebnisse: Anzeige eines Auftrags mit der ID 634795459 in der letzten gedruckten Nachricht Status 2 ist: ORDER_STATE_CANCELED: abgesagt

Die GetOrder(ID) und die GetOrders() Funktionen sehen sehr ähnlich aus, mit dem Unterschied, dass die erstere die Bestellinformationen für die angegebene ID erfasst, während die letztere alle未完成Die Datenstruktur, die von GetOrders zurückgegeben wird, ist eine Objekt-Array, d.h. eine Array, in der jedes Element eine Order-Struktur ist.