Стратегии и роботы > Частичное исполнение заявки

Обсуждение, описание стратегий и роботов, идеи для стратегий
nordseven
Сообщения: 39
Зарегистрирован: 05 мар 2016, 19:39
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Частичное исполнение заявки

Непрочитанное сообщение nordseven » 12 апр 2018, 01:48

Добрый вечер! Не нашел ответов на свои вопросы на форуме.

1. Если заявка на покупку EnterLong(5) исполняется частично к примеру 3 контракта, как поведет себя НЕ исполненная часть заявки?
Будет дальше висеть пока не сниму ручками? А если ручками сниму отменится заявка на 5 контрактов или на 2 не купленных?
2. Что в случае вопроса №1 сделает StopLoss заявка?
Выставится на количество купленных контрактов или будет ждать пока не будут куплены оставшиеся контракты и уже потом выставится?
Если я ручками через CancelActiveOrders(true) заявку на не купленные контракты снимаю, StopLoss выставится автоматически или нужно будет самому ставить?
3. Что в случае вопроса №1 сделает "StopLoss+TakeProfit" заявка?
Судя по тому что одновременно может стоять только две заявки, то из-за частично исполненной заявки на покупку, заявка Take-Profit не выставится... Выставится ли заявка TakeProfit автоматически, если я опять же сниму заявку на не купленные контракты?

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

Re: Частичное исполнение заявки

Непрочитанное сообщение evge » 12 апр 2018, 08:53

Честно скажу, сам об этом всём думал не раз, но не запускал работающих роботов на много контрактов по фьючерсам. Запускаю на тесты По 1 - 2 контракта максимум и одновременно много роботов на разных инструментах, но вот одного робота на большой объем не запускал, ещё при этом надо дождаться такой ситуации, что весь ордер не выкупят.

Поэтому ситуацию ещё поймать надо суметь.

Но всегда об этом задумывался и хотел те же вопросы задать на вебинарах по роботам. Но благополучно забывал записать вопросы или задать их в эфире.

Что думаю я:

1. Тестирование конечно же покажет что всё исполнилось. Но нам это не интересно :)
2. Скорее всего, пока не исполнится весь объем заявки ни тейк ни стопы не выставятся.
3. Интересно ещё и то, что при этом показывает CurrentPosition(). Надеюсь, что там не 0 при частичном исполнении, иначе это может быть проблемой для стратегий с проверкой текущей позиции в условиях для выхода из позиций (взятие тейка или переворот).

Надеюсь, Дмитрий (oxi) прокомментирует вопросы.
никогда такого не было и вот опять

nordseven
Сообщения: 39
Зарегистрирован: 05 мар 2016, 19:39
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Частичное исполнение заявки

Непрочитанное сообщение nordseven » 12 апр 2018, 10:55

Будем надеяться... не хочется словить такую ситуацию и не быть к этому готовым.
Стоп наверняка выставляется после исполнения всей заявки иначе бы ему приходилось каждый раз перевыставляться в соответствии с CurrentPosition. Хотя конечно и такое может быть.
Ещё интересен момент когда частично закрываешь позицию стоп нужно перевыставлять на меньший объём?

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

Re: Частичное исполнение заявки

Непрочитанное сообщение oxi » 12 апр 2018, 11:54

1. Если заявка на покупку EnterLong(5) исполняется частично к примеру 3 контракта, как поведет себя НЕ исполненная часть заявки?
Будет дальше висеть пока не сниму ручками? А если ручками сниму отменится заявка на 5 контрактов или на 2 не купленных?


Ответ: заявка будет висеть с остатком Buy (2) пока не исполнится полностью или не поступит другой сигнал, который снимет все предыдущие активные заявки. Позиция будет закрыта на исполненный объем = 3
PS: Если задаете конкретное кол-во в EnterLong(5) необходимо задавать жесткие условия на вход = пересечение линий.

2. Что в случае вопроса №1 сделает StopLoss заявка?
Выставится на количество купленных контрактов или будет ждать пока не будут куплены оставшиеся контракты и уже потом выставится?
Если я ручками через CancelActiveOrders(true) заявку на не купленные контракты снимаю, StopLoss выставится автоматически или нужно будет самому ставить?
3. Что в случае вопроса №1 сделает "StopLoss+TakeProfit" заявка?
Судя по тому что одновременно может стоять только две заявки, то из-за частично исполненной заявки на покупку, заявка Take-Profit не выставится... Выставится ли заявка TakeProfit автоматически, если я опять же сниму заявку на не купленные контракты?


Ответ: Stop выставляется в момент после того, как исполнится EnterLong на полный объем или придет новый сигнал с отменой активных заявок (например, еще раз войти).

Активная очередь выглядит так:
EnterLong()
StopLoss() - стоп ждет исполнения или отмены EnterLong новым сигналом

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

Re: Частичное исполнение заявки

Непрочитанное сообщение evge » 12 апр 2018, 12:21

Что будет показывать CurrentPosition() если заявка выполнена частично?
никогда такого не было и вот опять

nordseven
Сообщения: 39
Зарегистрирован: 05 мар 2016, 19:39
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Частичное исполнение заявки

Непрочитанное сообщение nordseven » 12 апр 2018, 12:35

Позиция будет закрыта на исполненный объем = 3


В этом месте не понятно. Закрыта в смысле заявка исполнена на 3 контракта? Я буду в лонге +3?

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

Re: Частичное исполнение заявки

Непрочитанное сообщение oxi » 12 апр 2018, 13:17

В этом месте не понятно. Закрыта в смысле заявка исполнена на 3 контракта? Я буду в лонге +3?


Если последует команда CloseLong или EnterShort, то открытая позиция будет закрыта на 3 контракта (т.е. на реально исполненную величину)

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

Re: Частичное исполнение заявки

Непрочитанное сообщение oxi » 12 апр 2018, 13:18

Что будет показывать CurrentPosition() если заявка выполнена частично?


CurrentPosition обновляется по приходу сделок по заявке

nordseven
Сообщения: 39
Зарегистрирован: 05 мар 2016, 19:39
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Частичное исполнение заявки

Непрочитанное сообщение nordseven » 13 апр 2018, 10:44

Вчера начал проверять частичное закрытие сделок. После выполнения CloseShort(1) закрывает один контракт но StopLoss остается на прежнее количество контрактов. Стоплос нужно самому перевыставлять после исполнения CloseShort(1).
И тут два варианта:
1. сразу ставить новый стоп не дожидаясь исполнения
2. ждать onUpdate() чтобы убедиться, что CloseShort(1) исполнился. Но у меня 5мин тайм фрейм и это капец сколько времени. (Вот здесь кстати тоже секундный таймфрейм был бы кстати).

Владимир
Сообщения: 84
Зарегистрирован: 14 ноя 2016, 02:17
Благодарил (а): 3 раза
Поблагодарили: 5 раз

Re: Частичное исполнение заявки

Непрочитанное сообщение Владимир » 13 апр 2018, 12:12

Добрый день в ответ на Ваш вопрос выкладываю скрин с торгующего робота на реальный счёт. Внимательней смотрите название роботов groal_sma_V2.3.2 это советник , а groal_sma_V2.3.3 этот робот торговал на реальные деньги. Маркет заявка EnterLong() или EnterShort(), но на скринах видно, что робот считает число открытых позиций.
Вложения
скрин с торгового робота.jpg
скрин с торгового робота.jpg (261.27 КБ) 21543 просмотра
скрин с торгового робота2.jpg
скрин с торгового робота2.jpg (89 КБ) 21543 просмотра


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

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

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