SmartQuant Discussion

Automated Quantitative Strategy Development, SmartQuant Product Discussion and Technical Support Forums
It is currently Thu Oct 29, 2020 2:27 am

All times are UTC + 3 hours




Post new topic Reply to topic  [ 435 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 29  Next
Author Message
PostPosted: Tue Dec 28, 2010 7:48 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Нам как-то надо побольше информации. Может быть скриншот окна менеджера заявок, когда они начинают зацикливаться?

Вообще говоря симулятор до сих пор работал корректно. Какие вы данные используете? Трейды, квоты, бары?


Top
 Profile  
 
PostPosted: Tue Dec 28, 2010 8:09 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
И вот еще. Вы говорите, что у вас начинают сыпаться заявки. Заявки генерируются вашей стратегией, симулятор к этому никакого отношения не имеет. Если бы начали сыпаться отчеты о выполнении заявок, тогда, возможно, да.


Top
 Profile  
 
PostPosted: Tue Dec 28, 2010 9:41 pm 
Offline

Joined: Thu Jun 03, 2010 5:15 pm
Posts: 159
Location: Russia
Антон!
Я уверен, что симулятор работает корректно, для понимания своей проблемы я всего лишь спрашиваю - как именно он работает? Как он принимает решение исполнить заявку?

P.S. В коде используется OnQuote. Скриншота под рукой уже нет, опишу словами: Исполненные подряд заявки с разной ценой исполнения: чередование покупок по цене X, продаж по цене Y. X < Y. Заявки лимитные.


Top
 Profile  
 
PostPosted: Tue Dec 28, 2010 9:54 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Симулятору приходи заявка. Он создает для нее отдельный процессор заявки, который, в зависимости от настроек симулятора, проверяет, не может ли заявка выполниться сразу на текущей (последней) цене инструмента, либо подписывается к соответствующим событиям данных. Далее начинает мониторить эти события и проверять, исполняется заявка или нет. Если включен режим симуляции partial fills, то в случае с квотами процессор набирает зявку из объема бидов\асков (то есть использует несколько квот, чтобы полностью исполнить заявку) и, соответственно, размазывает ее по времени, генерируя серию partial fills. В случае со стаканом сразу набирает заявку частичными филлами из уровней стакана.

Там довольно много всякого разного. И настроек довольно много. А вас конкретно что интересует для помощи в вашей проблеме?

И все же не совсем понятно. У нас начинают бесконечно генериться заявки, или они бесконечно начинают исполняться?


Top
 Profile  
 
PostPosted: Tue Dec 28, 2010 10:25 pm 
Offline

Joined: Thu Jun 03, 2010 5:15 pm
Posts: 159
Location: Russia
Четвёртый раз пишу: заявки исполняются :)
Про симулятор понял (примерно), завтра попытаюсь воспроизвести ситуацию и сделать скриншот.


Top
 Profile  
 
PostPosted: Tue Dec 28, 2010 10:29 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Гы. реально интересно посмотреть как это они исполняются. А у вас там не может стоять размер в заявке бесконечный? Тогда на квотах она может может быть исполнена бесконечным числом partial fills :wink: Другое сложно представить...


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 12:54 pm 
Offline

Joined: Thu Jun 03, 2010 5:15 pm
Posts: 159
Location: Russia
Как и обещал - скриншот. Видно, что заявки ставятся внутрь спреда и не залезают в противоположные котировки. Но симулятор их исполняет.


Attachments:
oq_orders.jpg
oq_orders.jpg [ 241.23 KiB | Viewed 5535 times ]
Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 1:14 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Тут, конечно, лучше всего видеть код и данные, но прежде чем перейти к этому этапу давайте вы попробуете завести переменную count = 0 и в тексте каждой заявки писать

count++ + " Entry " + Instrument.Quote
или
count++ + " Exit " + Instrument.Quote

и зашлите скриншот. Тогда будет понятно, разные ли это заявки и могут ли они тут же исполниться.

И еще вопрос. Вы других данных кроме квот не используете? Бары, трейды?


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 1:30 pm 
Offline
Site Admin

Joined: Thu Jul 17, 2003 10:39 am
Posts: 1478
такого эффекта можно добиться следующим кодом:

Code:
public override void OnBar(Bar bar)
   {
      Buy(1);
   }

   public override void OnOrderFilled(Order order)
   {
      switch (order.Side)
      {
         case OrderSide.Buy:
            {
               Sell(1);
            }
         break;
         case OrderSide.Sell:
            {
               Buy(1);
            }
         break;
      }
   }


в Вашем случае заявки лимитные, но они сразу выполняются как маркетные
и в итоге мы получаем StackOverflow

_________________
SmartQuant Development Team


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 2:13 pm 
Offline

Joined: Thu Jun 03, 2010 5:15 pm
Posts: 159
Location: Russia
Вот скриншот.
Я понимаю, что зацикливание из моего кода. Я не понимаю, почему симулятор исполняет заявки по 103.8 и по 103.88.


Attachments:
oq_orders.jpg
oq_orders.jpg [ 350.23 KiB | Viewed 5530 times ]
Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 2:16 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Еще раз главный вопрос. Трейды, бары не используете в симуляции?


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 2:24 pm 
Offline

Joined: Thu Jun 03, 2010 5:15 pm
Posts: 159
Location: Russia
Прошу прощения.
В MarketData солюшена добавлены 1-минутные бары, "Build bars from trades".
В коде стратегии используется OnBarSlice для расчёта индикаторов и OnQuote для расчёта уровней цен лимитных заявок.
Зацикливание происходит в OnFilled, примерно как написал Алексей.


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 2:28 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Сразу надо предупреждать. Попробуйте в настройках Execution Simulator поставить FillOnBar = false и FillOnTrade = false, и возможно, будет вам счастье.


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 2:45 pm 
Offline

Joined: Thu Jun 03, 2010 5:15 pm
Posts: 159
Location: Russia
Тьфу ты, как всё просто было. Да уж, вопросы начинающих.
Можете потереть лишнее обсуждение, достаточно последнего скриншота и вашего ответа.


Top
 Profile  
 
PostPosted: Wed Dec 29, 2010 4:09 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Не, пусть в назидание потомкам останется :wink:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 435 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 29  Next

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group