Системный трейдер и выбор программы
|

Системный трейдер и выбор программы

Есть много программ технического анализа. Однако писать и тестировать собственные торговые стратегии можно далеко не в каждой из них. Сегодня на российском рынке программного обеспечения распространены главным образом 4 программы: Equis MetaStock, Omega ProSuite, MetaTrader и WealthLab. Во всех них имеются модули для построения и тестирования собственных стратегий: MetaStock System Tester, Omega PowerEditor, MetaEditor, WealthLab Developer. Сравним основные характеристики этих программ.

MetaStock SystemTester

Язык программирования. Собственный язык макрокоманд MetaStock Language, по сути, полноценным языком программирования не является (он больше напоминает макросы из Microsoft Office), но прост в использовании. Писать простейшие системы можно научиться за несколько дней, пользовательские индикаторы писать гораздо сложнее. Возможности создания торговых систем и индикаторов на основе фракталов, волн Эллиотта, уровней поддержки и сопротивления и тому подобных методов анализа ощутимо затруднены.

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

Интерфейс. Интерфейс программы – проще некуда. Все, в буквальном смысле, разжевано и в рот положено. Окно написания текста разделено на четыре вкладки: длинный вход, длинный выход, короткий вход, короткий выход. Есть подсказка с возможностью поиска и вставки желаемой функции или оператора.

Тестирование и торговля на реальном счете. Возможность применения MetaStock SystemTester для торговли на реальном счете – наиболее спорный вопрос. Дело в том, что программа предназначена только для написания и оптимизации системы. Чтобы применить систему в реальном времени, нужно писать собственный эксперт. Ничего сложного в этом нет – достаточно просто перенести коды входов и выходов в соответствующие опции окна построения нового эксперта (кнопка с человеком в шляпе-котелке).

Самое интересное начинается потом. Выясняется, что эксперт, примененный к данным, выдает совсем другие сигналы, и невооруженным глазом видно, что его доходность на реальных данных значительно ниже, чем на исторических. Вообще, трейдеры часто обвиняют детище Стивена Акелиса в подстройке систем под исторические данные. Системы и индикаторы, подстраивающиеся под исторические данные, на которых их тестировали, в последнее время стали встречаться довольно часто, но в MetaStock распознать такой продукт крайне сложно, пока не запустишь в реальном времени эксперт.

Тестируются системы довольно быстро, в зависимости от мощности компьютера. Но количество тестов ограничено, так же, как и количество оптимизируемых переменных.

Исполнение ордеров. В MetaStock SystemTester ордера входа в рынок могут исполняться по четырем ценам: открытия, закрытия, максимуму и минимуму свечи (бара). Нетрудно догадаться, что реально возможно исполнение только по одной цене – закрытия бара, почему – понаблюдайте за движением индикаторов на графике цен в реальном времени и подумайте сами.

Отложенные ордера stop и limit в MetaStock SystemTester не предусмотрены. Выходы по рыночной цене возможны, но на графике точка выхода не указывается – просто рядом с баром, на котором сработал стоп, ставится соответствующий значок (рис. 1). Возможно исполнение ордера на текущем баре, следующем и т.п. Это определяется во вкладке Options.

Рис. 1. Результаты оптимизации и кривая доходности в MetaStock SystemTester

Рис. 1. Результаты оптимизации и кривая доходности в MetaStock SystemTester

Построение пользовательских индикаторов. Построение пользователем индикаторов возможно в отдельном модуле программы – MetaStock IndicatorBuilder. Язык построения индикаторов тот же самый, что и в случае с торговыми системами. Возможность введения переменных имеется, но использовать их можно лишь при нанесении индикатора на график. При написании и тестировании торговой системы используется функция Fml (название пользовательского индикатора), которая не предусматривает присвоения индикатору каких-либо переменных и их изменения.

Есть, правда, выход из положения: поместить код индикатора в тело самого кода торговой системы с подставленными вместо чисел переменными. Как читатель понимает, это не очень удобно.

