avatar of 发明者量化-小小梦 发明者量化-小小梦
フォロー ダイレクトメッセージ
4
フォロー
1271
フォロワー

2.2 指値注文を出す

作成日:: 2016-11-07 16:41:10, 更新日:: 2019-08-01 09:26:27
comments   7
hits   6268

下限価格の取引


  • ### この関数は,

小さい準備

Buy () というトランザクション関数を使っています./Sell (()) は,いくつかのAPIを熟知している必要があります.

  • 1 GetOrder ((orderId)) 注文番号に基づいて注文詳細を取得し,注文構造を返します.
  • 2 GetOrders は,未完成の注文をすべて取得し,Order 配列構造を返します.
  • 3. CancelOrder ((orderId) 注文番号に基づいて注文をキャンセルし,trueまたはfalseを返します.
  • 4 命令の状態 命令構造のStatus値
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5 オーダー構造,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 指値注文を出す 印刷された注文のStatusの値が1であることを確認できます,つまり: ORDER_STATE_CLOSED 。現在の注文の状態は完了し,dealAmountが0.1であることを確認することもできます.この注文は取引が完了しました。取引金額はdealAmount 。注意深く観察した同級生は,印刷された注文がAPI文書よりも1 AvgPrice ((平均取引価格) 多いことを発見しました.これは,この属性が後に拡張して表示されたためです。

  • ### この関数は,

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 指値注文を出す 印刷されたオーダーのStatus値は0で,未完了である。DealAmountの値は0で,販売された2コインはOrderがPending状態であるため,凍結されている。 (最終出力されたアカウント情報を見る)

“Pending”のシングルはどうなるの? CancelOrder () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()

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である:ORDER_STATE_CANCELED:キャンセル 2.2 指値注文を出す

GetOrder ((ID) とGetOrders ((() の関数は似ていますが,前者は指定IDの注文情報を取得し,後者はすべての注文情報を取得します.未完成order ((GetOrders (() のデータ構造は,オブジェクトの配列,すなわち,各要素がorder構造の配列として返されます.