НАДЕЖНОСТЬ СИМУЛЯТОРОВ
Разные торговые симуляторы имеют разную степень надежности и достоверности. Не существует компьютерных программ, полностью гарантированных от ошибок, даже если ее производитель - знаменитая фирма мирового уровня. Кроме того, проблемы возникают при принятии решений в состоянии неустойчивого равновесия - когда в пределах одного и того же бара возникают условия для исполнения различных приказов. Некоторые из этих состояний, например так называемый прыгающий тик (Ruggiero, 1998), могут привести к тому, что система будет казаться лучшей на свете, в то время, как, по сути, она сможет разорить любого. Считается предпочтительным, чтобы симулятор выбирал худший вариант развития событий в неоднозначных ситуациях; таким образом, при начале реальной торговли вероятность приятных сюрпризов будет выше, чем неприятных. Все это сводится к тому, что при выборе симулятора следует выбирать хорошо проверенный, с историей надежной работы и четким описанием того, как программа трактует неоднозначные состояния. Кроме того, обязательно изучите недостатки симулятора и способы их обходить.
...[ ... ]
ВЫБОР
ВЫБОР ПРАВИЛЬНОГО СИМУЛЯТОРА
Если вы серьезно хотите заниматься разработкой продвинутых торговых систем, торговать сильно диверсифицированными портфелями, проводить тестирование индивидуальных контрактов или опционов, вам нужно собраться с силами для изучения программирования - вам нужен си-мулятор, созданный с помощью языков программирования общего назначения, таких как C++ или Object Pascal. Такие симуляторы имеют открытую архитектуру, позволяющую использовать множество дополнений и библиотек: библиотеки по техническому анализу, например от FM Labs (609-261-7357) и Scientific Consultant Services (516-696-3333); библиотеки общих числовых алгоритмов, например от Numerical Recipes (800-872-7423), Numerical Algorithms Group (NAG) (44-1865-511-245) и International Mathematics and Statistics Library (IMSL), в которых хорошо освещена статистика, линейная алгебра, спектральный анализ, дифференциальные уравнения и другие математические приложения. Продвинутые симуля-торы с использованием общих языков программирования также доступны целому миру компонентов и графических средств управления, покрывающих все аспекты от сложного построения графиков и представления данных до продвинутого управления базами данных, и при этом совместимы с C++ Builder и Delphi, а также с Visual Basic и Visual C++.
Если же вам нужно нечто менее трудоемкое, выбирайте полные интегрированные решения. Убедитесь, что язык симулятора позволяет использовать процедуры, вызываемые по необходимости из DLL. Остере
га
...[ ... ]
СИМУЛЯТОРЫ
СИМУЛЯТОРЫ, ИСПОЛЬЗОВАННЫЕ В ЭТОЙ КНИГЕ
Мы предпочитаем использовать симуляторы, основанные на практике современного объектно-ориентированного программирования. Одна из причин такого выбора состоит в том, что объектное ориентирование упрощает создание нужного количества моделируемых счетов, каким бы оно ни было. Это в особенности полезно при моделировании торговой системы, управляющей целым портфелем товаров или акций, как это сделано в большинстве тестов в данной книге. Объектно-ориентированные симу-ляторы также хороши для построения адаптивных самооптимизирующихся систем, в которых иногда требуется использовать внутреннее моделирование. Кроме того, такие программы позволяют достаточно просто создавать метасистемы (системы, принимающие решения на основе графиков изменения капитала других систем). Например, метасистемами можно считать модели распределения активов, поскольку они динамически меняют распределение средств между отдельными торговыми системами или счетами. Хороший объектно-ориентированный симулятор может генерировать графики изменения капитала портфелей и другую информацию для создания и тестирования на исторических данных систем распределения активов, работающих на основе множественных торговых систем. Из этих соображений, а также в силу привычки большинство тестов в этой книге проведены с использованием C-Trader tookit. Для того чтобы почерпнуть полезные знания из этой книги, не требуются познания в C++ и программировании. Логика любой системы или элемента систе
...[ ... ]
Оптимизаторы
Оптимизаторы и оптимизация
Прекрасно разрабатывать торговые системы, не задумываясь об оптимизации. Но в реальности создание надежной системы - путь проб и ошибок, на котором какие-либо формы оптимизации неизбежны. Оптимизатор присутствует всегда - если не на поверхности, то в глубине процесса. Оптимизатор как таковой - это программа или алгоритм, пытающийся найти лучшее из возможных решений задачи; оптимизация - процесс поиска, подбора этого решения. Оптимизатор может быть отдельной программой, возможно, выполненной в виде класса C++, объекта Delphi или функции ActiveX. Мощные продвинутые оптимизаторы часто создаются в виде компонентов, встраиваемых в программы, которые будет разрабатывать пользователь. Менее сложные оптимизаторы, например встречаемые в программах построения графиков высокого уровня, - обычно простые алгоритмы, занимающие несколько строчек программного кода. Поскольку любое решение, приводящее к оптимизации, является оптимизатором, "оптимизация" не обязательно связывается с компьютерами - оптимизатором может быть и человек, занятый решением задачи! Надо сказать, что человеческий мозг - одна из наилучших эвристических систем на земле!
...[ ... ]
ЧТО ДЕЛАЕТ ОПТИМИЗАТОР
ЧТО ДЕЛАЮТ ОПТИМИЗАТОРЫ
Оптимизаторы существуют для поиска лучшего возможного решения задачи. Что под этим понимается? Прежде чем ответить на этот вопрос, давайте сначала проясним, что же является решением. В торговле на бирже под решением понимается некий набор правил торговли и, возможно, системных параметров.
У всех торговых систем есть не менее двух правил (правило входа и правило выхода), и у большинства имеется один или несколько параметров. Правила содержат логику системы и обычно имеют вид команд типа "если-то" на языке, на котором написана торговая система. Параметры определяют поведение описанной в правилах логики; они могут включать длины скользящих средних, важности связей в нейронной сети, пороги сравнений, уровни защитных остановок и цели фиксации прибыли и т.д. Простая система пересечения скользящей средней, использованная как
пример в предыдущей главе, имеет два правила: одно - для приказа на покупку, другое - для приказа на продажу. У нее также был один параметр - длина скользящего среднего. Правила и параметры полностью определяют систему и ее поведение. Для получения лучшего эффекта от торговой системы может потребоваться изменение параметров и формулировок правил.
...[ ... ]