Избранное трейдера SergP
Я уже писал, что у меня сделана C++ DLL, которая получает данные из Lua и пишет их в БД SQLite. Уже писал также, что DLL под Lua делается на раз, и даже приводил коды и шаблон проекта простенькой C++ DLL. Посмотрело несколько тысяч, скачало, аж 12 человек, применят от силы двое. КПД постов, прямо скажем, оч низкий.)
В DLL реализована как связь с Lua, и будет реализована сама стратегия, вот только не решил какая из них. Повторять старые стратегии на новой для меня платформе Quik уже неинтересно, а новых моделей АТС отработано уже несколько. Все моделируется в Python. Часть стратегий не требует сложной математики, и могут быть легко перенесены непосредственно на С++. Другие непосредственно в DLL перенесены быть не могут, т.к. используют пакеты Python — всяческие регрессии и машинное обучение.
В общем, получилось, что DLL является шаблоном для любой стратегии. Все необходимые для АТС данные доступны АТС — реал-тайм данные поступают в DLL непосредственно из терминала, а необходимая история пишется DLL в БД SQLite и читается АТС из базы данных.
server=actxserver('matlab.application.single'); server.Execute(' enableservice (''AutomationServer'', true)');
Признаться уже достал этот 32-битный Quik 7. Работать стало почти невозможно, начал подвисать практически на пустом месте. А если повесить на Quik Lua, а к Lua прицепить DLL, то вообще все эпизодически вставало. DLL-ки, вообще-то, многопоточные и освобождают вызывающие потоки (события) Lua практически за миллисекунды, но если таких событий много Quik встает. Хотя, он и без Lua и DLL тоже регулярно встает.)
Были и другие причины ухода от 32-бит Quik, но это уже связано с брокером и другими факторами.
Итак, новый брокер — новый 64-битный Quik 8.4.1.6. Наконец сбылась мечта идиота!
Что можно сказать, — х64 Quik работает гораздо лучше, все равно временами немного подвисает, но, вроде, некритично. После логин-пароля, прежде чем работать надо подождать, — потоки обезличенных сделок начинают работать только через 3-4 минуты после старта. В общем, с этим все более-менее ОК.
Следующий этап — надо переводить весь подключаемый к Quik софт с х86 на х64, и если есть исходники, то никаких проблем не должно появиться. Если вы не используете в своем софте каких либо дополнительных DLL, то все должно ограничиваться двумя действиями.
1. Меняете в проекте С++ в разделе Файлы ресурсов 32-битную версию файла Lua5.1.lib на 64-битную версию Lua5.1.lib,
2. Выставляете в свой свойствах проекта компиляцию в x64. Можно даже так:
День 1−4. В первые дни после заражения основным симптомом является повышенная температура. У некоторых она может сопровождаться болью в мышцах, сухим кашлем, тошнотой и диареей. Медики предупреждают, что начало болезни может протекать в довольно мягкой форме, из-за чего пациенты ошибочно думают, что это не может быть чем-то серьезным.
День 5−6. У пациентов начинается затруднение дыхания — особенно у пожилых людей с уже существующими проблемами со здоровьем.
Последние две недели на всех мировых рынках резко повысилась активность, количество биржевых данных выросло в 2-3 раза. Из-за этого у многих пользователей терминал QUIK начал безбожно тормозить и виснуть. Сервера брокеров также с трудом переваривают повышение нагрузки и наплыв клиентов, желающих что-либо купить-продать (по слухам кто-то из брокеров висел аж целую неделю))) ).
На Смарт-Лабе появилось несколько постов с советами как избавиться от тормозов. И меня сильно поразила неадекватность предлагаемых действий. Люди готовы покупать новое железо за бешеные деньги, создавать какие-то командные файлы и заниматься прочей ерундой. А нужно всего лишь включить голову и разобраться в причинах тормозов. Когда программисты разрабатывают какую-либо программу, они всегда оптимизируют ее для работы на определенном «средне статистическом» компьютере, закладывая при этом кратный запас по производительности. Если вдруг эта программа (QUIK) начинает неадекватно тормозить и виснуть на обычном современном компьютере — значит дело почти наверняка не в железе, и даже не в самой программе, а в ее конфигурации (настройках). Т.е. нам нужно правильно настроить терминал QUIK , а уже потом апгрейдить железо, менять туда-обратно версии и бухтеть на Смарт-лабе.
Сегодня выходной, можно отвлечься от торговли и поэтому, по мотивам этой темы:
https://smart-lab.ru/blog/598591.php решил написать пост, в котором буду рассматривать возможности компьютерного железа, а не возможность запускать торговый терминал с очистительным ключом)
Почему бы не попробовать решить проблему в лоб? Допустим имеем комп с шести ядерным процессором, 16 Гб оперативки. SSD NMVe подключен к разъёму М.2 и согласно данным фирменной утилиты может иметь скорость записи-чтения более 3 Гб/сек. Теоретически всё должно летать и грузиться быстро. Однако, на практике быстро грузится только Винда)
Запустил Process Monitor, нацелил его на info.exe из дистрибутива Квик 8. По временным меткам определил, что самый тяжелый файл info.log весом 800Мб грузился 35 сек. Иначе говоря, при считывании 4К фрагментов мой «супер-шустрый» SSD работает как обычная флешка со скоростью 22Мб/сек! Дальше ещё интересней. Выдрал со старого компа HDD, подключил его к SATA III на новом компе и проделал тот же тест для 32-битного Квик 6. Каково же было моё удивление, когда оказалось, что жесткий диск выпущенный 12 лет назад показал скорость 32Мб/сек, что почти в полтора раза больше, чем современный SSD. Сказать, что я был опечален, значит ничего не сказать.