Роман Мамчиц - Системный трейдер и выбор программы
Есть много программ технического анализа. Однако писать и тестировать собственные торговые стратегии можно далеко не в каждой из mix. Сегодня на российском рынке программного обеспечения распространены главным образом 4 программы: Equis MetaStock, Omega ProSuite, MetaTrader и Wealth Lab. Во всех них имеются модули для построения и тестирования собственных стратегий: MetaStock System Tester, Omega PowerEditor, MetaEditor, WealthLab Developer. Сравним основные характеристики этих программ.
MetaStock SystemTester
Ялык программирования. Соб ственный язык макрокоманд MetaStock Language, no сути, полноценным ля ык ом : ірограммиров а -НИ ft не является (ОН fit:іе HartO минает макросы ля Microsoft Office), но л рост я использовании. Писать простейшие системы мож но научиться за несколько дней, пользовательские индикаторы пи-сать гораздо сложнее, Возможное тн создания торговых систем и ин дикаторов На основе фракталов, волн Эллиотта, уровней поддержки и сопротивления и тому подоб ных методов анализа ощутимо за труднены.
В целом, для юношей, обдумывающих житье, язык этот подходит с точки зрения изучения азов программирования торговых систем. По мере повышения квалификации желательно перейти гг.і более серьезные программы.
Интерфейс. Интерфейс программы - проще некуда, Нее. в буквальном смысле, разжевано и в рот положено. Окно написания текста разделено на четыре вклад-КНг длинный ВХОД, длинный выход, короткий вход, короткий выход Нет:: подсказка с возможностью поиска и вставки желаемой функции или оператора.
Тестирование и торговля на реальном счете. Возможность приме г гении MetaStock SystemTester для торговли на реальном счете -наиболее спорный вопрос. Дело в том, что программа предназначена только для написания и ептимиза ции системы. Чтобы применить си стему з реальном времени, нужно писать собственный эксперт. Ни чего сложного в этом нет - доста точно просто перенести коды входов я выходов з соответствующие опции окна построения нового эксперта (кнопка с человеком в шляпе-котелке).
Самое интересное начинается потом. Выясняется, что эксперт, примененный к данным, выдает совсем другие сигналы, и невооружен^™ глазом видно, что его до ходкость на реальных данных эна чительно ниже, чем на исторических. Вообще, трейдеры часто облиняют детище Стивена Акелиса в подстройке систем под исторические данные. Системы и индикаторы, подстраивающиеся под исторические данные, На которых их тестировали, в последнее время стали встречаться довольно часто, но в MetaStock распознать такой продукт крайне сложно, пока гге запустишь з реальном времени эксі іерт.
Тестируются системы довольно быстро, в зависимости от мощное ти компьютера. Но количество тестов ограничено, так же, как и количество оптимизируемых пере менных.
Исполнение ордеров. В MetaStock SystemTester ордера зхо-да в рынок могут исполняться по четырем ценам: открытия, закрытия, максимуму и минимуму свечи (бара). Нетрудно догадаться, что реально возможно пополнение только по одной цене - закрытия бара, почему - понаблюдайте за движением индикаторов на графи

