2.2 Preisnachlässigkeit

Schriftsteller:Kleine Träume, Erstellt: 2016-11-07 16:41:10, Aktualisiert: 2019-08-01 09:26:27

Preisuntergrenzung


  • Die Funktion Buy (Preis, Betrag)

Kleine Vorbereitungen

Mit der Transaktionsfunktion "Buy"/Sell () gibt einige API's, mit denen man sich vertraut machen muss.

  • 1, GetOrder ((orderId) erhält Orderdetails nach der Bestellnummer und gibt eine Orderstruktur zurück.
  • 2, GetOrders holt alle noch nicht abgeschlossenen Aufträge und gibt eine Arraystruktur an, die als Order bezeichnet wird.
  • 3, CancelOrder (orderId) Kannseln einer Bestellung nach der Bestellnummer und gibt True oder False zurück.
  • 4. Status der Bestellung Status in der Bestellstruktur
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5 Order Die von der GetOrder Funktion zurückgegebene Bestellstruktur
{
        Id          :交易单唯一标识
        Price       :下单价格
        Amount      :下单数量
        DealAmount  :成交数量
        Status      :订单状态, 参考常量里的订单状态
        Type        :订单类型, 参考常量里的订单类型
}

API-Dokumentation

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个币
  • Preisbeschränkung

Wenn wir nun mal sehen, wie einfach es ist, mit einem Preislimit zu arbeiten, dann gibt es viele Details, die wir zuerst einfach verstehen müssen, denn wir werden später darüber sprechen.Kapitel 3.1Es gibt einen sehr detaillierten Verarbeitungsprozess, den jeder lernen kann.

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

Das Ergebnis:imgDer Status des ausgedruckten Orders ist 1, also: ORDER_STATE_CLOSED. Der aktuelle Status des Orders ist abgeschlossen. Der Status von dealAmount ist 0.1, was auch bestätigt, dass der Auftrag abgeschlossen ist. Die Transaktionsmenge ist dealAmount.

  • Die Funktion Sell (Preis, Betrag)

API-Dokumentation

    Sell(Price, Amount)	跟Buy函数一样的调用方法和场景
  • Preisbeschränkung

Die oben genannte BUY-Funktion wurde mit einem Rückruf-System getestet, das wir hier mit einer Analogplatte testen, um zu sehen, ob es keine ausstehenden (oder teilweise ausgeführten) Bestellungen gibt.

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

Die Ergebnisse der Erfindung der Quantifizierung der Analogplatte sind folgende:imgSie können sehen, dass der Status der gedruckten Bestellung 0 ist, also nicht abgeschlossen. Der DealAmount ist 0, und die 2 verkauften Münzen sind auch eingefroren, da die Bestellung Pending ist.

Was ist mit der Pending-File? Hier wird die Funktion CancelOrder (ID) verwendet, mit der wir Bestellungen, deren ID angegeben ist, stornieren.

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

Ausführungsergebnis: Anzeige der Bestellung mit ID 634795459 Status 2 in der letzten gedruckten Nachricht: ORDER_STATE_CANCELED: abgesagtimg

Die Funktionen GetOrder (ID) und GetOrders (ID) sehen ähnlich aus, mit dem Unterschied, dass die erste die Auftragsinformationen für die angegebene ID erhält, die zweite alle.未完成Die Datenstruktur, die von GetOrders () zurückgegeben wird, ist eine Objekt-Array, d.h. eine Array, in der jedes Element eine Order-Struktur hat).


Mehr

- Das ist nicht wahr.Was ist, wenn ich keine Bitcoins kaufe, andere Kaufmünzen kaufe, und das alles?

- Das ist nicht wahr.Das ist nicht wahr.

ZürichWenn Sie fragen können, wie ich das verstanden habe. exchange.Buy ((ticker, 0.1) zu kaufen und exchange.Buy ((depth, 0.1) um einen zu kaufen Was ist der Unterschied? Wie kommt man an den echten Marktpreis für die Münze?

FangBeiDie Python Version Siehe auch: https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8.png Siehe auch: https://dn-filebox.qbox.me/d6d7d1af28993a2225ec33b092b4cf2e8c479edc.png

Kleine TräumeSiehe die vierte Frage in diesem Beitrag: https://www.botvs.com/bbs-topic/1427 Das ist eine sehr schwierige Aufgabe, aber es ist eine sehr schwierige Aufgabe.

Kleine TräumeGetTicker erhält Echtzeit-Verhaltensdaten, GetDepth erhält tiefe Informationen, und es ist gleich, ob man es kauft oder verkauft.

Kleine TräumeDanke fürs Teilen!