У вас не стоит Flash Player
Page 1 of 2 1 2 >
Настройки
#73821 - Mon Oct 12 2015 05:04 PM Проверка существования ордера?
user5 Offline
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]
user5 Offline
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]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
Только вот остался вопрос - как тестировать (оптимизировать)стратегию с лимитными ордерами?

Насколько я понимаю, никак. Поправьте пожалуйста, если не прав.

Наверх
#73958 - Fri Oct 16 2015 03:20 PM Re: Проверка существования ордера? [Re: user5]
Kermit Offline
enthusiast

Registered: Wed Jan 18 2012
Записи: 256
Если используются стандартные методы открытия/закрытия позиции (не реалтайм) то точно так же и остальные скрипты.
Вообще не понятно в чем задача. Проверять выставилась ли заявка на биржу при тесте на истории, это как?

Наверх
#73959 - Fri Oct 16 2015 03:40 PM Re: Проверка существования ордера? [Re: Kermit]
user5 Offline
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]
Kermit Offline
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
стратегии с ISecurityRt не тестируются на истории. В остальном вам уже ответили. Используйте таймфрейм меньше и сжатие. тогда сможете снимать заявку через заданное число секунд или минут.
_________________________
__


Наверх
#73978 - Sat Oct 17 2015 04:01 PM Re: Проверка существования ордера? [Re: Kermit]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
Спасибо за ответы, но
Originally Posted By: Kermit
if( LongPosition == null &&...всякие условия... && продолжительностьСигнала < T) sec.Position.BuyAtPrice(i+1, quant, price, "Long")
По прошествии времени Т заявка будет снята.

Насколько я понял код, в результате получу кучу лимитных ордеров на покупку и прекратят они создаваться, когда условие на Т перестанет выполняться. Останется молиться, чтоб цена до них никогда не дошла. Например, если базовый таймфрейм = 1 минута, Т = 10 минут, то в худшем случае будет висеть 10 лимитных ордеров?

Originally Posted By: ra81
Используйте таймфрейм меньше и сжатие. тогда сможете снимать заявку через заданное число секунд или минут.

Ага, со сжатием познакомился, отсчет времени пока понятен, не ясно как обращаться к ордеру (не в RT).




Отредактировано user5 (Sat Oct 17 2015 04:02 PM)

Наверх
#73986 - Sat Oct 17 2015 11:50 PM Re: Проверка существования ордера? [Re: user5]
Kermit Offline
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
никак не обратиться к ордеру если не РТ режим. А если вы полезете к ордерам, то придется много переделать. В общем я полагаю вы забиваете себе голову и нам тоже. Опишите цель этих изысканий, а то явно есть непонимание азов.
_________________________
__


Наверх
#74006 - Mon Oct 19 2015 11:38 AM Re: Проверка существования ордера? [Re: Kermit]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
Вы правы, я недавно познакомился с TSLab и успел локально потестить простейшие стратегии.
Сейчас пытаюсь накодит что-нибудь существенное, но поскольку документация очень скромная (кроме статей на rusalgo.com), то возникают подобные вопросы.. Заранее благодарю за терпение...

Originally Posted By: Kermit
Откуда возьмется эта куча???
И в примере который я привел будет выставлена 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]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
Originally Posted By: ra81
никак не обратиться к ордеру если не РТ режим. А если вы полезете к ордерам, то придется много переделать. В общем я полагаю вы забиваете себе голову и нам тоже. Опишите цель этих изысканий, а то явно есть непонимание азов.


Про ордера понял -спасибо. Переделывать мне пока особо нечего.. А цель примерно такая - по стратегии необходимо выставить лимитник, но при недостижении его ценой в течении времени Т - снимать. Как это сделать в RT понятно, как это сделать так чтобы можно было протестировать на истории - не понятно.

Наверх
#74009 - Mon Oct 19 2015 01:02 PM Re: Проверка существования ордера? [Re: user5]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
используйте таймфрейм 1 секунда. расчеты делайте через сжатие. так вы можете почти без проблем сделать то что хотите. время отсекайте по бару на котором выставили сигнал. никаких фокусов с реалтаймом. Все РТ скрипты не тестируются никак. Только реал. Все.
_________________________
__


Наверх
#74015 - Mon Oct 19 2015 01:56 PM Re: Проверка существования ордера? [Re: ra81]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
Originally Posted By: ra81
... котором выставили сигнал...


Я правильно понимаю, что вы говорите про эмуляцию ордеров, т.е.
самостоятельно делаю отсечку по времени и каждую секунду, пока время не истекло проверяю текущее значение цены, если целевое значение достигнуто - отправляю BuyAtMarket().
Если же время истекло, а цена не дошла до нужной, прекращаю BuyAtMarket.

Примерно так?

Наверх
#74018 - Mon Oct 19 2015 02:09 PM Re: Проверка существования ордера? [Re: user5]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
по маркету у вас будет сразу исполнение. Вам нужен лимитный приказ. С ним так можно делать ДА. То есть вы поставили лимитку и ждете заданное число времени. Если время вышло уже НЕ делаете байэтпрайс smile


Отредактировано ra81 (Mon Oct 19 2015 02:10 PM)
_________________________
__


Наверх
#74019 - Mon Oct 19 2015 02:24 PM Re: Проверка существования ордера? [Re: ra81]
user5 Offline
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
да именно так и работает ЛЮБОЙ сигнал. пока бар длится он висит. в РТ лимитка висит сколько висит пока не снимается.
_________________________
__


Наверх
#74021 - Mon Oct 19 2015 02:46 PM Re: Проверка существования ордера? [Re: ra81]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
ra81, последний коммент бесценный! smile. И в завершении, чтобы не расстраивать тех кто будет копипастить. Выходит что код от Kermit локально и на RT даст разное поведение. На RT-получим множество лимитных ордеров ?


Отредактировано user5 (Mon Oct 19 2015 02:47 PM)

Наверх
#74022 - Mon Oct 19 2015 05:41 PM Re: Проверка существования ордера? [Re: user5]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
в обычной схеме вы работаете с сигналами. тслаб не дает сделать два активных сигнала с одним именем. В РТ вы работаете с ордерами и можете хоть как и хоть сколько их наплодить. Тут чисто ваша воля и желание.
_________________________
__


Наверх
#74061 - Tue Oct 20 2015 05:58 PM Re: Проверка существования ордера? [Re: ra81]
user5 Offline
newbie

Registered: Mon Sep 21 2015
Записи: 35
Извиняюсь, есть еще непонимание базовых вещей. Под RT вы имеете ввиду работу через SecurityRT и ЛЮБОЙ сигнал как при локальных тестах так и при работе с биржей висит пока длится бар?

И моя фраза 'код от Kermit локально и на RT даст разное поведение' бессмысленна, поскольку с использованием RT (SecurityRT) этот код будет выглядеть иначе? Верно?

Наверх
Page 1 of 2 1 2 >


Moderator:  ViL, sar