2.2 Нижняя цена

Автор:Изобретатели количественного измерения - мечты, Создано: 2016-11-07 16:41:10, Обновлено: 2019-08-01 09:26:27

Дополнительная цена


  • Функция Buy ((Price, Amount)

    Подготовка

    Используйте функцию "Buy"/Sell ((()) Есть несколько предыдущих API, с которыми вы должны быть знакомы.

    • 1, GetOrder ((orderId) получает подробную информацию о заказе по номеру заказа и возвращает структуру заказа.
    • 2, GetOrders получает все незавершенные заказы и возвращает структуру Array Order.
    • 3, CancelOrder ((orderId) отменяет заказ в зависимости от номера заказа, возвращает true или false.
    • 4, состояние заказа Статус в структуре заказа
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5, Order Структура заказа, возвращаемая функцией GetOrder
{
        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());       //  对比初始账户信息
}

Результаты были следующими:2.2 下限价单 交易Вы можете увидеть, что состояние отпечатанного заказа составляет 1, т.е.: ORDER_STATE_CLOSED. Текущее состояние заказа представляет собой завершенное, а dealAmount представляет собой 0.1, что также подтверждает, что заказ завершен. Стоимость сделки представляет собой dealAmount.

  • Функция ### Sell ((Price, Amount)) Документация 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());   //  对比初始账户信息
}

Изобретатели количественно оценили результаты работы диска:2.2 下限价单 交易Видно, что состояние отпечатанного заказа равно 0, т.е. не завершено. DealAmount равно 0, и 2 продаваемых монета также заморожены из-за того, что заказ находится в состоянии ожидания.

Что делать с записями в ожидании? Здесь используется функция CancelOrder ((ID), которую мы используем для отмены заказов с указанием ID.

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 No 634795459 Последнее напечатанное сообщение Status 2 означает: ORDER_STATE_CANCELED : отменен2.2 下限价单 交易

Функции GetOrder ((ID) и GetOrders ((() выглядят очень похоже, однако разница заключается в том, что первая получает информацию о заказе с указанным ID, а вторая получает информацию обо всех.未完成В результате получается, что данные, полученные в системе GetOrders, возвращаются в виде матриц объектов, т. е. матриц, в которых каждый элемент является структурой порядка.


Больше информации

БиджасуоЧто, если я не куплю биткоин, а куплю другую монету, и все будет хорошо?

БиджасуоМарк, пожалуйста.

ПэнглихенгЕсли вы можете, спросите меня. exchange.Buy ((ticker, 0.1) купить один и exchange.Buy ((depth, 0.1) купить один Но это не значит, что мы не можем быть счастливы. Как на самом деле рынок монет получает иран?

ФанбэйPython версия https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png

Изобретатели количественного измерения - мечтыПосмотрите на четвертый вопрос в этом посте: https://www.botvs.com/bbs-topic/1427 На диске можно использовать настройки пользовательских контроллеров.

Изобретатели количественного измерения - мечтыGetTicker получает данные о действиях в режиме реального времени, GetDepth получает информацию о глубине, покупка и продажа - это одно и то же.

Изобретатели количественного измерения - мечтыСпасибо, что поделились!