metam
metam личный блог
21 апреля 2018, 13:45

Алготрейдинг. Компьютер для тестов и роботов

Приветствую, коллеги!

Собираюсь переводить рабочие алгоритмы в код, вручную все делать слишком трудоемко. Под тесты и трейд собирается ПК. Прошу подсказать оптимальные для него требования.

Задачи:
1. Несколько терминалов Квик и МТ5.
2. Несложное программирование под Квик и МТ5 на родных языках. Исторические тесты, простые скрипты и автоматическая торговля. Графика примитивная, больше расчеты. Не HFT.
3. В перспективе вероятна установка спецсофта типа TSLab.
4. Стабильная работа в круглосуточном режиме.

Вопросы по конфигурации:
1. Процессор и материнская плата.
Рассматриваю Intel Core i3/5/7 7ххх-8ххх или AMD Ryzen 3/5. Какой минимум по процессору (частоте, ядрам, потокам)? Core i3 8ххх подойдет или уже слаб? Примеры хороших связок процессор + материнская плата очень бы помогли.
2. Минимум по оперативной памяти?
3. Потянет ли встроенная видеокарта (Intel или Vega) графику терминалов?
По остальному примерно понятно. 
Что еще важно при сборке ПК под указанные задачи?

37 Комментариев
  • Antishort
    21 апреля 2018, 15:09
    Если не «Не HFT.» то любой )) Графика терминалов для современных видеокарт это вообще два пальца об асфальт. Ничего собирать не нужно, любой ноутбук от 25 000 рублей подойдёт. Важнее пинг до серверов брокера.

    PS: Ещё раз скажу, что всё вышеперечисленное вообще не относится к HFT, речь об обычных алго. У меня крутится около 400 роботов на 100-150 эмитентах. Ресурсы довольно среднего ноутбука расходуются процентов на 25, не больше. Если что и виснет, так из-за пинга до брокера. Как и в любом бизнесе в трейдинге надо начинать попроще и минимизировать начальные вложения, а то некоторые купят ПК за 150 тыр, восемь мониторов еще на 150, а потому сливают, потому что не понимают, что дело не в ПК и не в мониторах))
    • Чужой
      22 апреля 2018, 04:36
      Antishort,  у некоторых после покупки компа до алготрейдинга даже не доходит)
    • Mrak
      22 апреля 2018, 04:39
      Antishort, Подскажите, пожалуйста, как научиться написать 400 роботов, также как и Вы, с чего начать? Я гуманитарий, у меня не получается написать ни одного самого простого робота ни на одном языке и нет ресурсов (матчасти) для этого
      • Antishort
        22 апреля 2018, 11:29
        Mrak, «Путь в тысячу ли начинается с первого шага» © Какой-то бородатый китаец)) На самом деле я тоже ни хрена не понимал и программировании когда начинал шесть-семь лет назад. Но у меня есть этакая упоротость. Я вот придерживаюсь мнения, что количество переходит в качество. Прозанимайтесь каким-то делом пресловутые 10 000 часов и вы сможете стать профессионалом. Даже учителя не нужны, в сети достаточно и платных и бесплатных материалов по любым темам. Мы живём в удивительное время сверхдоступности информации. Просто кто-то использует интернет как большую помойку, а у кого-то получается выуживать ценнейшую информацию. Первое, что у меня получилось написать это простая скользящая )) И я был рад этому до ж… пы, потому что до того все эти коды были подобны глиняным вывилонским табличкам. Я потратил около 3 лет по 8-10 часов работы, прежде чем что-то стало получаться. Правда была база в виде знаний эконометрики, математики, мат.статистики и пр. Однако, даже если их нет, я уверен, что любой сможет освоить любую профессию, при условии достаточной мотивации. Всегда считал, что 99% успеха это трудоспособность, а вовсе не талант.

        А с чего начать? Скачайте Quick или Transaq или ещё какой-то терминал. Найдите бесплатные примеры кодов, читайте мануалы и пробуйте их модифицировать. Смотрите на результат. Со временем нейронная сеть в мозгу выстроится в нужном порядке и вы сами удивитесь как могли не понимать каких-то очевидных вещей
        • Mrak
          27 апреля 2018, 14:17
          Antishort, благодарю за подробный ответ. 
  • Сергей Андреев
    21 апреля 2018, 15:27
    Ryzen новый только вышел. Я вчера себе заказал связку 2700x + x470 чипсет — в сумме 30 тысяч с копейками, цена — просто подарок за полноценные 8 ядер на 3.7ghz. Есть и подешевле камни из новой серии. А так, конечно, предыдущий комментатор прав.
  • Sergey
    21 апреля 2018, 15:33
    У вас постановка задачи идет изначально неверная. Основной риск у вас вовсе не в железе.
      • Sergey
        21 апреля 2018, 18:16
        metam, в том, что вы технические моменты ставите выше организационных.

        Компьютер, питание, интернет — это было актуально лет 20 назад. Сейчас за 10 минут с карточки можно купить сервер в облаке, которые изнаально лишен всех этих недостатков. Конфигурирование мощности происходит на лету.

        А вы какие то древности обсуждаете. Я сам ИТ специалист. Вам говорю смело — идите в Амазон или Азуру. На дворе 2018 год. И телефоны сейчас умеют мощности, чем большинство персональных компьютеров.

        И по рискам вы смотрите не туда. Вы оцениваете технику, хотя с ней проблем и не будет. А вот организационных проблем у вас будет выше крыше. У вас тут и солянка из разных систем, и языки разные. У вас это будет работать нестабильно. Вы все время будете тратить на контролирование, лишь бы что-то не упало или тихо не отключилось. От такой автоматизации нет никакого толку.

        У вас есть друг программист? Подарите ему 20-30 т.р., чтобы он вам объяснил в какую сторону идти. Чтобы вы через пол года этот сервер на торги не выставили, со словами — «устал от бессонных ночей».
          • Sergey
            22 апреля 2018, 08:39
            metam, конфликтов и не будет. Прораммы не вчера появились.

            Вы опять технику поставили выше остальных моментов. Проблема не в технике и не программах. Но я все выше описал. Имеющий глаза — прочитает.
  • Friend
    21 апреля 2018, 16:07
    Ryzen + любая слабенькая видео так как встроенной нет, большое кол потоков, хорошая частота, ddr4. С любой нагрузкой в трейдинге справится на ура и еще останется. И по бюджету будет не сильно. В пределах 35К можно собрать вполне сносный сервер, а дальше уже вопрос стабильности питания и интернета. 
    • VladMih
      21 апреля 2018, 16:57
      Frend, нагрузка в трейдинге — это ни о чем. ИМХО следует делать упор на нагрузку при оптимизации роботов.
      Для ТСЛаб обязательно х64 (позволяет использовать более 1.5 Гига оперативки) + правильные настройки, плюс процессор приличный (количество ядер имеет значение!).
      За счет одной только правильной настройки компа моего друга (с помощью технарей) производительность выросла в разы!
      Для тяжелого скрипта это мегасупер! )

      Задачка непростая, пришлось повозиться, но оно того стоит и даже большими деньгами такого добиться непросто.
      • Friend
        22 апреля 2018, 04:47
        VladMih, В чем заключалась правильная настройка ? 
        • VladMih
          22 апреля 2018, 09:24
          Frend, посмотрите у них на сайте — там есть описание настроек. Еще есть видео по этой теме. Но ни там, ни там нет  рекомендации однозначной, подбирать надо научным тыком.
          Мы втроём (все трое не тупые) не могли ничего сделать пока спец не взялся.

          PS: Машина относительно крутая, а больше 1 Гига памяти брать отказывалась и проц брала всего процентов до 30-40.
          Сейчас проц — все 6 камней за 90%, память в зависимости от тяжести скрипта и количества параметров, максимально пока видел 3 гига. Это при том, что на виртуалке для системы с лабой выделено 5 Гигов всего.
  • Eldar Shaymardanov
    21 апреля 2018, 16:39
    1. Квику одно ядро, он не может параллелить. Памяти занятой больше, чем 1.5 ГБ я вроде никогда не видел у него.
    2. По МТ не скажу.
    Поэтому лучше взять меньше ядер, но выше частоты.
    ТСЛаб не так сильно нагружает систему.
    Остальное зависит от качества и количества скриптов.
    Так что 4 ядра, частота выше 3.5Ггц, ССД и памяти 8 Гб.
    У меня вообще все крутиться на серверной платформе.
    • VladMih
      21 апреля 2018, 16:59
      Eldar Shaymardanov, не совсем так. См. это
    • Борис Гудылин
      21 апреля 2018, 19:48
      Eldar Shaymardanov, в QUIKе LUA-скрипты роботов прекрасно распределяются и перераспределяются в динамике по разным ядрам.

      forum.quik.ru/messages/forum10/message29998/topic3317/#message29998  

      Если знать особенности динамического распределения памяти в LUA, понимать природу фрагментации памяти и пользоваться управляемой сборкой мусора (collectgarbage), то можно довести занимаемую QUIK виртуальную память до 2 GB, далее чревато. Пока что QUIK — 32-разрядное приложение, с памятью действительно у кого-то может возникнуть напряженка. Но можно использовать несколько QUIKов.
      • Eldar Shaymardanov
        22 апреля 2018, 09:46
        Борис Гудылин, все скрипты индикаторов исполняются в одном потоке.
        По поводу скриптов, исполняемых отдельно, аозмвозм, что и сделали многопоточность.
        На практике не вижу загрузки всех ядер тяжёлым скриптом. Винда 7, 64 бита, 16гб памяти, Ксеон 4 ядерный. При запуске отдельного скрипта чаще квик повисает и не отвечает на тяжёлых скриптах. При этом всего 4 графика на экране, но на каждом есть свой индикатор. И ещё выгрузка таблицы всех сделок на MySQL отдельного сервера через ODBC.
        При этом загрузка редко превышает 30% по всем ядрам. Тяжёлый код в свое время пришлось в DLL выводить.
        Сейчас уже не запускаю роботов, только индикаторы и потом скрипт трейлинга позиции
        • Борис Гудылин
          25 апреля 2018, 19:59

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

          Многими путями, не всегда простыми и очевидными, можно повысить быстродействие своих алгоритмов и системы в целом — на проценты, в разы и даже на порядки. Вынужден был этим заниматься, поскольку мои алгоритмы очень тяжелы в целом, есть даже пока недоступные для современной “бытовой” техники. Другой стимул – желание работать роботами на субминутных ТФ.


          Ну, заменю я свой ПК на более мощный (уже присмотрел вариант), ускорю работу в 10-15 раз, но я ведь уже ускорил работу своих алгоритмов почти в миллион раз и хочется еще большего (резервов уже мало(). Вот такое интересное соотношение между аппаратными и программными возможностями. Поэтому я и не тороплюсь с переходом на более мощный ПК – на слабом лучше заметны слабые места.


          А загубить производительность можно и без особых усилий. Например, в архитектуре QUIK есть уязвимое место – основной поток, в котором, в частности, последовательно выполняются индикаторы и программы асинхронных вызовов (callback). Достаточно в одном из них затеять длительное вычисление и работа QUIK будет просто блокирована.

          Ссылку на другой вариант я давал выше, его можно даже упростить.     

          Еще и разработчики QUIK помогут, например, добавили возможность накопления 65000 свечек истории. Даже штатные индикаторы стали ставиться с задержкой. Кстати, на всякий случай, MT5 стал держать на периферии зрения, хотя когда-то пришел в QUIK из MT4.


          Все-таки строить систему на основе возможностей QUIK нельзя без учета особенностей его архитектуры.

          Чтоб не повторяться, дам ссылку на 2-3 моих комментария в одной теме, может кому пригодится.


           https://forum.quik.ru/messages/forum10/message30518/topic3568/#message30518

           
          Если совсем коротко – индикаторы роботам не нужны, даже вредны – это потенциальные тормоза для всего QUIK. Оставим основной поток для предельно быстрых функций асинхронных выходов, для скорейшего доведения событий до роботов.

          Все роботы (скрипты main) работают в отдельных потоках, одновременно и независимо друг от друга, если только явно не организовать между ними связь. Многоядерность и технология hyper-threading приветствуются. Мне они точно нужны.

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

          Например, доступ к свечкам графика по его идентификатору – анахронизм.

          SLEEP в роботе – тоже анахронизм, лучше я наиграю 15-16 мсек через моментальную передачу асинхронного события (callback, например, завершение сделки или изменение свечки) из основного  потока в поток конкретного робота. Кстати, самое несуразное, что я недавно встретил – попытку программиста встроить SLEEP или эквивалентное по времени зацикливание в скрипт индикатора – по факту, попытку заблокировать QUIK.


          QUIK дает несколько вариантов доступа к источнику данных (текущим и историческим данным торгов). Их можно оценить по времени или размеру накопления некоторых буферов на бирже или у брокера, по событиям, выталкивающим эти буфера в сторону терминала, по их полноте и по времени поступления в программу пользователя. Есть приятные неожиданности. Можно выбрать оптимальный вариант под задачу.

           
          Оперативная память – ее много не бывает. В первую очередь – откажусь от страничного обмена (я и сейчас на слабом ПК его редко использую). Вообще, издавна узким местом компьютеров, mainframe или ПК, был дисковый ввод/вывод, пока там была механика перемещения головок. И примерно таким же узким местом были очереди операций ввода/вывода. Этими факторами рубилась собственно огромная скорость передачи. Что даст SSD – пока наблюдаю.

          • Eldar Shaymardanov
            26 апреля 2018, 18:12
            Борис Гудылин, не умоляю ваших заслуг, но квик сам по себе тормоз еще тот в плане некоторых операций.
            Если совсем коротко – индикаторы роботам не нужны, даже вредны – это потенциальные тормоза для всего QUIK.
            а кто говорит, что индикаторы используются для робота. это для меня. для ручной торговли.

            у меня есть скрипт. по индентификатору график строит метки. метки — уровни из MySQL. при остановке скрипта квик подвисает на 3-4 секунды. загрузка при этом всего 8% CPU.
  • ICEDONE
    21 апреля 2018, 17:37
    Бери ноут с аккумулятором хорошим, процессор крутой не нужен. главное автономность.
  • Niktesla (бывш. Бабёр-Енот)
    21 апреля 2018, 17:51
    возьми на авито ноут битый жизнью за 5 тыщ и не выепывайся.
  • Подойдет б/у за 3-4 тыс. руб., это все мишура, главное метод!
    • VladMih
      21 апреля 2018, 18:21
      Молодой поэт Таджикский, полагаю депозит у вас тоже… б/у.
  • Андрей К
    21 апреля 2018, 18:31
    В трейдинге цена ошибки может быть очень высокой. Несколько раз пронесет, потом накажет. Проверено не раз. Технические проблемы приводят к серьезным последствиям.
    Бу с авито, ноуты, это как то вообще не профессионально. Я даже не приветствую колхоз самосборный. Надежнее конечно заводское решение, но это дорого.
    Понравилась еще идея, описанная выше — аренда серверов. Очень стабильное решение.
    • VladMih
      21 апреля 2018, 19:53
      Андрей К, ничего не вижу плохого в ноуте, если он хороший.
      Ну а по надежности… Нет ничего надежней «колхоза самосборного», если он сделан настоящим мастером из протестированного железа, чтоб вы знали.
      НИКОГДА конвейер не сравнится с ручной работой.

      Аренда серверов — тоже мне «идея». Если депозит приличный, специализированные сервисы для размещения роботов — это единственно верное решение. Но это для торговли и если «приличный», а тут речь идет несколько об иной задаче.

      PS:  бу за 3К — это бред конечно )
  • Vovilnik
    21 апреля 2018, 19:01
    Судя по всему компьютер вам еще не скоро понадобится.
  • Replikant_mih
    22 апреля 2018, 10:15

    По мне так круглосуточные вещи, точнее хостинг роботов — это облачная тема, с какого-то момента другие варианты именно для этих целей не рассматриваю.

    Для тестов тут больше вариантов — тоже можно в облаке (я использую VDS на данный момент), можно на своем компе. Облако в данном случае удобно возможностью масштабирования производительности, доступом с любого устройства и прочим. 

    Пишу я код на ноуте, тесты гоняю на VDS. Пока такой расклад. В соответствии с моим текущим представлением и для моих текущих задач — оптимальный вариант).

  • Альберт
    22 апреля 2018, 15:34
    да любой продающийся компьютер спокойно все это сможет делать, у меня один ноут спокойно трудится на хр и прекрасно тянет и велфлаб и квик.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн