2.2 Đặt giá thấp hơn

Tác giả:Giấc mơ nhỏ, Tạo: 2016-11-07 16:41:10, Cập nhật: 2019-08-01 09:26:27

Danh sách giá thấp


  • Buy (Price, Amount)

Chuẩn bị nhỏ

Sử dụng chức năng giao dịch Buy/Sell () là một trong những API trước đây mà bạn phải quen thuộc.

  • 1, GetOrder ((orderId) lấy chi tiết đơn đặt hàng dựa trên số đơn đặt hàng và trả về cấu trúc Order.
  • 2, GetOrders lấy tất cả các lệnh chưa hoàn thành và trả về một cấu trúc Array Order.
  • 3, CancelOrder (orderId) hủy một đơn đặt hàng dựa trên số đơn đặt hàng, trả về true hoặc false.
  • 4, trạng thái của đơn đặt hàng Giá trị trạng thái trong cấu trúc đơn đặt hàng
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5, Order Cấu trúc lệnh, được trả về bởi hàm GetOrder
{
        Id          :交易单唯一标识
        Price       :下单价格
        Amount      :下单数量
        DealAmount  :成交数量
        Status      :订单状态, 参考常量里的订单状态
        Type        :订单类型, 参考常量里的订单类型
}

Tài liệu 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个币
  • Danh sách giới hạn

Chúng ta hãy xem cách đơn giản để sử dụng bảng giá, thực tế là bảng giá có rất nhiều chi tiết cần được xử lý, chúng ta sẽ hiểu đơn giản hơn vì sau đây chúng ta sẽ nói về các chi tiết khác nhau.Chương 3.1Có một quá trình xử lý rất chi tiết để mọi người học.

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

Kết quả là:imgBạn có thể thấy giá trị trạng thái của lệnh được in là 1, tức là: ORDER_STATE_CLOSED. trạng thái của lệnh hiện tại là hoàn thành, thấy dealAmount là 0.1, cũng có thể xác nhận rằng lệnh đã hoàn thành giao dịch. Số lượng giao dịch là dealAmount. Có thể có học sinh quan sát kỹ lưỡng thấy rằng lệnh được in có nhiều hơn một AvgPrice (giá trị trung bình giao dịch) so với tài liệu API, bởi vì thuộc tính này được mở rộng sau đó.

  • Sell (Price, Amount)

Tài liệu API

    Sell(Price, Amount)	跟Buy函数一样的调用方法和场景
  • Danh sách giới hạn

Chức năng Buy trên được thử nghiệm bằng hệ thống kiểm tra lại mà chúng tôi đã sử dụng, và ở đây chúng tôi sẽ thử nghiệm bằng đĩa giả để xem liệu có lệnh chưa được thực hiện (hoặc một phần được thực hiện) hay không.

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

Các nhà phát minh đã định lượng kết quả của việc chạy đĩa tương tự như sau:imgBạn có thể thấy rằng giá trị trạng thái của lệnh được in là 0, tức là chưa hoàn thành. Giá trị số tiền giao dịch là 0, và 2 đồng được bán đã bị đóng băng vì lệnh đang chờ.

Vậy thì những đơn đang chờ được xử lý như thế nào? Ở đây, chúng ta sử dụng hàm CancelOrder (ID) để hủy lệnh mà chỉ định 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);
}

Kết quả chạy: hiển thị đơn đặt hàng với ID số 634795459 Trong thông báo được in cuối cùng, trạng thái là 2: ORDER_STATE_CANCELED: đã bị hủyimg

GetOrder ((ID) và GetOrders ((() trông rất giống nhau, sự khác biệt là GetOrder () lấy thông tin đặt hàng của ID được chỉ định, và GetOrders () lấy tất cả các thông tin đặt hàng của ID.未完成Các cấu trúc dữ liệu được trả về là một mảng đối tượng, nghĩa là mỗi phần tử là một mảng cấu trúc thứ tự).


Thêm nữa

đậuNếu tôi không mua Bitcoin, mua tiền khác, làm gì?

đậuMark, nghe này.

PenglihengBạn có thể hỏi tôi, tôi dựa trên exchange.Buy ((ticker, 0.1) để mua một và exchange.Buy ((depth, 0.1) để mua một Những người dân ở Việt Nam đang phải đối mặt với vấn đề này. Giá giao dịch thực sự của đồng xu trên thị trường là làm thế nào để có được đồng xu

FangBeiPhiên bản python https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png

Giấc mơ nhỏHãy xem câu hỏi thứ tư của bài viết này: https://www.botvs.com/bbs-topic/1427 Trong khi thực, bạn có thể sử dụng các thiết lập điều khiển tùy chỉnh.

Giấc mơ nhỏGetTicker lấy dữ liệu hành vi trong thời gian thực, GetDepth lấy thông tin sâu, mua và bán đều giống nhau.

Giấc mơ nhỏCảm ơn vì đã chia sẻ!