Omega PowerEditor

Язык программирования. Easy Language – полноценный язык программирования, рассчитанный, тем не менее, не на программистов, а на трейдеров. Разработан на основе обычного литературного английского языка. Возможности этого языка практически не ограничены. Пользователь может создавать и записывать на нем любые функции.

Фактически Easy Language способен к любому обновлению – в зависимости от квалификации и изобретательности пользователя. По сравнению с языком MetaStock, считается довольно сложным. С другой стороны, он более логичен и максимально приближен к английскому языку. Сравните выражения: на языке MetaStock – Cross(C, Mov(C, 12, S)); на языке Easy Language – Close crosses above Average(Close, 12). Какая из формул более понятна человеку, имеющему минимальное знание английского языка на уровне средней школы?

Интерфейс. PowerEditor представляет собой отдельную программу, поставляемую в составе пакета Omega ProSuite. Программа дает возможность разрабатывать средствами языка Easy Language несколько видов технического анализа: функции, индикаторы, сигналы, «Покажи мне» и «Раскрась бар». На основе сигналов создаются торговые стратегии для тестирования и применения в реальной торговле в программном модуле Strategy Builder (рис. 2).

Рис. 2. Внешний вид окна Strategy Builder в Omega PowerEditor.

Рис. 2. Внешний вид окна Strategy Builder в Omega PowerEditor.

Функции представляют собой наборы команд, которые должны описывать определенное действие торговой системы или методику технического анализа. При помощи оператора Plot (построение) на основе некоторых функций можно строить пользовательские индикаторы любой сложности. «Покажи мне» – это набор критериев, по которым на графике выделяются определенные комбинации технических факторов, на основе которых можно распознать фракталы, комбинации японских свечей, гэпы и другие элементы визуального анализа. Точно так же используется функция «Раскрась бар», методика действия которой ясна из названия.

При проектировке механических торговых систем используются сигналы. Они пишутся в Easy Language, возможно применение пользовательских функций. Можно описать входы и выходы в одном и том же сигнале, для каждого входа и выхода можно использовать отдельный сигнал. Далее из сигналов в модуле Strategy Builder, как в детском конструкторе, составляется механическая торговая система. Важная функция при составлении торговой стратегии – пирамидинг. Она заключается в том, что при уже существующей позиции открывается дополнительная при повторном срабатывании того же самого или другого сигнала системы в сторону открытой позиции. В наборе программы присутствуют готовые шаблоны методик, сигналов и индикаторов. Используя Strategy Builder, трейдер, даже совсем не знакомый с Easy Language, может конструировать и оптимизировать собственные торговые стратегии на основе имеющихся в программном пакете готовых сигналов.

Тестирование и торговля на реальном счете. Тестирование проводится в программе технического анализа Omega TradeStation. При тестировании можно выбирать неограниченное количество переменных, заложенных во время написания сигналов при помощи оператора Input. Тестирование проводится не так быстро, как в MetaStock. Для полноценной работы нужна машина с процессором не ниже Pentium-II. Результаты оптимизации и кривые доходности выводятся в отдельном окне, вызываемом щелчком правой кнопки мыши по стрелкам на графике, появляющимся после тестирования. Тестируется система, «как в жизни». Это и приводит к тому, что обычно доходность одной и той же системы при тестировании в Omega TradeStation ниже, чем при тестировании в MetaStock.

Будучи наложенной на график, система сразу «приступает к работе» и сразу же выдает сигналы. Никаких экспертов, как в MetaStock, писать не надо. Существует функция выдачи сообщений об открытии или закрытии позиции по той или иной валюте, выводящаяся в окне Alert.

Исполнение ордеров. В Easy Language способ исполнения ордера выставляется сразу в теле кода сигнала. Ордера могут исполняться либо по цене закрытия бара, либо по рынку. Фраза «по рынку» (at market) у начинающих трейдеров вызывает путаницу: большинство полагает, что это означает исполнение ордера по той цене, на которой было выполнено торговое условие. Но это совсем не так – входы в рынок осуществляются в этом случае по цене открытия следующего бара.

