КРАШ -ТЕСТ терминала

Страницы: 1
RSS
КРАШ -ТЕСТ терминала
 
Добрый день,
----------------------
Написал скрипт краш-теста.
В целом результатами доволен.
Рассказываю подробности.
----------------------------,
Условия теста:
демо-сервер
версия терминала 9.7 ( тормозная)
--------------------
Робот на каждую принятую сделку по колбеку OnParam рассчитывает  цену на 20 шагов ниже цены последней сделки
определяет максимальное число контрактов для текущего инструмента функцией CalcBuySell
и выставляет заявку на покупку одного контракта по расчетной цене.
При очередном вызове колбека , робот  снимает все выставленные ранее заявки ,
проверяет отсутствие неисполненной транзакции и открытой заявки по текущему инструменту
и  при положительном решении, выставляет новую заявку.
--------------------
Результаты теста(фрагмент):
Код
31381.046s,240us, 28, 117, 30, 46.us, SFH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673016,#tparam=1,NNsec=908
31381.172s,613us, 55, 417, 47, 75.us, SiH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673018,#tparam=3,NNsec=908
31381.173s,284us, 30, 139, 24, 60.us, MXH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673019,#tparam=2,NNsec=908
31381.173s,214us, 19, 119, 24, 34.us, MMH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673020,#tparam=1,NNsec=908
31381.177s,361us, 37, 206, 33, 54.us, RMH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673022,#tparam=2,NNsec=908
31381.177s,210us, 22, 105, 28, 38.us, RIH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673023,#tparam=1,NNsec=908
31381.244s,385us, 53, 155, 83, 81.us, CRH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673026,#tparam=2,NNsec=908
31381.244s,195us, 21, 81, 28, 39.us, MXH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673027,#tparam=1,NNsec=908
31381.247s,312us, 36, 156, 38, 55.us, SVH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673029,#tparam=1,NNsec=908
31381.249s,231us, 25, 106, 32, 43.us, SiH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673031,#tparam=1,NNsec=908
31381.254s,3448us, 3115, 216, 41, 3131.us, USD000UTSTOM,ns_CETS=15,sumT=8188,Norder=277953,jc=2673033,#tparam=4,NNsec=908
31381.257s,2656us, 2414, 159, 24, 2429.us, CNYRUB_TOM,ns_CETS=15,sumT=8188,Norder=277953,jc=2673034,#tparam=3,NNsec=908
31381.26s,3379us, 3135, 159, 24, 3150.us, EUR_RUB__TOM,ns_CETS=15,sumT=8188,Norder=277953,jc=2673035,#tparam=2,NNsec=908
31381.263s,2509us, 2292, 137, 23, 2307.us, USDCNY_TOM,ns_CETS=15,sumT=8188,Norder=277953,jc=2673036,#tparam=1,NNsec=908
31381.37s,465us, 60, 223, 90, 83.us, USDRUBF,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673037,#tparam=3,NNsec=908
31381.37s,181us, 22, 75, 27, 39.us, TTH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673038,#tparam=2,NNsec=908
31381.37s,184us, 22, 85, 24, 38.us, SiH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673039,#tparam=1,NNsec=908
31381.373s,496us, 37, 140, 34, 54.us, GKH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673041,#tparam=1,NNsec=908
31381.374s,389us, 34, 192, 70, 64.us, GKH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673043,#tparam=2,NNsec=908
31381.375s,186us, 25, 77, 25, 42.us, SPH3,ns_SPBFUT=35,sumT=8188,Norder=277953,jc=2673044,#tparam=1,NNsec=908
Время работы теста составило примерно 12000 секунд( примерно 1.5 часа)
За это время колбеки вызывались 2 млн 670 тысяч раз,
выставлено и снято заявок 278 тысяч
инструментов  908 (акции валюта фьючерсы)
среднее время на одну заявку составляет примерно 2.5 ms, максимальное 8 ms, минимальное 0.25 ms.
из 2.5 ms одного цикла выставления заявки, 2.2 ms уходит на  функцию CalcBuySell.
уж не знаю, что туда напичкали, если на все остальное у робота уходит в 10 раз меньше,чем на эту функцию.
На обработку колбеков заявок и транзакций уходит 0.05 до 0.1 ms.
-------------------------------------------
Размер скрипта 600 строк LUA+ DLL для обработки событий и расчета времени с квантом 0.1 мкс.
 
 
к текущему моменту  в тесте  колбеки вызывались 3 млн 700 тысяч раз,
выставлено и снято  380 тысяч заявок по 922  инструментам
 
CalcBuySell сломали в версии терминала 10. Производительность снизилась на порядок в сравнении с версией 9.
 
CalcBuySell и в 8-м квике была тормознутой
Надо делать так, как надо. А как не надо - делать не надо.
 
Результаты теста новой версии скорости выставления и снятия заявок торгового робота на демо сервере.
------------------------
В этой версии робота  колбеки транзакций и заявок исполняются в основном потоке ,
так как время их исполнения менее 100 мкс.
-------------------------
Объем потребляемой скриптом памяти от 01. до 10 МБ  (1400 инструментов)
---------------------
Не создаются новые потоки, кроме main.
В итоге:
число инструментов =1400
время работы 6840 секунд
число выставленных и снятых заявок по всем инструментам 263 тысячи.
число вызовов колбеков 2 млн 687 тысяч
время обработки одной сделки  от 0.0001 до 0.008 сек.

 
 
Оптимизация скрипта позволила за 3000 секунд выставить и снять получить 231 тысячу заявок.
--------------------
При этом заявка выставляю , получаю подтверждение что выставлена, потом подаю транзакцию чтобы снять получаю подтверждение что снята и т д
по всем инструментам по которым совершается сделка на демо счете.
------------------------------
В итоге  более 70 заявок в секунду выставлено и снято.
----------------------------
В итоге моего робота заблокировали на демо сервере. Очевидно он его положил.
--------------------------
Тест завершил.
=====================
Прошу снять блокировку.
 
Цитата
nikolz написал:
В итоге моего робота заблокировали на демо сервере. Очевидно он его положил.

Ну не положил. Скажем так, обратил на себя внимание.

Цитата
nikolz написал:
Прошу снять блокировку.

Уже сняли.
Но нам придется ограничить допустимое количество транзакций в сек.
Страницы: 1
Читают тему
Наверх