리소스 로딩... 로딩...

2.2 하위 가격표 거래

저자:발명가들의 수량화 - 작은 꿈, 2016-11-07 16:41:10, 업데이트: 2019-08-01 09:26:27

하위 가격 목록 거래


  • 구매 (Price, Amount) 함수

작은 준비

트랜잭션 함수인 Buy (() 를 사용하여/Sell (세일) 에 대한 몇 가지 API가 있습니다.

  • 1, GetOrder (orderId) 는 주문 번호에 따라 주문 세부 정보를 얻으며 Order 구조를 반환합니다.
  • 2, GetOrders는 완료되지 않은 모든 주문을 검색하여 Order 배열 구조를 반환합니다.
  • 3, CancelOrder (orderId) 는 주문 번호에 따라 주문을 취소하고 true 또는 false를 반환합니다.
  • 4, 주문 상태 Order 구조의 상태 값
[
        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 문서보다 1 AvgPrice (거래 평균값) 더 많은 것을 발견할 수 있다. 왜냐하면 이 속성이 나중에 확장되어 표시되기 때문이다.

  • Sell (Price, Amount) 함수

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개의 코인은 Pending 상태이기 때문에 얼어붙었다.

"중계"란 문서는 어떻게 처리될까요? 여기서 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입니다. 즉: ORDER_STATE_CANCELED: 취소되었습니다.img

GetOrder ((ID) 와 GetOrders ((() 함수는 매우 비슷해 보이지만, 다른 점은 전자는 지정된 ID의 주문 정보를 얻는 것이고 후자는 모든 것을 얻는다는 것입니다.未完成명령어 (GetOrders) 는 객체 배열로 반환되는 데이터 구조, 즉 각 요소가 명령어 구조의 배열입니다.


더 많은

비자수오만약 제가 비트코인을 사지 않고 다른 동전을 사면 어떻게 될까요?

비자수오마크

이 모든 것은 제가 여러분께 보여드린 것입니다. 교환.Buy ((ticker, 0.1) 를 구입합니다. 그리고 exchange.Buy ((depth, 0.1) 를 구입합니다. 이 모든 것이 다른 것을 의미합니다. 동전의 시장의 실제 거래 가격은 어떻게 동전을 얻을 수 있습니까?

FangBei파이썬 버전 https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png

발명가들의 수량화 - 작은 꿈이 게시물의 네 번째 질문을 참조하십시오: https://www.botvs.com/bbs-topic/1427 실제 디스크에서는 사용자 정의 컨트롤 설정을 사용할 수 있습니다.

발명가들의 수량화 - 작은 꿈GetTicker는 실시간 행동 데이터를 얻고, GetDepth는 깊은 정보를 얻고, 구매와 판매는 동일합니다.

발명가들의 수량화 - 작은 꿈공유해 주셔서 감사합니다!