В главах 1 и 2 мы узнали основы количественной торговли и использования инструментов FMZ Quant. В этой главе мы будем реализовывать фактические торговые стратегии. Если работник хочет сделать что-то хорошее, он должен сначала обострить свои инструменты. Чтобы реализовать торговую стратегию, вы должны сначала овладеть языком программирования. Этот раздел сначала представляет основные языки программирования в количественной торговле, а также характеристики каждого языка программирования.
Перед тем, как выучить язык программирования, вы должны сначала понять понятие языка программирования. Язык программирования - это язык, который могут понять и люди, и компьютеры. Это стандартизированный коммуникационный код. Цель языка программирования - использовать человеческий язык для управления компьютером и сказать компьютеру, что мы собираемся делать. Компьютер может выполнять инструкции в соответствии с языком программирования, и мы также можем писать код для выдачи инструкций компьютеру.
Как родители учили нас говорить и учили понимать, что говорят другие люди. После долгого периода обучения и самообучения мы научились говорить, не зная этого, и можем понять смысл речи других детей.
Китайский: Здравствуйте, мир
Английский: Hello World
Французский: Bonjour tout le monde
Если вы используете язык программирования для отображения
Язык C: puts (
Язык Java: System.out.println ((
Язык Python: print (
Вы можете видеть, что компьютерные языки имеют свои специфические правила, и есть много языков, и эти языковые правила являются классификацией языков программирования, которые мы должны объяснить вам сегодня. В каждой категории нам нужно только запомнить самые основные правила. Мы можем использовать эти языки программирования для общения с компьютером и позволить компьютеру выполнять соответствующую стратегию в соответствии с нашими инструкциями.
Для облегчения ссылки и сравнения, выберите количественный язык программирования, который вам подходит.
Мы оцениваем их по функциональной способности, скорости, расширению и трудности обучения. Например, балл от 1 до 5, балл 5 в функциональном диапазоне означает мощный, а 1 балл означает меньшую функциональность. (Как показано выше) Визуальное программирование и EasyLanguage просты в изучении и очень новые; Python имеет мощные возможности расширения и подходит для разработки более сложных торговых стратегий; Программирование C ++ является самым быстрым и более подходящим для высокочастотных трейдеров.
Но для каждого языка программирования, оценка в основном для применения в области количественной торговли. и с субъективной составляющей человека. вы также можете исследовать их сами, далее, мы начнем внедрять эти языки программирования один за другим.
Визуальное программирование существует уже давно. Эта программа, оснащенная различными модулями управления, просто перетаскивая, вы можете создать логику кода, завершить дизайн торговой стратегии, процесс похож на строительные блоки.
Как показано выше, та же процедура - всего несколько строк кода на торговой платформе FMZ Quant визуальное программирование. Это значительно снижает порог программирования, особенно для трейдеров, которые вообще не понимают программирования, что является отличным опытом работы.
Поскольку основная стратегия реализации этого визуального программирования преобразована в C++, это мало влияет на скорость выполнения программы.
Так называемый EasyLanguage относится к языку программирования, уникальному для некоторых коммерциализированных программ для количественной торговли. Хотя эти языки также имеют некоторые объектно-ориентированные функции, они в основном записываются в приложении. С точки зрения грамматики он также очень близок к нашему естественному языку. Для начинающих количественной торговли использование EasyLanguage в качестве отправной точки является хорошим выбором.
Этот тип языка скриптов не имеет проблем с обратным тестированием стратегии и реальным рынком в своем конкретном программном обеспечении, но с точки зрения расширения он часто ограничен. Например, разработчики стратегии не могут вызвать внешние API.
Как показано на рисунке ниже, на Stackoverflow количество доступных основных языков программирования за последние годы не сильно изменилось, и только Python стремительно растет. Python можно использовать для веб-разработки, машинного обучения, глубокого обучения, анализа данных и т. Д. Он стал самым универсальным языком из-за своей гибкости и открытости. То же самое верно и в области количественных инвестиций. В настоящее время глобальные количественные платформы в основном основаны на Python.
Списки и словари базовой структуры данных Python
Для финансовой инженерии наиболее целевой библиотекой является Pandas, с двумя структурами данных, Series и DataFrame, которые идеально подходят для обработки временных рядов.
С точки зрения скорости Python находится в середине игры, медленнее, чем C++, и быстрее, чем EasyLanguage, главным образом потому, что Python - это динамический язык, который работает с нормальной скоростью, как и чистый язык Python.
Как язык клея, Python является номером один с точки зрения масштабируемости. В дополнение к тому, что он может широко взаимодействовать с другими языками, дизайн расширения API очень прост в использовании. С точки зрения сложности обучения, Python имеет простой синтаксис, высокую читаемость кода и легкий вход.
Затем есть Matlab и R язык. Эти два языка в основном ориентированы на анализ данных. Создатели языка сделали много дизайна для научных операций в грамматике, которая характеризуется естественной поддержкой для количественных торговых операций.
Кроме того, их скорость и масштабируемость относительно низки, поскольку языки Matlab и R работают на уникальной языковой виртуальной машине.
C++ - это язык программирования общего назначения, который поддерживает множество шаблонов программирования, таких как процедурное программирование, абстракция данных, объектно-ориентированное программирование, общее программирование и шаблоны дизайна.
В настоящее время C++ по-прежнему является предпочтительным языком программирования для высокопроизводительной, высокочастотной торговли. Причина проста. Поскольку функции языка C++ проще доступны к базовому слою компьютера, это самый эффективный инструмент для разработки высокопроизводительных систем бэкстестинга и исполнения, которые обрабатывают большое количество данных.
Java/C# - это статические языки, которые работают на виртуальных машинах. По сравнению с C++, здесь нет массива вне границ, нет корредумпа, брошенные исключения могут точно определить местоположение кода ошибки, привести автоматический механизм сбора мусора, не нужно беспокоиться о утечке памяти и так далее. Так что с точки зрения сложности изучения грамматики они также проще, чем C++. С точки зрения скорости, поскольку их виртуальные машины поставляются с JIT-функциями, компилированными во время выполнения, скорость уступает только C++.
Но с точки зрения функциональности, невозможно оптимизировать базовую торговую систему, как C++. С точки зрения производительности расширения, она слабее, чем C++, потому что их расширение должно пройти через мост C, а сами два языка работают на виртуальной машине, поэтому при расширении модуля функций, вам нужно пересечь еще одну стену слоя.
В конце концов, язык количественного программирования не важен, важно идея. Язык FMZ Quant M и язык визуального программирования совершенно не являются проблемой как ступеньки к вхождению в количественную торговлю. После основы, улучшение заключается в непрерывном изучении различных рыночных условий и попытке использовать более базовый язык, такой как C ++.
Каковы преимущества языка Python как инструмента количественной торговли?
Попробуйте написать несколько часто используемых API на языке M?
Следующее сообщение
Я считаю, что с вышеприведенным введением в язык программирования, вы должны знать, как его выбрать, затем в следующих нескольких главах, мы будем разрабатывать количественную торговую стратегию, основанную на классификации языков программирования.