Действительно по рыночной цене могут исполняться только stop и limit отложенные ордера, которые могут отстоять от цены закрытия бара на определенное количество пунктов либо на еще какую-либо величину. Стоп-ордера также исполняются по текущей цене, а не по цене закрытия. Цена, по которой осуществились вход и выход из позиции, на графике в TradeStation указывается черточками на соответствующем уровне. Исполнение ордеров возможно на текущем либо через определенное количество баров.

Построение пользовательских индикаторов. Omega PowerEditor дает неограниченные возможности построения собственных индикаторов на Easy Language. Для начала строится функция, затем на ее основе – индикатор. В функции можно задавать переменные, которые затем будут использоваться в построении сигналов.

MetaTrader

Язык программирования. Используется язык MetaQuotes Language, представляющий собой модификацию уже знакомого нам языка Easy Language. Отличается дополнительными логическими элементами синтаксиса, предназначенными для исключения подстройки под исторические данные и выдачи сигналов, невыполнимых на реальном счете. Так, позиции не открываются, если количество баров на графике меньше 100, и если Take Profit и Stop Loss меньше 10 пунктов от точки открытия позиции. При этом есть масса ненужных функций, например, указание, по какой цене открывается позиция – Bid или Ask. Ясно, что в любом случае сделка будет совершаться по цене брокера. Отличается от Easy Langauge сокращенными названиями индикаторов, примерно как в MetaStock, только все функции, обозначающие индикаторы, начинаются с i.

Интерфейс. Опять же, чем-то напоминает Omega PowerEditor, только в упрощенном виде, даже значки на кнопках одинаковые – разработчики не потрудились придумать что-нибудь оригинальное. Программа позволяет создавать три вида программных продуктов: пользовательские функции, индикаторы и эксперты. Конструирование стратегий «по кусочкам», как в Omega PowerEditor, невозможно: все делается в одном окне, где прописываются как длинные, так и короткие входы и выходы.

Тестирование и торговля на реальном счете. Как тестирование и оптимизация стратегий, так и торговля на реальном счете производятся в программе технического анализа MetaTrader (рис. 3). Чтобы применить эксперт к графику, надо выбрать его в папке Expert Advisors. Оптимизация стала возможной в последней версии, в отличие от предыдущих, где приходилось подыскивать параметры вручную, что делало программу практически непригодной для тестирования стратегий. Следует отметить, что программа выполняет тесты очень быстро. Разработчики объясняют это примененным «генетическим алгоритмом».

Рис. 3. Окно оптимизации эксперта в MetaTrader.

Рис. 3. Окно оптимизации эксперта в MetaTrader.

Отличие данной программы от других, позволяющих писать и тестировать стратегии, – возможность автоматической торговли, т.е. оптимизированная система будет выдавать приказы брокеру без участия самого трейдера. Естественно, это возможно только тогда, когдa программа запущена и подключена к серверу брокера. Исполнение ордеров. В программе исполняются те же ордера, что и в Omega ProSuite.

 

 

Построение пользовательских индикаторов. Пользовательские индикаторы строятся аналогично тому, как и в Omega PowerEditor: сначала функция, потом индикатор. Есть одна досадная оплошность – если в Omega PowerEditor можно не только создавать свои индикаторы, но и влазить в код стандартных индикаторов, в MetaEditor этой возможности нет – например, почему-то индикатор AC Билла Вильямса лишен переменных, хотя в «каноническом» варианте их должно быть две – зеленая гистограмма и красная гистограмма. Исправить ошибку не представляется возможным, поскольку индикатор уже внесен в исходный код программы в таком виде. К слову сказать, такая особенность имеется и у MetaStock.

WealthLab Developer

