Стратегии и роботы > Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
Уважаемый Дмитрий , подскажите пожалуйста , как поведет себя робот в следующих ситуациях
1. при выполнении 3 вызовов OnUpdate() выполнялась команда EnterLongLimit(1300,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на покупку по 2 штук каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
2. Длинная позиция =6, при выполнении 3 вызовов OnUpdate() выполнялась команда CloseLongLimit(1400,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на продажу по 2 штуки каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
Функция GetQuote() дает информацию только по лучшим котировкам на покупку и продажу. Есть ли какая то недокументированная возможность получить данные по всем котировкам в виде массива или коллекции ?
Вы давали информацию по функции GetActiveOrders() , которая возвращает коллекцию активных заявок. Можно ли как то получить из этой коллекции информацию по количеству и цене каждой заявки ?
1. при выполнении 3 вызовов OnUpdate() выполнялась команда EnterLongLimit(1300,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на покупку по 2 штук каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
2. Длинная позиция =6, при выполнении 3 вызовов OnUpdate() выполнялась команда CloseLongLimit(1400,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на продажу по 2 штуки каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
Функция GetQuote() дает информацию только по лучшим котировкам на покупку и продажу. Есть ли какая то недокументированная возможность получить данные по всем котировкам в виде массива или коллекции ?
Вы давали информацию по функции GetActiveOrders() , которая возвращает коллекцию активных заявок. Можно ли как то получить из этой коллекции информацию по количеству и цене каждой заявки ?
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
Еще один вопросик по лимитам.
При создании заявки в АД я могу нажав кнопку рядом с количеством выбрать из выпадающего списка %Lim(от доступного лимита) , которая расчитает сколько штук я могу купить по инструменту с учетом моих рублевых активов а также ликвидных иструментов , которые есть в моих активах (с учетом их коэффициента риска) за вычетом всех активных заявок. Можно ли как то получить эту информацию в роботе ?
При создании заявки в АД я могу нажав кнопку рядом с количеством выбрать из выпадающего списка %Lim(от доступного лимита) , которая расчитает сколько штук я могу купить по инструменту с учетом моих рублевых активов а также ликвидных иструментов , которые есть в моих активах (с учетом их коэффициента риска) за вычетом всех активных заявок. Можно ли как то получить эту информацию в роботе ?
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
ВАЖНО : Активная заявка на открытие/закрытие позиции у робота может быть только одна (не учитывая стоп).
ВОПРОС
1. при выполнении 3 вызовов OnUpdate() выполнялась команда EnterLongLimit(1300,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на покупку по 2 штук каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
ОТВЕТ
Если заявки не исполняются, то будет одна заявка на 2 штуки
т.к. новая заявка снимаем текущую заявку (возможно со скорректированной ценой)
ВОПРОС
2. Длинная позиция =6, при выполнении 3 вызовов OnUpdate() выполнялась команда CloseLongLimit(1400,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на продажу по 2 штуки каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
ОТВЕТ
Если заявки не исполняются, то будет одна заявка на 2 штуки
т.к. новая заявка снимаем текущую заявку (возможно со скорректированной ценой)
Судя по вопросам, возможно вы хотите реализовать сеточный алгоритм торговли?
В терминале Альфа-Директ4 данный алгоритм реализован в стратегии InvestGrid, доступной
Для скачивания в окне обновления.
ВОПРОС
Функция GetQuote() дает информацию только по лучшим котировкам на покупку и продажу. Есть ли какая то недокументированная возможность получить данные по всем котировкам в виде массива или коллекции ?
ОТВЕТ
Стакан ? Нет такой функции
ВОПРОС
Вы давали информацию по функции GetActiveOrders() , которая возвращает коллекцию активных заявок. Можно ли как то получить из этой коллекции информацию по количеству и цене каждой заявки ?
ОТВЕТ
В списке активных можно увидеть максимум 2 заявки (т.к. робот больше 2 заявок не может выставить): активная + стоп
ВОПРОС
1. при выполнении 3 вызовов OnUpdate() выполнялась команда EnterLongLimit(1300,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на покупку по 2 штук каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
ОТВЕТ
Если заявки не исполняются, то будет одна заявка на 2 штуки
т.к. новая заявка снимаем текущую заявку (возможно со скорректированной ценой)
ВОПРОС
2. Длинная позиция =6, при выполнении 3 вызовов OnUpdate() выполнялась команда CloseLongLimit(1400,2) , вопрос в том , что мы получим в итоге ?
1. 3 лимитных заявки на продажу по 2 штуки каждая
2. 1 заявку на 2 штуки
3. 1 заявку на 6 штук
ОТВЕТ
Если заявки не исполняются, то будет одна заявка на 2 штуки
т.к. новая заявка снимаем текущую заявку (возможно со скорректированной ценой)
Судя по вопросам, возможно вы хотите реализовать сеточный алгоритм торговли?
В терминале Альфа-Директ4 данный алгоритм реализован в стратегии InvestGrid, доступной
Для скачивания в окне обновления.
ВОПРОС
Функция GetQuote() дает информацию только по лучшим котировкам на покупку и продажу. Есть ли какая то недокументированная возможность получить данные по всем котировкам в виде массива или коллекции ?
ОТВЕТ
Стакан ? Нет такой функции
ВОПРОС
Вы давали информацию по функции GetActiveOrders() , которая возвращает коллекцию активных заявок. Можно ли как то получить из этой коллекции информацию по количеству и цене каждой заявки ?
ОТВЕТ
В списке активных можно увидеть максимум 2 заявки (т.к. робот больше 2 заявок не может выставить): активная + стоп
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
ВОПРОС
При создании заявки в АД я могу нажав кнопку рядом с количеством выбрать из выпадающего списка %Lim(от доступного лимита) , которая расчитает сколько штук я могу купить по инструменту с учетом моих рублевых активов а также ликвидных иструментов , которые есть в моих активах (с учетом их коэффициента риска) за вычетом всех активных заявок. Можно ли как то получить эту информацию в роботе ?
ОТВЕТ
Нет. Это отдельный запрос на сервер, он обрабатывается долго (и за один проход OnUpdate() не исполнится)
Есть функция, которая получает количество денег по портфелю (разделу)
var money = GetCurrencyPosition(RazdelGroupType.MICEX);
RazdelGroupType– тип рынка,
• MICEX – Рынок ценных бумаг
• FORTS – ФОРТС
• SELT – Валютный рынок
При создании заявки в АД я могу нажав кнопку рядом с количеством выбрать из выпадающего списка %Lim(от доступного лимита) , которая расчитает сколько штук я могу купить по инструменту с учетом моих рублевых активов а также ликвидных иструментов , которые есть в моих активах (с учетом их коэффициента риска) за вычетом всех активных заявок. Можно ли как то получить эту информацию в роботе ?
ОТВЕТ
Нет. Это отдельный запрос на сервер, он обрабатывается долго (и за один проход OnUpdate() не исполнится)
Есть функция, которая получает количество денег по портфелю (разделу)
var money = GetCurrencyPosition(RazdelGroupType.MICEX);
RazdelGroupType– тип рынка,
• MICEX – Рынок ценных бумаг
• FORTS – ФОРТС
• SELT – Валютный рынок
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
Спасибо за ответы
То что будет max 2 заявки , я понял
Поясню подробнее
var orders = GetActiveOrders();
var count = orders.Count;
ShowMessage(orders.Count);
for (int i = 0; i < count; i++)
ShowMessage(orders[i]);
Мне нужно по каждой заявке получить подробную информацию - цену , количество и тип (Buy,Sell)
Как получить цену я разобрался - orders[i].Price
Хотелось бы узнать в каких свойствах хранятся данные по количеству и типу заявки ?
Задача стоит в автоматизации торговли на спреде низколиквидных инструментов (облигации , паевые фонды)
Дело в том , что заявки на покупку , продажу нужно выставлять не по лучшим ценам а сразу за маркетмэйкером. А его позиция как правило отстоит на несколько шагов от лучших цен.И без скана стакана ее никак не определить. Поэтому ,может учтете мое пожелание и в будущем добавите возможность получить доступ к стакану. Это не просто моя блажь а жизненная необходимость
oxi писал(а):ВОПРОС
Вы давали информацию по функции GetActiveOrders() , которая возвращает коллекцию активных заявок. Можно ли как то получить из этой коллекции информацию по количеству и цене каждой заявки ?
ОТВЕТ
В списке активных можно увидеть максимум 2 заявки (т.к. робот больше 2 заявок не может выставить): активная + стоп
То что будет max 2 заявки , я понял
Поясню подробнее
var orders = GetActiveOrders();
var count = orders.Count;
ShowMessage(orders.Count);
for (int i = 0; i < count; i++)
ShowMessage(orders[i]);
Мне нужно по каждой заявке получить подробную информацию - цену , количество и тип (Buy,Sell)
Как получить цену я разобрался - orders[i].Price
Хотелось бы узнать в каких свойствах хранятся данные по количеству и типу заявки ?
oxi писал(а):ОТВЕТ
Стакан ? Нет такой функции
Задача стоит в автоматизации торговли на спреде низколиквидных инструментов (облигации , паевые фонды)
Дело в том , что заявки на покупку , продажу нужно выставлять не по лучшим ценам а сразу за маркетмэйкером. А его позиция как правило отстоит на несколько шагов от лучших цен.И без скана стакана ее никак не определить. Поэтому ,может учтете мое пожелание и в будущем добавите возможность получить доступ к стакану. Это не просто моя блажь а жизненная необходимость
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
Функции работы с заявками
GetActiveOrders() – запрос списка активных заявок по роботу.
OrderType – тип
OrderDirection – направление
Price - цена
PriceAdditional – дополнительное значение цены (при BRS)
Quantity - количество
Sent – отправлино / неотправлено
OperationState - статус
AvailableActions – название действия (команды)
AvailableSuperActions – название сигнала
NumEDocument – номер
Получим следующий результат
OrderType = LMT
OrderDirection = Buy
Price = 22596
PriceAdditional – нет значения для LMT
Quantity = 1
Sent = True
OperationState = OrderAccepted
AvailableActions = EnterLongLimit
AvailableSuperActions = EnterLong
NumEDocument = 2876533381
GetActiveOrders() – запрос списка активных заявок по роботу.
OrderType – тип
OrderDirection – направление
Price - цена
PriceAdditional – дополнительное значение цены (при BRS)
Quantity - количество
Sent – отправлино / неотправлено
OperationState - статус
AvailableActions – название действия (команды)
AvailableSuperActions – название сигнала
NumEDocument – номер
Код: Выделить всё
var orders = GetActiveOrders();
var count = orders.Count;
for (int i = 0; i < count; i++)
{
ShowMessage( String.Format( " {0} {1} {2} {3} {4} {5} {6} {7} {8} {9}",
orders[i].OrderType,orders[i].OrderDirection,orders[i].Price,orders[i].PriceAdditional,
orders[i].Quantity,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
Sent = True
OperationState = OrderAccepted
AvailableActions = EnterLongLimit
AvailableSuperActions = EnterLong
NumEDocument = 2876533381
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
Хотелось бы эти и другие скрытые возможности в документацию
никогда такого не было и вот опять
Re: Вопросы к Дмитрию (oxi) по EnterLongLimit ,CloseLongLimit
oxi писал(а):Функции работы с заявками
GetActiveOrders() – запрос списка активных заявок по роботу.
Quantity - количество
Quantity - это , насколько я понял , первоначальное количество . А остаток заявки как то можно узнать ?
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя