Стратегии и роботы > Как узнать количество отложников по инструменту?
-
- Сообщения: 71
- Зарегистрирован: 10 ноя 2017, 12:43
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Как узнать количество отложников по инструменту?
Добрый день!!!
Подскажите, пожалуйста, как можно программно узнать количество выставленных отложных ордеров?
Спасибо!
Подскажите, пожалуйста, как можно программно узнать количество выставленных отложных ордеров?
Спасибо!
Re: Как узнать количество отложников по инструменту?
1) Робот видит только свои заявки
2) Робот одновременно может выставить только одну активную заявку и одну стоповую
3) Количество активных заявок по роботу можно узнать так
var orders = GetActiveOrders();
var count = orders.Count;
ShowMessage(orders.Count);
for (int i = 0; i < count; i++)
ShowMessage(orders[i]);
2) Робот одновременно может выставить только одну активную заявку и одну стоповую
3) Количество активных заявок по роботу можно узнать так
var orders = GetActiveOrders();
var count = orders.Count;
ShowMessage(orders.Count);
for (int i = 0; i < count; i++)
ShowMessage(orders[i]);
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Как узнать количество отложников по инструменту?
Дмитрий, в документации этого нет.
Будет ли она обновлена?
Будет ли она обновлена?
никогда такого не было и вот опять
-
- Сообщения: 35
- Зарегистрирован: 16 май 2018, 19:52
- Благодарил (а): 2 раза
- Поблагодарили: 2 раза
Re: Как узнать количество отложников по инструменту?
До сих пор не вижу в документации как получить информацию по активным ордерам.
Re: Как узнать количество отложников по инструменту?
Не обновили.
Функции работы с заявками
GetActiveOrders() – запрос списка активных заявок по роботу.
• OrderType – тип
• OrderDirection – направление
• Price - цена
• PriceAdditional – дополнительное значение цены (при BRS)
• Quantity – количество
• QuantityRest – оставшееся к покупке количество
• Sent – отправлино / неотправлено
• OperationState - статус
• AvailableActions – название действия (команды)
• AvailableSuperActions – название сигнала
• NumEDocument – номер
Получим следующий результат
OrderType = LMT
OrderDirection = Buy
Price = 22596
PriceAdditional – нет значения для LMT
Quantity = 1
QuantityRest = 1
Sent = True
OperationState = OrderAccepted
AvailableActions = EnterLongLimit
AvailableSuperActions = EnterLong
NumEDocument = 2876533381
Можно в ShowMessage передать саму заявку
Результат будет следующего вида
Id=1 NumEDocument=2876533381 EnterLongLimit (LMT Buy 10, rest 10) Price=148,92 Status=OrderAccepted
Функции работы с заявками
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
-
- Сообщения: 38
- Зарегистрирован: 21 сен 2018, 10:57
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Как узнать количество отложников по инструменту?
Добрый день!
Чтобы не создавать новые темы, хотел бы в этой ветке задать вопрос.
Может ли кто-то показать, как на практике использовать данные функции GetActiveOrders(), например, мне нужно узнать есть ли открытый Стоп по роботу и самое главное как использовать эту информацию в коде робота. Допустим, если стопа нет, то выставить его.
Еще может глупый вопрос, но обязательно ли выводить данные GetActiveOrders() через ShowMessage?
Чтобы не создавать новые темы, хотел бы в этой ветке задать вопрос.
Может ли кто-то показать, как на практике использовать данные функции GetActiveOrders(), например, мне нужно узнать есть ли открытый Стоп по роботу и самое главное как использовать эту информацию в коде робота. Допустим, если стопа нет, то выставить его.
Еще может глупый вопрос, но обязательно ли выводить данные GetActiveOrders() через ShowMessage?
-
- Сообщения: 38
- Зарегистрирован: 21 сен 2018, 10:57
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Как узнать количество отложников по инструменту?
Друзья, уточню вопрос, как получить значение (или несколько значений) функции GetActiveOrders() в переменную
Например, как получить в переменную значение Quantity или OrderDirection?
Заранее спасибо за помощь!
Например, как получить в переменную значение Quantity или OrderDirection?
Заранее спасибо за помощь!
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Как узнать количество отложников по инструменту?
Так выше Дмитрий (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;
}
никогда такого не было и вот опять
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей