Стратегии и роботы > Как узнать количество отложников по инструменту?

Обсуждение, описание стратегий и роботов, идеи для стратегий
Arteshka
Сообщения: 66
Зарегистрирован: 10 ноя 2017, 12:43
Поблагодарили: 2 раза

Как узнать количество отложников по инструменту?

Непрочитанное сообщение Arteshka » 09 дек 2017, 11:46

Добрый день!!!
Подскажите, пожалуйста, как можно программно узнать количество выставленных отложных ордеров?
Спасибо!

oxi
Сообщения: 160
Зарегистрирован: 20 сен 2016, 23:20
Благодарил (а): 11 раз
Поблагодарили: 65 раз

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение oxi » 11 дек 2017, 12:06

1) Робот видит только свои заявки
2) Робот одновременно может выставить только одну активную заявку и одну стоповую
3) Количество активных заявок по роботу можно узнать так

var orders = GetActiveOrders();
var count = orders.Count;
ShowMessage(orders.Count);

for (int i = 0; i < count; i++)
ShowMessage(orders[i]);

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение evge » 11 дек 2017, 12:15

Дмитрий, в документации этого нет.
Будет ли она обновлена?
никогда такого не было и вот опять

Arteshka
Сообщения: 66
Зарегистрирован: 10 ноя 2017, 12:43
Поблагодарили: 2 раза

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение Arteshka » 11 дек 2017, 13:45

Спасибо огромное!!!
Пойду тестировать.

oxi
Сообщения: 160
Зарегистрирован: 20 сен 2016, 23:20
Благодарил (а): 11 раз
Поблагодарили: 65 раз

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение oxi » 11 дек 2017, 16:03

Будет.

MonteCristo
Сообщения: 33
Зарегистрирован: 16 май 2018, 19:52
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение MonteCristo » 30 июн 2018, 20:04

До сих пор не вижу в документации как получить информацию по активным ордерам.

oxi
Сообщения: 160
Зарегистрирован: 20 сен 2016, 23:20
Благодарил (а): 11 раз
Поблагодарили: 65 раз

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение oxi » 04 июл 2018, 15:33

Не обновили.

Функции работы с заявками
GetActiveOrders() – запрос списка активных заявок по роботу.
• OrderType – тип
• OrderDirection – направление
• Price - цена
• PriceAdditional – дополнительное значение цены (при BRS)
• Quantity – количество
• QuantityRest – оставшееся к покупке количество
• Sent – отправлино / неотправлено
• OperationState - статус
• AvailableActions – название действия (команды)
• AvailableSuperActions – название сигнала
• NumEDocument – номер

Код: Выделить всё

var orders = GetActiveOrders();
var count = orders.Count;
for (int i = 0;  i < count; i++)
{
   ShowMessage( String.Format( " OrderType = {0} OrderDirection = {1} Price = {2} PriceAdditional =         {3} Quantity = {4} QuantityRest = {5} Sent = {6} OperationState = {7} AvailableActions = {8} AvailableSuperActions = {9} NumEDocument = {10}",
orders[i].OrderType, orders[i].OrderDirection, orders[i].Price,orders[i].PriceAdditional,
orders[i].Quantity, orders[i].QuantityRest, orders[i].Sent, orders[i].OperationState, orders[i].AvailableActions, orders[i].AvailableSuperActions, orders[i].NumEDocument));
}

Получим следующий результат

OrderType = LMT
OrderDirection = Buy
Price = 22596
PriceAdditional – нет значения для LMT
Quantity = 1
QuantityRest = 1
Sent = True
OperationState = OrderAccepted
AvailableActions = EnterLongLimit
AvailableSuperActions = EnterLong
NumEDocument = 2876533381

Можно в ShowMessage передать саму заявку

Код: Выделить всё

{
   ShowMessage(orders[i]);
}


Результат будет следующего вида

Id=1 NumEDocument=2876533381 EnterLongLimit (LMT Buy 10, rest 10) Price=148,92 Status=OrderAccepted

Balalayka
Сообщения: 38
Зарегистрирован: 21 сен 2018, 10:57
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение Balalayka » 17 июл 2019, 13:51

Добрый день!
Чтобы не создавать новые темы, хотел бы в этой ветке задать вопрос.

Может ли кто-то показать, как на практике использовать данные функции GetActiveOrders(), например, мне нужно узнать есть ли открытый Стоп по роботу и самое главное как использовать эту информацию в коде робота. Допустим, если стопа нет, то выставить его.
Еще может глупый вопрос, но обязательно ли выводить данные GetActiveOrders() через ShowMessage?

Balalayka
Сообщения: 38
Зарегистрирован: 21 сен 2018, 10:57
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение Balalayka » 19 июл 2019, 13:12

Друзья, уточню вопрос, как получить значение (или несколько значений) функции GetActiveOrders() в переменную
Например, как получить в переменную значение Quantity или OrderDirection?

Заранее спасибо за помощь!

Аватара пользователя
evge
Администратор
Сообщения: 1652
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 303 раза
Контактная информация:

Re: Как узнать количество отложников по инструменту?

Непрочитанное сообщение evge » 19 июл 2019, 14:35

Так выше Дмитрий (oxi) это и описал.
Ну там чуть изменить и будет в переменных.

Код: Выделить всё

var orders = GetActiveOrders();
var count = orders.Count;
for (int i = 0;  i < count; i++)
{
var Quantity = orders[i].Quantity;
var OrderDirection = orders[i].OrderDirection;
}
никогда такого не было и вот опять


Вернуться в «Стратегии и роботы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя