2.2 Senarai harga bawah Perdagangan

Penulis:Mimpi kecil, Dicipta: 2016-11-07 16:41:10, Dikemas kini: 2019-08-01 09:26:27

Senarai harga bawah Perdagangan


  • Fungsi Beli (Price, Amount)

Bersiap sedia

Menggunakan fungsi urus niaga Beli/Sell () Terdapat beberapa API yang mesti anda ketahui.

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

Dokumen 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个币
  • Senarai harga terhad

Mari kita lihat bagaimana mudahnya menggunakan senarai harga, sebenarnya senarai harga mempunyai banyak perincian yang perlu ditangani.Bahagian 3.1Di samping itu, terdapat juga proses yang sangat terperinci 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 ialah:imgAnda dapat melihat bahawa status pesanan yang dicetak adalah 1, iaitu: ORDER_STATE_CLOSED. Status pesanan semasa adalah selesai, melihat dealAmount adalah 0.1, juga dapat mengesahkan bahawa pesanan ini telah selesai transaksi. Jumlah transaksi adalah dealAmount.

  • Fungsi Sell (Price, Amount)

Dokumen API

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

Fungsi BUY di atas diuji oleh sistem pengesanan semula yang kami gunakan, di sini kami menguji dengan piringan analog untuk melihat apakah ada pesanan yang belum selesai (atau sebahagian selesai).

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

Pencipta mengukur hasil operasi piringan analog seperti berikut:imgAnda dapat melihat bahawa status pesanan yang dicetak adalah 0, iaitu belum selesai. DealAmount adalah 0, dan 2 mata wang yang dijual juga dibekukan kerana pesanan sedang menunggu.

Bagaimana dengan senarai yang sedang menunggu? Fungsi CancelOrder (ID) digunakan untuk membatalkan pesanan dengan ID tertentu.

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 pelaksanaan: menunjukkan pesanan dengan ID 634795459 Status 2 dalam mesej yang terakhir dicetak iaitu: ORDER_STATE_CANCELED : dibatalkanimg

Fungsi GetOrder ((ID) dan GetOrders ((() kelihatan sama, dengan perbezaan bahawa yang pertama mengambil maklumat pesanan dari ID yang ditentukan, yang kedua mengambil semua未完成Perintah (GetOrders) mengembalikan struktur data sebagai matriks objek, iaitu, setiap elemen merupakan matriks struktur perintah)


Lebih lanjut

bijiasuoBagaimana jika saya tidak membeli Bitcoin, membeli duit syiling lain, dan menyusunnya?

bijiasuoMark, cuba lihat.

penglihengAdakah anda boleh bertanya kepada saya? exchange.Buy ((ticker, 0.1) untuk membeli satu dan exchange.Buy ((depth, 0.1) untuk membeli satu Apakah perbezaan antara mereka yang berfikiran negatif dan yang berfikiran positif? Harga sebenar pasaran mata wang adalah bagaimana untuk mendapatkan sen.

FangBeiVersi python https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png

Mimpi kecilLihat soalan keempat dalam catatan ini: https://www.botvs.com/bbs-topic/1427 Apabila berada di papan kekunci, anda boleh menggunakan tetapan kawalan tersuai.

Mimpi kecilGetTicker mendapatkan data semasa, GetDepth mendapat maklumat mendalam, membeli dan menjual adalah sama.

Mimpi kecilTerima kasih kerana berkongsi!