SmartQuant Discussion

Automated Quantitative Strategy Development, SmartQuant Product Discussion and Technical Support Forums
It is currently Fri Aug 07, 2020 6:15 pm

All times are UTC + 3 hours




Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Thu Oct 04, 2012 8:18 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
Добрый день!

у меня вопрос по поводу скорсоти симуляции.

мои параметры:
- Market Data: 1 hour bar (НЕ формируется из тиков, а чистые бары из DataManager);
- Кол-во инструментов = 750
- В каждом инструменте есть открытая позиция, если она закрывается то сразу же переворачивается в другую сторону.
- никакие CancelOrders() или CancelAllOrders() - не использую. для входа Buy()/Sell(). для выхода ClosePosition()

CPU: Phenom x4 3.2 GHz
RAM: 16GB

Симуляция работает оочень медленно: один день - 7 часовых баров (торую Американские стаки) - просчитывается примерно 8 секунд (для всех 750 инструментов, естественно), т.е три года будет считаться примерно 8 сек*750 дней = 6000 секунд = 100 мин. короче, очень долго.

сразу скажу: подозрительную математику, типа АТРов и т.д. закоментил - скорость не увеличилась. дело не в ней.

мой основной вопрос - это как ускорить? ведь эта скорость прсото нереальна для работы. я уже не говорю про оптимизацию...

попробовал следующее:
если в Options->Memory Management убрать галку Enable built-in portfolio performance, то скорость симуляции возрастает раз в 20, так за 8 секунд просчитывает уже целый месяц.
т.е. выходит что восновном проблемы со скоростью изза подсчета еквити, ПнЛ, дродауна.
я так понял что именно для ускорения подсчетов была придумана опция "Enable interval performance update"? пробовал включить ее с параметрами 86400(день) или 604800(неделя) - ничего не помогло - скорость осталась прежней, но в перформансе чисто визуально я вижу что более грубые стали графики - подсчеты по дням или неделям соответсвенно.

пробовал ставить галку "remove done orders...." - не помогло.

т.е. у меня два вопроса
1. "Enable interval performance update" - зачем опция нужна кроме как для визуальной разницы в перформансе
2. и главный: как мне можно увеличить скорость? это очень критично.

спасибо!


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 10:28 am 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Сергей ответить про опции и их влияние, а так общий ответ на ваш вопрос - http://smartquant.com/cpp.php

Сейчас вы переносим все это на .net . Скорость немного ниже, чем в с++, но все равно на порядки выше...


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 11:22 am 
Offline

Joined: Wed Oct 08, 2003 1:06 pm
Posts: 833
1) разница не только визуальная. если бы у вас были не бары, а трейды для 750 инструментов, то серия equity в performance была бы очень длинной (она обновляется на каждый трейд) и память бы кончилась очень быстро.

2) я попробую написать простую байселл стратегию для 750 инструментов и посмотрю, что можно сделать со скоростью. единственное, что можно проверить прямо сейчас - это, что опция Update UI during Simulation отключена (она находится возле кнопки Run)


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 11:39 am 
Offline

Joined: Wed Oct 08, 2003 1:06 pm
Posts: 833
простая стратегия, которая на каждый бар покупает или продает у меня работает 30 секунд. 750 инструментов и 6000 часовых баров в каждом.

такое чувство, что проблема со скоростью у вас может быть в самой стратегии. попробуйте, пожалуйста, какую-нибудь совсем простую стратегию запустить на тех же данных, типа бай селла.


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 1:48 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
Сергей, спасибо.

а в вашей тестовой системе бай/сел учтено что по каждому инструменту позиция всегда открыта? т.е. после выхода из позы всегда происходит переворот.
а, и еще: после прогонки 3х лет на 750 инструментов у меня получилось примерно 320тыс сделок. в вашей системе примерно такой же объем трейдов? выходит что на каждый инструмент в среднем 320000/750 = 426 трейдов за три года.
мне кажется это важно т.к. у меня есть другая стратегия (тоже на часовиках), так в ней трейдов примерно раз в 10 меньше (около 30тыс на 750 бумаг) и она, соответвенно раз в десять быстрее выполняется

