avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

2.2 Tempatkan pesanan batas

Dibuat di: 2016-11-07 16:41:10, diperbarui pada: 2019-08-01 09:26:27
comments   7
hits   6268

Surat Tanda Tangan


  • ### Buy (Price, Amount) fungsi

Persiapan kecil

Fungsi transaksi yang digunakan adalah Buy ()./Ada beberapa API yang harus Anda ketahui.

  • 1. GetOrder ((orderId) Mendapatkan detail pesanan berdasarkan nomor pesanan dan mengembalikan struktur pesanan.
  • 2. GetOrders mengambil semua pesanan yang belum selesai dan mengembalikan sebuah struktur Array Order.
  • 3 CancelOrder ((orderId) membatalkan suatu pesanan berdasarkan nomor pesanan, mengembalikan true atau false.
  • 4. Status dari sebuah order
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5. Struktur order, yang dikembalikan oleh fungsi GetOrder
{
        Id          :交易单唯一标识
        Price       :下单价格
        Amount      :下单数量
        DealAmount  :成交数量
        Status      :订单状态, 参考常量里的订单状态
        Type        :订单类型, 参考常量里的订单类型
}

Dokumentasi 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个币
  • #### Daftar harga terbatas

Mari kita lihat bagaimana cara mudahnya menggunakan daftar harga, sebenarnya daftar harga ada banyak detail yang perlu ditangani, kita akan memulainya dengan cara yang sederhana, karena nanti kita akan membahas tentang daftar harga dan bagaimana cara menggunakan daftar harga.Bab 3.1Akan ada proses yang sangat menyeluruh untuk belajar.

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

Hasilnya adalah sebagai berikut: 2.2 Tempatkan pesanan batas Anda dapat melihat bahwa status order yang dicetak adalah 1, yaitu: ORDER_STATE_CLOSED 。 status order saat ini telah selesai, melihat dealAmount adalah 0.1, juga dapat mengkonfirmasi bahwa order telah menyelesaikan transaksi 。 jumlah transaksi adalah dealAmount 。 mungkin ada teman yang memperhatikan dengan cermat menemukan bahwa order yang dicetak lebih dari satu AvgPrice (harga rata-rata transaksi) dari dokumen API, ini karena atribut ini kemudian diperluas untuk ditampilkan。

  • ### Fungsi Sell ((Price, Amount)

Dokumentasi API

    Sell(Price, Amount)	跟Buy函数一样的调用方法和场景
  • #### Daftar harga terbatas

Buy () di atas adalah fungsi yang kami gunakan untuk menguji sistem umpan balik, di sini kami menguji dengan analog disk untuk melihat apakah ada pesanan yang belum terjual (atau sebagian terjual) [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());   //  对比初始账户信息
}

Penemu mengkuantifikasi simulasi disk sebagai berikut: 2.2 Tempatkan pesanan batas Anda dapat melihat bahwa status order yang dicetak adalah 0, artinya belum selesai. DealAmount adalah 0, dan 2 koin yang dijual juga dibekukan karena order sedang dalam status Pending.

Lalu bagaimana dengan single Pending? Di sini kita menggunakan fungsi CancelOrder ((ID), yang kita gunakan untuk membatalkan pesanan dengan ID yang ditentukan.

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);
}

Hasil lari: Menampilkan pesanan dengan ID 634795459 Status pada pesan terakhir yang dicetak adalah 2 yaitu: ORDER_STATE_CANCELED: telah dibatalkan 2.2 Tempatkan pesanan batas

Fungsi GetOrder ((ID) dan GetOrders (()) terlihat sangat mirip, hanya saja yang pertama mengambil informasi pesanan dari ID yang ditentukan, sedangkan yang kedua mengambil semua未完成Order ((GetOrders (() mengembalikan struktur data sebagai array objek, yaitu array di mana setiap elemen adalah struktur order).