Type/to search
8
Follow
1386
Followers
2.2 Разместить лимитный ордер
Tutorials
Created 2016-11-07 16:41:10  Updated 2019-08-01 09:26:27
 7
 6769

Сделки по цене в нижнем пределе


  • Функция Buy (Цена, Сумма)

Небольшая подготовка

Используя функцию сделки Buy ().**/**Sell () - это несколько API, с которыми нужно быть знакомым.

  • GetOrder ((orderId) - получает данные о заказе по номеру заказа и возвращает структуру заказа.
  • 2 GetOrders получает все незавершенные заказы и возвращает структуру массива Orders.
  • CancelOrder ((orderId) Отменить заказ по номеру заказа, вернуть true или false.
  • 4 Состояние заказа Значение Status в структуре Order
[ ORDER_STATE_PENDING :未完成 ORDER_STATE_CLOSED :已关闭 ORDER_STATE_CANCELED :已取消 ]
    1. Структура заказов, возвращаемая функцией 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 。 возможно, внимательные ученики обнаружили, что отпечатанный ордер имеет одну AvgPrice (средняя цена сделки) больше, чем в документах API, потому что это свойство было показано позже в расширении 。

  • Функция 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
Вы можете увидеть, что напечатанный ордер имеет значение Status 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); }

Результат работы: показан заказ с идентификатором 634795459 в последнем печатаемом сообщении Status is 2: ORDER_STATE_CANCELED: отменен
img

Функции GetOrder ((ID) и GetOrders (()) выглядят очень похожими, только одна из них получает информацию о заказах с указанным ID, другая - все未完成Заказ ((GetOrders (() возвращает структуру данных как массив объектов, то есть как массив, в котором каждый элемент является структурой ордера) [2].

Related Recommendations
Comment
All comments (7)

    如果我不要买比特币,买其他的币,咋整?

    9 years ago

    参看这个 帖子的 第四个问题: https://www.botvs.com/bbs-topic/1427
    实盘的时候 可以使用自定义控件设置。

    9 years ago

    马克一下

    9 years ago

    能不能问一下,我根据
    exchange.Buy(ticker,0.1)来买一
    和
    exchange.Buy(depth,0.1)来买一
    的区别是什么,
    币的市场真实交易价到底如何获取哦

    9 years ago

    GetTicker 获取的就是 实时的 行情数据, GetDepth 获取的是深度 信息, 买一 、卖一 都是一样的。

    9 years ago

    python版本
    img
    img

    9 years ago

    感谢 分享!

    9 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)