En el uso de la función de transacción Buy (((/Sell (Sell) tiene varias APIs con las que debes estar familiarizado.
[
ORDER_STATE_PENDING :未完成
ORDER_STATE_CLOSED :已关闭
ORDER_STATE_CANCELED :已取消
]
{
Id :交易单唯一标识
Price :下单价格
Amount :下单数量
DealAmount :成交数量
Status :订单状态, 参考常量里的订单状态
Type :订单类型, 参考常量里的订单类型
}
Documentación de la 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个币
Ahora vamos a ver cómo se puede usar un listón de precios sencillo, pero en realidad hay muchos detalles que se deben manejar.Capítulo 3.1En la página web de la organización, se puede leer:
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()); // 对比初始账户信息
}
Los resultados son los siguientes:Se puede ver que el estado de la orden impreso es 1, es decir: ORDER_STATE_CLOSED. El estado de la orden actual es completado, ver que el dealAmount es 0.1, también puede confirmar que la orden ha completado la transacción. El monto de transacción es dealAmount.
Documentación de la API
Sell(Price, Amount) 跟Buy函数一样的调用方法和场景
La función Buy (() anterior fue probada por el sistema de retroceso que usamos, y aquí probamos con el disco analógico para ver si hay pedidos pendientes (() o parcialmente realizados.
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()); // 对比初始账户信息
}
El resultado de la operación del disco analógico fue el siguiente:Se puede ver que el estado de la orden impresa es 0, es decir, no se ha completado. El valor de DealAmount es 0, y los 2 monedas vendidas también se han congelado debido a que la orden está en estado de Pending.
¿Qué pasa con la lista Pending? Aquí usamos la función CancelOrder (ID), que usamos para cancelar los pedidos con el ID especificado.
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);
}
Resultados de ejecución: muestra el pedido con el ID 634795459 El último mensaje impreso en el estado es 2: ORDER_STATE_CANCELED: cancelado
Las funciones GetOrder ((ID) y GetOrders ((() se parecen mucho, con la diferencia de que la primera obtiene la información de la orden del ID especificado, mientras que la segunda obtiene toda la información de la orden.未完成
La estructura de datos de la orden ((GetOrders)) que se devuelve es una matriz de objetos, es decir, una matriz en la que cada elemento es una estructura de orden).
¿Qué es eso?¿Qué pasa si no compro bitcoins, compro otras monedas, y lo arreglo?
¿Qué es eso?¿Qué es eso?
el pingüino¿Puede preguntarme si me basé en la historia de la ciudad de Nueva York? exchange.Buy ((ticker, 0.1) para comprar uno y exchange.Buy ((depth, 0.1) para comprar uno ¿Cuál es la diferencia? El precio real de la moneda en el mercado de divisas es el precio real de la plata.
¿ Qué haces?La versión de python https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png
Los inventores cuantifican - sueños pequeñosLa cuarta pregunta de este post se encuentra en https://www.botvs.com/bbs-topic/1427. En el disco real se puede usar la configuración de controles personalizados.
Los inventores cuantifican - sueños pequeñosGetTicker obtiene datos de comportamiento en tiempo real, GetDepth obtiene información de profundidad, compra y venta son lo mismo.
Los inventores cuantifican - sueños pequeños¡Gracias por compartir!