Различия в мощности симуляторов
Различия в мощности симуляторов главным образом зависят от
языка программирования. Для начала рассмотрим язык, но не в аспекте скорости
компилируемых и интерпретируемых языков, а в аспекте его возможностей. Можно ли
изящно и обстоятельно запрограммировать самую сложную торговую идею? Как правило,
примитивные языки не дают всех возможностей, необходимых для кодирования
наиболее сложных торговых стратегий. К сожалению, наиболее мощные языки сложнее
всего изучать. Но если человеку удалось овладеть таким языком, как C++,
возможным становится практически все. Ваш текстовый процессор, программа работы
с таблицами, броузер и сама операционная система, скорее всего, были исходно
написаны на C++ или его предшественнике — Си. Такие языки, как C++ и Object
Pascal (основа Borland Delphi), расширяемы и могут легко быть приведены в
соответствие с требованиями разработки торговых систем с помощью использования
библиотек и дополнительных компонентов. Языки Visual Basic и Easy Language,
хотя и не обладают мощностью многоцелевых объектно- ориентированных языков вроде
C++ и Object Pascal, более легки в изучении и имеют большинство необходимых
возможностей. Гораздо слабее и не вполне достаточны для разработчика
продвинутых систем макроязыки, встроенные в ряд популярных программ построения
графиков, например MetaStock. Как правило, чем мощнее используемый язык, тем
мощнее симулятор.
Вопросы оформления также влияют на мощность симулятора,
особенно важна модульность и расширяемость. Симуляторы, использующие C++ или
Delphi (Object Pascal) как основной язык, чрезвычайно расширяемы и модульны,
поскольку таковы сами языки, спроектированные снизу вверх. Библиотеки классов
позволяют определять новые типы данных и операторов. Компоненты могут
обеспечивать функции в готовых блоках, например управление базами данных или
построение графиков. Даже старинные библиотеки, такие как Numerical Algorithms
Group Library, International Mathematics and Statistics Library и Numerical
Recipes Library, могут обеспечить самые разнообразные потребности. Модули,
называемые User Functions могут быть написаны на Easy Language, а функции,
написанные на других языках (включая C++), могут быть вызваны, если они
записаны в виде DLL (динамической библиотеки ссылок). Макроязыки, с другой
стороны, не столь гибки, что сильно лимитирует их эффективность для разработки
продвинутых систем. С нашей точки зрения, возможность использования модулей,
написанных на другом языке, абсолютно необходима: у разных языков разные
акценты, и даже при использовании мощного языка вроде C++ имеет порой смысл
обратиться к модулям, созданным на другом языке, например таком, как Prolog
(язык, разработанный для написания экспертных систем).
Еще одно важное свойство симуляторов, не связанное с
языками программирования, — способность симулятора работать не только с
индивидуальными финансовыми инструментами, но и с портфелями. Многие продукты
не имеют возможности выполнять оптимизацию целых портфелей, хотя порой это
достижимо при помощи дополнительных модулей. С другой стороны, хорошо
организованный симулятор, как правило, позволяет моделировать торговлю
портфелем различных финансовых инструментов.
Статья размещена в рубрике: Анализ входов и выходов в сделки на финансовых рынках
|