資源の読み込みに... 荷物...

2.2 下値表 取引

作者: リン・ハーン発明者 量化 - 微かな夢作成日:2016年11月17日 16時41分10秒 更新日:2019年8月1日 09時26分27秒

価格リスト 取引


  • Buy (価格,金額) 関数

小準備

取引関数 Buy を使って/Sell (売る) は,いくつかのAPIを熟知する必要があります.

  • 1、GetOrder (orderId) は,注文番号に基づいて注文詳細を取得し,Order構造を返します.
  • 2, GetOrders は,未完了のすべての注文を取得し,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());       //  对比初始账户信息
}

運営の結果は以下の通りです.imgプリントされたオーダーのステータスが 1 であることがわかります. ORDER_STATE_CLOSED. 現在のオーダーのステータスが完了していることがわかります. dealAmount が 0.1 であることも確認できます. 取引額は dealAmount です. 細心の観察した同学は,プリントされたオーダーは API 文書よりも AvgPrice (取引平均価格) を多く出していることがわかります. これは,この属性が後に拡張されたため示されます.

  • Sell (価格,金額) 関数

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

発明者による定量化 模擬ディスクの実行結果は以下のとおりです.img印刷されたオーダーのステータスは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番号634795459の注文を表示します. 最後のプリントされたメッセージのステータスは2です.img

GetOrder ((ID) と GetOrders ((() は,前者は指定IDの注文情報を取得し,後者はすべての注文情報を取得する.未完成getOrders () は,各要素が順序構造の配列であるオブジェクト配列として返される.


もっと

ビジアスオもし私がビットコインを買わないと,他のコインを買ったら,どうでしょう?

ビジアスオマーク

ペンギン疑問に思いましたが exchange.Buy ((ticker,0.1) を購入する そして exchange.Buy ((depth,0.1) を購入する この2つの違いは何ですか? 通貨の市場での実際の取引価格は,どのようにを得られるのか?

ファングベイPythonのバージョン https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png

発明者 量化 - 微かな夢この記事の第4の質問は https://www.botvs.com/bbs-topic/1427 に参照してください. リアルディスクでは,カスタムコントローラ設定を使用できます.

発明者 量化 - 微かな夢GetTickerはリアルタイムな行動データ,GetDepthは深度な情報を得ています.

発明者 量化 - 微かな夢ありがとうございました!