2.2 Liste des prix inférieurs

Auteur:Le petit rêve, Créé: 2016-11-07 16:41:10, mis à jour: 2019-08-01 09:26:27

Liste de prix inférieure


  • La fonction acheter (Price, Amount)

Petite préparation

En utilisant la fonction de transaction acheter/Il y a plusieurs API à connaître.

  • 1, GetOrder ((orderId) Retrouve les détails de l'ordre en fonction du numéro d'ordre et renvoie une structure d'ordre.
  • 2, GetOrders récupère toutes les commandes qui ne sont pas terminées et renvoie une structure d'arithmétique Order.
  • 3, CancelOrder ((orderId) annule une commande en fonction du numéro de commande, et renvoie true ou false.
  • 4, Statut de la commande, valeur de statut dans la structure de commande
[
        ORDER_STATE_PENDING     :未完成
        ORDER_STATE_CLOSED      :已关闭
        ORDER_STATE_CANCELED	:已取消
]
  • 5, Order Structure de l'ordre, retournée par la fonction GetOrder
{
        Id          :交易单唯一标识
        Price       :下单价格
        Amount      :下单数量
        DealAmount  :成交数量
        Status      :订单状态, 参考常量里的订单状态
        Type        :订单类型, 参考常量里的订单类型
}

Documentation de l'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个币
  • Liste de prix

Nous allons voir comment utiliser une liste de prix simple, en fait, une liste de prix a beaucoup de détails à traiter.Chapitre 3.1Il y a un processus de traitement très détaillé pour que tout le monde apprenne.

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

Les résultats sont les suivants:imgOn peut voir que le statut de l'ordre imprimé est 1, c'est-à-dire: ORDER_STATE_CLOSED. L'état de l'ordre actuel est terminé, voir dealAmount est 0.1, ce qui indique que l'ordre a terminé la transaction. Le montant de transaction est dealAmount.

  • La fonction Sell (Price, Amount)

Documentation de l'API

    Sell(Price, Amount)	跟Buy函数一样的调用方法和场景
  • Liste de prix

La fonction BUY (() ci-dessus a été testée par le système de retouche que nous avons utilisé, et nous l'avons testée ici avec un simulateur pour voir s'il y avait des commandes en suspens ((ou partiellement remplies).

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

Les résultats de l'inventeur quantifiant le fonctionnement de l'analogue sont les suivants:imgVous pouvez voir que le statut de l'ordre imprimé est 0, c'est-à-dire qu'il n'est pas terminé. Le montant de la transaction est 0, et les 2 pièces vendues sont gelées car l'ordre est en attente.

Qu'en est-il de la liste en attente? Ici, nous utilisons la fonction CancelOrder (ID) pour annuler une commande dont l'ID est spécifié.

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

Résultats de l'exécution: affiche l'ordre ID 634795459 dans le dernier message imprimé Statut est 2: ORDER_STATE_CANCELED: annuléimg

Les fonctions GetOrder ((ID) et GetOrders ((() sont très similaires, la différence étant que la première récupère les informations d'ordre de l'ID spécifié, tandis que la seconde récupère toutes les informations de l'ordre.未完成L'ordre (GetOrders) renvoie la structure de données comme une matrice d'objets, c'est-à-dire une matrice dans laquelle chaque élément est une structure d'ordre).


Plus de

- Je vous en prie.Si je n'achète pas de bitcoins, j'achète d'autres pièces, je fais quoi?

- Je vous en prie.Je ne sais pas.

PénélopeSi vous pouvez me le demander, je suis d'accord. L'échange.Buy (ticker, 0.1) est un échange. et L'échange.Buy ((depth, 0.1) est un échange. La différence entre les deux est grande. Le prix réel de la monnaie sur le marché est de savoir comment obtenir de l'argent.

FangBei est là.La version python Le code de l'appareil est le suivant: https://dn-filebox.qbox.me/a2802f5f41f416374d79c48aca05030ce2b2e8a8. Il est également possible de télécharger des fichiers sur le serveur de téléchargement.

Le petit rêvePour la quatrième question de ce billet, voir: https://www.botvs.com/bbs-topic/1427 Il est possible d'utiliser des paramètres personnalisés sur le disque dur.

Le petit rêveGetTicker obtient des données de comportement en temps réel, GetDepth obtient des informations de profondeur, acheter ou vendre est la même chose.

Le petit rêveMerci de le partager!