если да, то я буду искать проблему у себя, хотя, как я уже говорил, потенциально трудоемкую математику типа подсчет АТРов я отключал и это не помогало.


Last edited by gonchis on Fri Oct 05, 2012 2:23 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 1:53 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
Baraz Sergey wrote:
единственное, что можно проверить прямо сейчас - это, что опция Update UI during Simulation отключена (она находится возле кнопки Run)

Это выключено, конечно же


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 2:02 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
Dr. Anton Fokin wrote:
Сергей ответить про опции и их влияние, а так общий ответ на ваш вопрос - http://smartquant.com/cpp.php

Сейчас вы переносим все это на .net . Скорость немного ниже, чем в с++, но все равно на порядки выше...

Антон, спасибо за ответ.
"на порядки выше" - на самом деле на порядки? т.е. раз в сто быстрее работает? если это так, то это просто замечательно!
должен сказать что OQ гораздо мощнее по функционалу чем его конкуренты, этим мне он и нравится и сильно отбивает желание переходить на другие инструменты, но единственный момент который просто убивает иногда - это скорость тестов. если проблема со скоростью будет решена, то это оставит многие продукты далеко позади!

http://smartquant.com/cpp.php - этим продуктом можно будет пользоваться в пределах той лицензии которая у меня куплена для OQ?


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 2:37 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Про лицензии это в наш офис в Нью-Йорке. Как вы видите, у нас на сайте теперь нет ценника... ;)


Top
 Profile  
 
PostPosted: Mon Oct 08, 2012 4:58 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
gonchis wrote:
Сергей, спасибо.

а в вашей тестовой системе бай/сел учтено что по каждому инструменту позиция всегда открыта? т.е. после выхода из позы всегда происходит переворот.
а, и еще: после прогонки 3х лет на 750 инструментов у меня получилось примерно 320тыс сделок. в вашей системе примерно такой же объем трейдов? выходит что на каждый инструмент в среднем 320000/750 = 426 трейдов за три года.
мне кажется это важно т.к. у меня есть другая стратегия (тоже на часовиках), так в ней трейдов примерно раз в 10 меньше (около 30тыс на 750 бумаг) и она, соответвенно раз в десять быстрее выполняется

если да, то я буду искать проблему у себя, хотя, как я уже говорил, потенциально трудоемкую математику типа подсчет АТРов я отключал и это не помогало.

Сергей, ответите?


Top
 Profile  
 
PostPosted: Tue Oct 09, 2012 11:58 am 
Offline

Joined: Wed Oct 08, 2003 1:06 pm
Posts: 833
Да, действительно. я немного неправильно сгенерировал тестовые данные для 750 инструментов. Сейчас исправил и скорость страшно упала. Будем разбираться. Параллельно пишем новый фреймворк, в котором таких проблем быть не должно вообще.

С уважением,
Сергей.


Top
 Profile  
 
PostPosted: Tue Oct 09, 2012 12:07 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
Baraz Sergey wrote:
Да, действительно. я немного неправильно сгенерировал тестовые данные для 750 инструментов. Сейчас исправил и скорость страшно упала. Будем разбираться. Параллельно пишем новый фреймворк, в котором таких проблем быть не должно вообще.

С уважением,
Сергей.

ясно, будем ждать новострей значит.
новый фреймворк - это вот этот? http://smartquant.com/cpp.php


Top
 Profile  
 
PostPosted: Tue Oct 09, 2012 12:13 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Да, только портированный на .NET


Top
 Profile  
 
PostPosted: Tue Oct 09, 2012 2:42 pm 
Offline

Joined: Tue May 01, 2012 6:46 pm
Posts: 97
Антон, а есть запланированная дата когда этот новый фреймворк под .НЕТ выйдет?


Top
 Profile  
 
PostPosted: Tue Oct 09, 2012 4:53 pm 
Offline

Joined: Tue Aug 05, 2003 3:43 pm
Posts: 6817
Надеемся до нового года что-то да выйдет, хотя бы рабочая бета.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

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:  
Powered by phpBB® Forum Software © phpBB Group