Рис. 1. Результаты оптимизации » крмим доходности а MetaStock SystemTeater.
ке цен в реальном времени и подумайте сами.
Отложенные ордера stop и limit в MetaStock SystemTester не предусмотрены. Выходы по рыночной цене возможны, но на графике точка выхода не указывается -просто рядом с баром, на котором сработал стоп, ставится соответствующий значок (рис. 1), Возможно исполнение ордера на текущем баре, следующем и т.п. Это определяется во вкладке Options.
Построение пользовательских индикаторов. Построение пользователем индикаторов возможно в отдельном модуле программы -MetaStock IndicatorBuilder. Язык построения индикаторов тот же самый, что и в случае е торговыми системами. Возможность введения переменных имеется, но ис пользовать их можно .тип::] три нанесении индикатора на график. При написании и тестировании торговой оистемы используется функция Ftnl (название пользева тельского индикатора), которая не предусматривает присвоения и иди кагору каких-либо переменных -а их изменения.
Есть, правда, выход из положения: поместить код индикатора в тело самого кода торговой системы с подставленными вместо чисел переменными. Как читатель понимает, это не очень удобно.
Omega PowerEditor
Язык программирования. Easy Language - полноценный язык программирования, рассчитанный, тем не менее, не на программистов, а на трейдеров. Разработан на основе обычного литературного английского языка. Возможности этого языка практически не ограничены. Пользователь может создавать и записывать на нем любые фуііКЦИН.
Фактически Easy Language способен к любому обновлению - в зависимости от квалификации и изобретательности пользователя. По сравнению с языком MetaStock, считается довольно сложным. С другой стороны, он более логичен и максимально приближен к ант-лийскому языку. Сравните выражения: на языке MetaStock - С tees (С, Мо?(С 12, Я»: на языке Easy Language - Close crosses above Average (Close, 121. Какая из формул более понятна человеку, име ющему минимальное знание ант ли некого языка па уровне средней школы?
Иіперфейс, PowerEditor пред ставляет собой отдельную про грамму, поставляемую в составе пакета Omega ProSuite. Программа дает возможность разрабатывать средствами языка Easy Language несколько видов технического анализа: функции, индикаторы, сигналы, «Покажи мне» и «Раскрась бар». На основе сигналов создаются торговые стратегии для тестирования и применения в реальной торговле в программном модуле Strategy Builder (рис. 2}.
Функции представляют собой наборы команд, которые должны описывать определенное действие торговой системы или методику технического анализа, При помо щи оператора Rot (построение) на основе некоторых функций можно строить пользовательские индикаторы любой сложности,
«Покажи мне» - это набор критериев, по которым на графике выделяются определенные комбинации техническим факторов, на


основе которых можно распознать фракталы, комбинации японских свечей, гэпы и другие элементы визуального анализа. Точно так же используется функция «Раскрась бар», методика действия которой ясна кэ названия,
При проектировке механических торговых систем используются сигналы. Они пишутся в Easy Language, возможно применение пользовательских функций. Можно описать входы и выходы в одном и том же сигнале, для каждого входа и выхода можно использовать отдельный сигнал Далее из сигналов в модуле Strategy Builder, как л детском конструкторе, составляется механическая торговая система.
Важная функция при составлении торговой стратегии - пирамидинг. Она заключается в том, что при уже существующей позиции открывается .исполнителегая при повторном срабатывании того же самого или другого сигнала снеге мы в сторону открытой позиции. В наборе программы присутствуют готовые шаблоны методик, сигна лов и индикаторов. Используя Strategy Builder, трейдер, даже совсем че знакомый о Easy Language, может конструировать и оптимизировать собственные торговые стратегии на основе имеющихся и программном пакете готовых сигналов.
Тестирование и торговля на реальном счете. Тестирование проводится в программе технического анализа Omega TradeStation. При тестировании можно выбирать неограниченное количество переменных, заложенных во время написания сигналов при помощи оператора Input. Тестирование проводится не так быстро, как в MetaStock. Для полноценной работы нужна машина с процессором не ниже Pentium-]].
Результаты оптимизации и кривые доходности выводятся в отдельном окне, вызываемом щелчком правой кнопки мыши по стрелкам на графике, появляющимся после тестирования. Тестируется система, «как в жизни». Это и приводит к тому, что обыч-г го доходность одной и той же си стемы при тестировании в Omega TradeStation ниже, чем при те старом п г г-э и « MetaStock,
Будучи наложенной на график, система сразу «приступает к рабо те» и сразу же выдаст сигналы. Никаких экспертов, как и MetaStock, писать не надо, Суще сгвует функция выдачи сообщений об открытии и та закрытии нотации по той или иной валюте, выво дящаяся в окне Alert.
Исполнение ордеров. В Easy Language способ исполнения ордера выставляется сразу в теле кода
сигнала, Ордера могут исполнять ея либо по цене закрытия бара, либо по рынку. Фраза «по рынку» (at market) у начинающих трейде ров вызывает путаницу: больший ство полагает, что это означает исполнение ордера по той цене, г га которой было ВЫПОЛИСНО ТОрГО вое условие, Но это совсем не так - входы з рынок осуществляются в этом случае по цене открытия следующего бара,
Действительно по рыночной цене могут исполняться только stop и limit отложенные ордера, которые могут отстоять от цены эакры-

Ряс. 3. Окно оіііими:іііции эксперта а MeUTrader.

тия бара на определенное количество пунктов либо на еще какую-либо величину. Стоп-ордера также исполняются по текущей цене, а чс по цене закрытия. Цена, по которой осуществились вход и выход из позиции, г га графике в Trade Station указывается черточками на соответствующем уровне. Исполнение ордеров возможно г га теку щем либо через определенное ко личество баров,
Построение пользовательских индикаторов. Omega PowerEdftor дает неограниченные возможности построения собственных индикаторов на Easy Language. Для начала строится функция, затем на ее ос море - индикатор. В функции мож :ю задавать переменные, которые затем будут использоваться в пост роении сигналов,
MetaTrader
Язык программирования. Ио
пользуется язык MetaQuotes Language, представляющий собой модификацию уже знакомого нам языка Easy Language. Отличается дополнительными логическими эле-менгами синтаксиса, предназначенными для исключения подстройки под исторические данные и выдачи сигналов, невыполнимых на реальном счете, Так, позиции гге откры ваются, если количество баров на графике меньше 100, и если Таке Profit и Stop Loss меньше 10 пунктов от точки открытия позиции.
Ирл этом есть масса ненужных функции, например, указание, ио какой цене открывается позиция -Bit: или Ask, Ясно, что в любом случае сделка будет совершаться по цене брокера Отличается от Easy Langauge сокращенными на званиями индикаторов, примерно как в Meta Stock, только все функ ции. обозначающие индикаторы, начинаются с і.
Интерфейс. Опять же. чем-то напоминает Omega PbwerEditor, только а упрощенном виде, даже значки на кнопках одинаковые разработчики не потрудились при-думать ЧТО'НИбуДЬ оригинальное. Программа поз-в о л я е т создав ат ь три вида лрограм Ы-мых продуктов; пользовательские функции, индикаторы и эксперты. Конструирование стратегий «по кусочкам», как в Omega PowerEditor, невозможно: Ясс делается в одном окне, где прописываются как длин ные, так и короткие входы и выходы.
Тестирование и гор гон ля на реальном счете. Как тестирование и оптимизация стратегий, так и тор гоздя на реальном счете производятся в программе технического анализа MetaTrader (рис. 3)- Чтобы применить эксперт к графику, чудо выбрать ого в папке Expert Advisors. Оптимизация стала возможной в последней версии, и от .тичие от предыдущих, где прихо дилось подыскивать параметры вручную, что делало программу практически непригодной для тес тиров ы кия стратегий. Следует отметить, что программа выполняет тесты очень быстро. Разработчики объясняют это примененным «генетическим алгоритм ом».
Отличие данной программы от других, позволяющих писать и тес тировать стратегии возможность автоматической торговли, те. оптимизированная система будет вы давать приказы брокеру бе:: учас тия самого трейдера, Естественно, это возможно только тогда, когда программа запущена и подключе на к серверу брокера.
Исполнение ордеров. В программе исполняются те же ордера, что и в Omega ProSuite.
Построение пользовательских индикаторов. Пользовательские индикаторы строятся анапогично тому, как и в Omega PowerEdtton сначала функция, йотом индикатор. Есть одна досадная оплошность - если в Omega PowerEditoT можно не только создавать свои индикаторы, но и влазить в код стандартных индикаторов, в MetaEditor этой возможности нет -например, почему-то индикатор АС Билла Вильямса лишен переменных, хотя в «каноническом» вариаігге их должно быть две - зеленая гистограмма и красная гистограмма. Исправить ошибку не представляется возможным, поскольку индикатор уже внесен в исходный код программы б таком виде. К слову сказать, такая особенность имеется и у MetaStock.
WealthLab Developer
Язык программирования. Язык программы носит название ChartScript. Ol: сильно напоминает, опять же, Easy Language. Ос иовные операторы - те же самые, в значительной степени сохранен синтаксис. Отличается ChartScript от Easy Language повышенной сложностью конструкций и почти неограниченными возможностями. вплоть до реализованной в последней версии программы воз мож пости конструировать СИС темы на основе нейросетей. Недостаток - слишком затянутые формулы, которые в Easy

Language намного короче. На сегодняшний день этот язык написания механических торговых систем, стратегий и индикаторов наиболее приближен профессиональному языку программирования.
Для новичка, гге имеющего на выков написания торговых систем, этот язык крайне сложен, зато для человека, знакомого с программн рованием, особого труда представ лять :jc будет, даже при отсутствии опыта биржевого трейдинга, Среди начинающих трейдеров ChartScript заслужил из-за своей сложности репутацию «глючного». Вообпіе, это наиболее мощное средство построения стратегий на сегодняшний день.
Интерфейс. В отличие пт описи-1-и,гх ранее программ, Wealth Lab Developer преднаэначе на исключительно для создания а тестирования собственных продук-тов і! сфере технического анализа, ;і гге для визуального наблюдения и анализа графиков. Это и обу-славливает специфику ее интерфейса (рис. 4). Программа состоит из отдельных модулей, которые, в отличие от других программных пакетов такого типа, преимущество тс сосредоточены и теле о и-і терфейое основной программы.
Список модулей показан слева, в отдельном окне отображаются они же справа. Возможно соэда нне и редактирование Chart Scripts, оптимизация, применение к графику' в режиме реального времени, скан торговой системы по группе финансовых инструментов, симулятор - средство, имитирующее торговлю ценными бумагами с исполь эованием управления капиталом гга реальном портфеле какого-либо инвестора, Есть и средство, кото рого нет пи в одной из ранее не речисленных программ, и о кото ро.и долго мечтали трейдеры: Evaluator - программа, оцениваю щіlk эффективность индикаторов на разных временных промежутках и разных инструментах.
При этом разработчики про граммы, создавая столь сложный язык написания стратегий, предус-м о т р е л и шаблоны, с помощью которых можно пошагово создавать гор г о в ы е стратегии, выбирая ин¦ д ика то р ы, которые будут использоваться в системе, уровни СТОПОВ и целей,
плавающий стоп-лосс, условия, при которых индикаторы должны пода гать сигналы и т.п. Пользовательские индикаторы, правда, писать намного сложнее,
Тестирование и торговля па реальном счете, WeatthLab Developer предоставляет широкие возможности для тестирования и оптимизации торговых систем. Отличительная черта программы -возможность выполнять оптимизацию системы сразу на нескольких финансовых инструментах и сопоставлять результаты. По сравнению с тремя предыдущими про Граммами, тестирование И оптимизация системы выполняются моментально, При этом про грамма гге требует больших сис темных ресурсов, как, например, Omega ProSuite.
Количество финансовых инструментов для оптимизации не ограничено, чего :jc скажешь о количестве переменных - их :jc может быть больше девяти, Переменные і юдставляются в соответствующие места л теле кода я форме значений #Орі?аП, #OptVar2 и т.д. По сравнению с Omega PowerEditor и MetaEditor. это, конечно, недоста ток - можно забыть, какой номер переменной что означает,
В программе есть два метода оптимизации: Exhaustive и
MonteCarlo. В первом случае проверяются все возможные комби нации оптимизационных переменных. Во втором - длительность оптимизации сокращается за счет выбора случайных комбинаций, Тестирование проводится в несколько этапов, в ходе каждого из которых коэффициент случайности сокращается, и оптимизационный диапазон стремится ближе к лучшему результату последнего тестирования. Однако, учитывая случайность выбора комбинаций, этот метод не гарантирует наиболее оптимального результата, зато сокращает время тестирования. В реальном времени система обновляет сигналы только на закрытии бара.
Исполнение ордеров. То же самое, что в двух предыдущих программах. Помимо этого, есть функция InstaHReverseBreakEvenStop, при срабатывании которой открывается позиция в обратную сторону независимо от сигналов системы.
Построение пользовател ьскнх индикаторов. Во-первых, следует отметить огромный набор разного рода индикаторов, который входит ?. программный пакет. Часть из і:их можно скачать с сайта компании бесплатно. Вес индикаторы можно редактировать и модифицировать при определенных навыках. Возможности создания инди-каторов зависят только от возможностей самого польэовате ля программы.
Содержание раздела