Язык программирования. Язык программы носит название ChartScript. Он сильно напоминает, опять же, Easy Language. Основные операторы – те же самые, в значительной степени сохранен синтаксис. Отличается ChartScript от Easy Language повышенной сложностью конструкций и почти неограниченными возможностями, вплоть до реализованной в последней версии программы возможности конструировать системы на основе нейросетей. Недостаток – слишком затянутые формулы, которые в Easy Language намного короче. На сегодняшний день этот язык написания механических торговых систем, стратегий и индикаторов наиболее приближен к профессиональному языку программирования.

Для новичка, не имеющего навыков написания торговых систем, этот язык крайне сложен, зато для человека, знакомого с программированием, особого труда представлять не будет, даже при отсутствии опыта биржевого трейдинга. Среди начинающих трейдеров ChartScript заслужил из-за своей сложности репутацию «глючного». Вообще, это наиболее мощное средство построения стратегий на сегодняшний день.

Интерфейс. В отличие от описанных ранее программ, WealthLab Developer предназначена исключительно для создания и тестирования собственных продуктов в сфере технического анализа, а не для визуального наблюдения и анализа графиков. Это и обуславливает специфику ее интерфейса (рис. 4). Программа состоит из отдельных модулей, которые, в отличие от других программных пакетов такого типа, преимущественно сосредоточены в теле и интерфейсе основной программы.

Рис. 4. Вид интерфейса программы WealthLab Developer.

Рис. 4. Вид интерфейса программы WealthLab Developer.

Список модулей показан слева, в отдельном окне отображаются они же справа. Возможно создание и редактирование ChartScripts, оптимизация, применение к графику в режиме реального времени, скан торговой системы по группе финансовых инструментов, симулятор – средство, имитирующее торговлю ценными бумагами с использованием управления капиталом на реальном портфеле какого-либо инвестора. Есть и средство, которого нет ни в одной из ранее перечисленных программ, и о котором долго мечтали трейдеры:  Evaluator – программа, оценивающая эффективность индикаторов на разных временных промежутках и разных инструментах.

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

Тестирование и торговля на реальном счете. WealthLab Developer предоставляет широкие возможности для тестирования и оптимизации торговых систем. Отличительная черта программы – возможность выполнять оптимизацию системы сразу на нескольких финансовых инструментах и сопоставлять результаты. По сравнению с тремя предыдущими программами, тестирование и оптимизация системы выполняются моментально. При этом программа не требует больших системных ресурсов, как, например, Omega ProSuite.

Количество финансовых инструментов для оптимизации не ограничено, чего не скажешь о количестве переменных – их не может быть больше девяти. Переменные подставляются в соответствующие места в теле кода в форме значений #OptVar1, #OptVar2 и т.д. По сравнению с Omega PowerEditor и MetaEditor, это, конечно, недостаток – можно забыть, какой номер переменной что означает. В программе есть два метода оптимизации: Exhaustive и MonteCarlo. В первом случае проверяются все возможные комбинации оптимизационных переменных. Во втором – длительность оптимизации сокращается за счет выбора случайных комбинаций. Тестирование проводится в несколько этапов, в ходе каждого из которых коэффициент случайности сокращается, и оптимизационный диапазон стремится ближе к лучшему результату последнего тестирования. Однако, учитывая случайность выбора комбинаций, этот метод не гарантирует наиболее оптимального результата, зато сокращает время тестирования. В реальном времени система обновляет сигналы только на закрытии бара.

Исполнение ордеров. То же самое, что в двух предыдущих программах. Помимо этого, есть функция InstallReverseBreakEvenStop, при срабатывании которой открывается позиция в обратную сторону независимо от сигналов системы.

Построение пользовательских индикаторов. Во-первых, следует отметить огромный набор разного рода индикаторов, который входит в программный пакет. Часть из них можно скачать с сайта компании бесплатно. Все индикаторы можно редактировать и модифицировать при определенных навыках. Возможности создания индикаторов зависят только от возможностей самого пользователя программы.

2004

Роман Мамчиц