Разделы



Симуляторы

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

ВИДЫ СИМУЛЯТОРОВ

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

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

ПРОГРАММИРОВАНИЕ СИМУЛЯТОРА

Вне зависимости от устройства (интегрированный или основанный на компонентах симулятор) в него должна быть введена логика системы, ис­пользуемой пользователем. Язык программирования может быть или многоцелевым языком программирования, как C ++ или FORTRAN , или соб­ственным языком скриптов программы. Без содействия формального язы­ка невозможно выразить торговые правила системы с достаточной для симуляции точностью. Необходимость в программировании того или ино­го вида не следует рассматривать как неизбежное зло — пользователь может приобрести много опыта, поскольку программирование заставля­ет выражать свои идеи упорядочение и целенаправленно.

В качестве примера программирования логики торговой системы рас­смотрим TradeStation , популярный интегрированный пакет от Omega Research , содержащий интерпретатор для собственного языка програм­мирования, называемого Easy Language , обеспечивающий проведение тестов на исторических данных. Easy Language — собственный язык фир­мы, основанный на Pascal (многоцелевом языке программирования). Как выглядит простая торговая система, запрограммированная на Easy Language ? В качестве примера предлагаем код для системы простого пе­ресечения скользящей средней:

п»ї

Эта система открывает длинную позицию (один контракт) при открытии на следующий день, когда цена закрытия пересекает скользящую сред­нюю вверх, и короткую позицию (один контракт), когда цена закрытия пересекает скользящую среднюю вниз. Каждому приказу присваивается имя или идентификатор: А — на покупку, В — на продажу. Длина сколь­зящей средней (Len ) может задаваться пользователем или оптимизиро­ваться программой.

Ниже та же система, запрограммированная на языке C + + с помощью набора инструментов C -Trader от Scientific Consultant Services , в состав которого входит торговый симулятор C ++:

// простая система пересечения скользящих средних в C ++

len = parms [ l ];                                                 // параметр длины скользящей средней

if (cls [cb] > Average(cls, len, cb} &&

cls [cb-1] <= Average(cls, len, cb-1))

ts.buyopen (A, 1);        // покупает на открытии следующего дня if (cls[cb] <= Average(cls, len, cb) && cls [cb-1] > Average(cls, len, cb-1))

ts . sellopen ( B , 1);       // продает на открытии следующего дня

За исключением синтаксиса и обозначений, различия в применении C + + и EasyLanguage невелики. Наиболее важны сноски на текущий бар (cb ) и на данный симулируемый торговый счет или ссылку на класс симулятора


(ts ) в версии на C ++. Так, на C ++ можно использовать любое количество симулируемых счетов; это важно при работе с портфелями и метасисте­мами (системами, управляющими счетами другой системы) и при разра­ботке моделей, включающих скрытую адаптацию с движением вперед.

Читать далее: Выходные данные симулятора