avatar of 发明者量化-小小梦 发明者量化-小小梦
Seguir Mensajes Privados
4
Seguir
1271
Seguidores

2.2 Realizar una orden limitada

Creado el: 2016-11-07 16:41:10, Actualizado el: 2019-08-01 09:26:27
comments   7
hits   6268

Mensajes de precios bajos


  • ### La función Buy (Precio, Cantidad)

Preparaciones

La función de transacción Buy es usada en/Sell (() es una de las primeras APIs con las que debes estar familiarizado.

  • 1 GetOrder ((orderId) Obtiene los detalles del pedido basado en el número de pedido y devuelve una estructura de pedido.
  • 2 GetOrders Obtiene todos los pedidos pendientes y devuelve una estructura de orden de orden.
  • 3. CancelOrder ((orderId) Cancelar un pedido basado en el número de pedido, devolver verdadero o falso.
  • 4 El estado de la orden El valor de estado en la estructura de orden
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5. La estructura de la orden orden, devuelta por la función GetOrder
{
        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个币
  • #### Lista de precios límite

Vamos a ver cómo es simple el uso de la lista de precios límite, en realidad la lista de precios límite tiene muchos detalles que tratar, vamos a entenderlo de manera simple, porque más adelanteSección 3.1Habrá un proceso muy detallado para que todos aprendan.

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());       //  对比初始账户信息
}

El resultado fue el siguiente: 2.2 Realizar una orden limitada Se puede ver que el estado de la orden impresa es 1, es decir, ORDER_STATE_CLOSED 。 El estado actual de la orden está terminado, ver que dealAmount es 0.1, también puede confirmar que la orden ha completado la transacción。 El monto de transacción es dealAmount 。 Los estudiantes que pueden observar detenidamente pueden encontrar que la orden impresa tiene un AvgPrice (precio promedio de transacción) más que el documento de la API, porque esta propiedad se muestra más tarde en la extensión。

  • ### La función Sell (Precio, Cantidad)

Documentación de la API

    Sell(Price, Amount)	跟Buy函数一样的调用方法和场景
  • #### Lista de precios límite

La función Buy ((() de arriba fue probada por el sistema de retroalimentación que usamos, y aquí la probamos con un disco simulado para ver si hay pedidos pendientes (( o parcialmente cumplidos) [2].

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 inventor cuantificó el funcionamiento del simulador de la siguiente manera: 2.2 Realizar una orden limitada 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á pendiente.

¿Y qué hay de los singles de Pending? Aquí usamos la función CancelOrder ((ID) para cancelar un pedido con un 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);
}

Resultado de la ejecución: Se muestra el pedido con el número de identificación 634795459 El último mensaje impreso en el estado 2 es: ORDER_STATE_CANCELED: Cancelado 2.2 Realizar una orden limitada

Las funciones GetOrder ((ID) y GetOrders (()) se parecen mucho, pero la diferencia es que la primera obtiene la información de los pedidos de un ID específico, mientras que la segunda obtiene la información de todos los pedidos de un ID específico.未完成La estructura de datos devuelta es una matriz de objetos, es decir, una matriz en la que cada elemento es una estructura de orden).