#73821 - Mon Oct 12 2015 05:04 PM
Проверка существования ордера?
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Здравствуйте, несколько вопросов 1)Выставляю ордер position.CloseAtStop(source.Bars.Count + 1,price, "StopOrderNo123"); Как на следующем баре понять что такой ордер существует (открыт или уже исполнен) - дошел до биржи? 2) position.CloseAtMarket также создает ордер, информацию о котором можно получить? 3) Как можно получить список всех ордеров открытых\исполненных?
Отредактировано user5 (Tue Oct 13 2015 09:55 AM)
|
Наверх
|
|
|
|
#73938 - Thu Oct 15 2015 11:35 PM
Re: Проверка существования ордера?
[Re: user5]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Тут и тут узнал что не без проблем можно использовать ISecurityRt. В случае локального прогона по файлу котировок - никак.
Отредактировано user5 (Thu Oct 15 2015 11:35 PM)
|
Наверх
|
|
|
|
#73954 - Fri Oct 16 2015 02:01 PM
Re: Проверка существования ордера?
[Re: user5]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Только вот остался вопрос - как тестировать (оптимизировать)стратегию с лимитными ордерами?
Насколько я понимаю, никак. Поправьте пожалуйста, если не прав.
|
Наверх
|
|
|
|
#73958 - Fri Oct 16 2015 03:20 PM
Re: Проверка существования ордера?
[Re: user5]
|
enthusiast
Registered: Wed Jan 18 2012
Записи: 256
|
Если используются стандартные методы открытия/закрытия позиции (не реалтайм) то точно так же и остальные скрипты. Вообще не понятно в чем задача. Проверять выставилась ли заявка на биржу при тесте на истории, это как?
|
Наверх
|
|
|
|
#73959 - Fri Oct 16 2015 03:40 PM
Re: Проверка существования ордера?
[Re: Kermit]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
>Проверять выставилась ли заявка на биржу при тесте на истории, это как?
Извините, уточняю контекст. Например, по стратегии необходимо выставить лимитник, но при недостижении его ценой в течении времени Т - снимать.
Positions.GetLastActiveForSignal и подобные функции работают с позициями, похожих операций с ордерами (не в RT) не нашел
Отредактировано user5 (Fri Oct 16 2015 03:49 PM)
|
Наверх
|
|
|
|
#73968 - Fri Oct 16 2015 09:58 PM
Re: Проверка существования ордера?
[Re: user5]
|
enthusiast
Registered: Wed Jan 18 2012
Записи: 256
|
if( LongPosition == null &&...всякие условия... && продолжительностьСигнала < T) sec.Position.BuyAtPrice(i+1, quant, price, "Long") По прошествии времени Т заявка будет снята.
|
Наверх
|
|
|
|
#73972 - Sat Oct 17 2015 09:16 AM
Re: Проверка существования ордера?
[Re: Kermit]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
стратегии с ISecurityRt не тестируются на истории. В остальном вам уже ответили. Используйте таймфрейм меньше и сжатие. тогда сможете снимать заявку через заданное число секунд или минут.
_________________________
__
|
Наверх
|
|
|
|
#73978 - Sat Oct 17 2015 04:01 PM
Re: Проверка существования ордера?
[Re: Kermit]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Спасибо за ответы, но if( LongPosition == null &&...всякие условия... && продолжительностьСигнала < T) sec.Position.BuyAtPrice(i+1, quant, price, "Long") По прошествии времени Т заявка будет снята. Насколько я понял код, в результате получу кучу лимитных ордеров на покупку и прекратят они создаваться, когда условие на Т перестанет выполняться. Останется молиться, чтоб цена до них никогда не дошла. Например, если базовый таймфрейм = 1 минута, Т = 10 минут, то в худшем случае будет висеть 10 лимитных ордеров? Используйте таймфрейм меньше и сжатие. тогда сможете снимать заявку через заданное число секунд или минут. Ага, со сжатием познакомился, отсчет времени пока понятен, не ясно как обращаться к ордеру (не в RT).
Отредактировано user5 (Sat Oct 17 2015 04:02 PM)
|
Наверх
|
|
|
|
#73986 - Sat Oct 17 2015 11:50 PM
Re: Проверка существования ордера?
[Re: user5]
|
enthusiast
Registered: Wed Jan 18 2012
Записи: 256
|
Откуда возьмется эта куча??? И в примере который я привел будет выставлена 1 заявка, которая будет снята через 10 баров, если Т = 10. Мне кажется, что у вас общее непонимание логики ТСЛаба. В ней нет никаких ордеров, есть позиции. И метод называется Position.Buy(Sell)AtPrice. И совсем неспроста в названии нет слова "order".
|
Наверх
|
|
|
|
#73989 - Sun Oct 18 2015 07:07 AM
Re: Проверка существования ордера?
[Re: Kermit]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
никак не обратиться к ордеру если не РТ режим. А если вы полезете к ордерам, то придется много переделать. В общем я полагаю вы забиваете себе голову и нам тоже. Опишите цель этих изысканий, а то явно есть непонимание азов.
_________________________
__
|
Наверх
|
|
|
|
#74006 - Mon Oct 19 2015 11:38 AM
Re: Проверка существования ордера?
[Re: Kermit]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Вы правы, я недавно познакомился с TSLab и успел локально потестить простейшие стратегии. Сейчас пытаюсь накодит что-нибудь существенное, но поскольку документация очень скромная (кроме статей на rusalgo.com), то возникают подобные вопросы.. Заранее благодарю за терпение... Откуда возьмется эта куча??? И в примере который я привел будет выставлена 1 заявка, которая будет снята через 10 баров, если Т = 10. Мне кажется, что у вас общее непонимание логики ТСЛаба. В ней нет никаких ордеров, есть позиции. И метод называется Position.Buy(Sell)AtPrice. И совсем неспроста в названии нет слова "order". А что такое 'заявка' в вашем сообщении? Если это не позиция, а ордеров не существует, то что это? Следуя описанию и вашему посту , я сделал вывод что Position.BuyAtPrice создает лимитную заявку (ордер). Догадываюсь, что заявка создается только при наличии соединения с биржей (когда есть стакан), что tslab делает при отсутствии стакана (локальные тесты) - не знаю. Судя по тому что к одерам можно обращаться только в RT, делаю вывод что при локальных тестах работа с ордерами ограничена только их выставлением, отсюда в моей голове появляются ограничения на локальное тестирование стратегий с ордерами.
Отредактировано user5 (Mon Oct 19 2015 11:40 AM)
|
Наверх
|
|
|
|
#74008 - Mon Oct 19 2015 12:06 PM
Re: Проверка существования ордера?
[Re: user5]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
никак не обратиться к ордеру если не РТ режим. А если вы полезете к ордерам, то придется много переделать. В общем я полагаю вы забиваете себе голову и нам тоже. Опишите цель этих изысканий, а то явно есть непонимание азов. Про ордера понял -спасибо. Переделывать мне пока особо нечего.. А цель примерно такая - по стратегии необходимо выставить лимитник, но при недостижении его ценой в течении времени Т - снимать. Как это сделать в RT понятно, как это сделать так чтобы можно было протестировать на истории - не понятно.
|
Наверх
|
|
|
|
#74009 - Mon Oct 19 2015 01:02 PM
Re: Проверка существования ордера?
[Re: user5]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
используйте таймфрейм 1 секунда. расчеты делайте через сжатие. так вы можете почти без проблем сделать то что хотите. время отсекайте по бару на котором выставили сигнал. никаких фокусов с реалтаймом. Все РТ скрипты не тестируются никак. Только реал. Все.
_________________________
__
|
Наверх
|
|
|
|
#74015 - Mon Oct 19 2015 01:56 PM
Re: Проверка существования ордера?
[Re: ra81]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
... котором выставили сигнал... Я правильно понимаю, что вы говорите про эмуляцию ордеров, т.е. самостоятельно делаю отсечку по времени и каждую секунду, пока время не истекло проверяю текущее значение цены, если целевое значение достигнуто - отправляю BuyAtMarket(). Если же время истекло, а цена не дошла до нужной, прекращаю BuyAtMarket. Примерно так?
|
Наверх
|
|
|
|
#74019 - Mon Oct 19 2015 02:24 PM
Re: Проверка существования ордера?
[Re: ra81]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Так я маркет отправлю когда цена дойдет до нужной и только тогда исполнение будет.
Про лимитку вы говорите то же самое что и Kermit, и тут меня немного клинит. Получается что лимитка (BuyAtPrice) висит только в течении одного бара и на следующем уже отменяется??? Т.е. пока я отправляю BuyAtPrice, лимитка существует, как только перестаю - ее нет?
Такое поведение только на локальных тестах, а на RT лимитка живет больше одного бара?
Отредактировано user5 (Mon Oct 19 2015 02:26 PM)
|
Наверх
|
|
|
|
#74020 - Mon Oct 19 2015 02:33 PM
Re: Проверка существования ордера?
[Re: user5]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
да именно так и работает ЛЮБОЙ сигнал. пока бар длится он висит. в РТ лимитка висит сколько висит пока не снимается.
_________________________
__
|
Наверх
|
|
|
|
#74021 - Mon Oct 19 2015 02:46 PM
Re: Проверка существования ордера?
[Re: ra81]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
ra81, последний коммент бесценный! . И в завершении, чтобы не расстраивать тех кто будет копипастить. Выходит что код от Kermit локально и на RT даст разное поведение. На RT-получим множество лимитных ордеров ?
Отредактировано user5 (Mon Oct 19 2015 02:47 PM)
|
Наверх
|
|
|
|
#74022 - Mon Oct 19 2015 05:41 PM
Re: Проверка существования ордера?
[Re: user5]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
в обычной схеме вы работаете с сигналами. тслаб не дает сделать два активных сигнала с одним именем. В РТ вы работаете с ордерами и можете хоть как и хоть сколько их наплодить. Тут чисто ваша воля и желание.
_________________________
__
|
Наверх
|
|
|
|
#74061 - Tue Oct 20 2015 05:58 PM
Re: Проверка существования ордера?
[Re: ra81]
|
newbie
Registered: Mon Sep 21 2015
Записи: 35
|
Извиняюсь, есть еще непонимание базовых вещей. Под RT вы имеете ввиду работу через SecurityRT и ЛЮБОЙ сигнал как при локальных тестах так и при работе с биржей висит пока длится бар? И моя фраза 'код от Kermit локально и на RT даст разное поведение' бессмысленна, поскольку с использованием RT (SecurityRT) этот код будет выглядеть иначе? Верно?
|
Наверх
|
|
|
|
|
|