Разделы



Эффективность симулятора

Торговые симуляторы могут сильно различаться по таким показателям, как мощность, емкость и скорость. Скорость важна при выполнении многих тестов или проведении сложных оптимизаций, например генетических. Скорость также важна при разработке систем для портфельной торговли или при использовании длинных внутридневных серий данных с тысяча­ми сделок и сотнями тысяч числовых данных. В некоторых случаях от ско­рости симулятора зависит сама возможность проведения анализа: ряд за­дач требует поистине огромного объема расчетов, недоступного для мед­ленных программ. Емкость симуляторов определяет ограничения объе­ма задач (количество баров данных, которое может загружаться или объем кода самой системы). Мощность симулятора — показатель, определяющий, как сложные тесты и задания могут выполняться на базах данных цен то­варов или на целых портфелях, что важно для серьезной профессиональ­ной торговли. Достаточно мощный симулятор требуется, например, для использования многих торговых моделей, приведенных в этой книге.

Скорость

Наиболее важный фактор, влияющий на скорость работы системы, — при­рода используемого языка: скриптовый или программный, т.е. определе ние, является ли программа скриптом или используется в интерпретаторе.



 


Современные компиляторы языков общего назначения, таких как C ++, FORTRAN и Pascal /Delphi , переводят написанную пользователем программу в высокоэффективный машинный код, пригодный для прямо­го исполнения процессором; это делает пакеты с использованием таких языков и компиляторов весьма быстрыми. С другой стороны, собствен­ные интерпретируемые языки, такие как Visual Basic for Applications и Easy Language , должны переводиться и подаваться в процессор построчно при исполнении сложного, насыщенного циклами исходного кода. Каков же возможный выигрыш в скорости для компилируемого языка по сравне­нию с интерпретируемым? Мы слышали о системах, которые после пере­вода с собственного языка на C ++ стали работать в 50 раз быстрее!

Дистанционное Обучение Forex - это прекрасная возможность для тебя подготовиться к прибыльной работе на Forex!

Емкость

Если скорость в основном зависит от работы с языком (интерпретируе­мым или компилируемым), то емкость главным образом от используемого 1 6 - или 32-битного программного обеспечения. Старые 16-битные програм­мы часто зависят от предела в 64 кбайт, т.е. практически для тестирования системы может быть загружено не более 15 000 баров данных (около 4 дней тиковых или 7 недель 5-минутных данных S &P 500). Кроме того, если у си­стемы код большого объема, будьте готовы получить сообщение, что про­грамма с ней не может справиться. Современные продукты, написанные на FORTRAN или C ++, работают с соответствующими компиляторами, что позволяет, например, загрузить для тестирования всю историю тиков S &P 500 с появления индекса в 1983 г., если, конечно, у компьютера доста­точно памяти. Кроме того, практически нет ограничений на количество сделок, принимаемых системой, или на сложность и размер самой систе­мы. Все современные компиляторы для FORTRAN , C ++, Pascal /Delphi — полностью 32-битные программы, работающие под 32-битными операци­онными системами, такими как Windows 95, Windows NT или LINUX / UNIX . Любой симулятор, работающий на основе таких компиляторов, способен работать с огромными объемами данных без труда. Поскольку большинство программных пакетов постоянно совершенствуется, пробле­ма   емкости   становится   все   менее   и   менее   принципиальной.

п»ї

Мощность

Различия в мощности симуляторов главным образом зависят от языка программирования. Для начала рассмотрим язык, но не в аспекте скорос­ти компилируемых и интерпретируемых языков, а в аспекте его возмож­ностей. Можно ли изящно и обстоятельно запрограммировать самую сложную торговую идею? Как правило, примитивные языки не дают всех возможностей, необходимых для кодирования наиболее сложных торго­вых стратегий. К сожалению, наиболее мощные языки сложнее всего изу­чать. Но если человеку удалось овладеть таким языком, как 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 (язык, разработанный для написания экспертных систем).

п»ї

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

 

Читать далее: Надёжность симуляторов