Тестирование торговой стратегии.
Прежде чем перейти непосредственно к описанию тестирования немного отвлечемся на подготовительный этап.
В начале надо определиться с нашими торговыми предпочтениями и возможностями. Нет никакого толка от создания пусть даже очень неплохой системы, сигналы которой мы не в состоянии выполнить физически. Т.е., для начала неплохо определиться, когда будут появляться сигналы и как мы их будем исполнять.
Поскольку этот учебник предназначен для начинающих трейдеров, буду считать, что читатель днем работает и следить в течении дня за перипетиями биржевых торгов не в состоянии. Кроме того, необходимо учесть, что дейтрейдинг (торговля внутри дня) связан с повышенными рисками из-за высоких транзакционных издержек и требует громадной дисциплины.
Исходя из вышесказанного, решаем, что на первом этапе торговать будем, анализируя только дневные свечки. Вечерком, придя с работы и поужинав, скачиваем свежие котировки, проверяем наличие сигналов на совершение сделки и на следующий день, в момент открытия торгов звоним своему брокеру и отдаем соответствующий приказ. Если есть возможность, то можно совершить сделку, воспользовавшись торговым терминалом.
Теперь, когда есть ясность с нашим торговым стилем, необходимо придумать стратегию, которую мы собираемся торговать и которую надо предварительно протестировать.
Не станем залезать в дебри технических индикаторов и заумных формул, а возьмем простую и очень логичную систему, основанную на ценовом канале (Price Channel).
Торговать будем только
Long (длинные позиции).
Покупать будем, когда рынок закрывается выше двадцати дневного (месячного) максимума.
Продавать, когда рынок закрывается ниже середины ценового канала.
В Амиброкере нет встроенного индикатора ценового канала, поэтому для начала напишем его формулу.
Top = Ref(HHV(H, 20), -1);
Bot = Ref(LLV(L, 20), -1);
Mid = (Top+Bot)/2;
Plot(Top, "Top", colorRed);
Plot(Bot, "Bot", colorRed);
Plot(Mid, "Mid", colorRed);
Если создать такой индикатор и бросить его на график цены, то увидим три линии ценового канала, верхнюю, среднюю и нижнюю. При этом будут хорошо видны сигналы нашей торговой системы.
Однако для того, чтобы протестировать эту стратегию необходимо описать для Амиброкера её правила и объяснить, как мы их собираемся использовать.
Top = Ref(HHV(H, 20), -1);
Bot = Ref(LLV(L, 20), -1);
Mid = (Top+Bot)/2;
Buy = Cross(C, Top);
/* покупка когда цена закрытия пересекает верхнюю линию ценового канала снизу вверх */
Sell = Cross(Mid, C);
/* продажа когда цена закрытия пересекает среднюю линию ценового канала сверху вниз */
Вставляем этот код в
Formula Editor и жмем
Send to Automatic Analysis (
AA) (передать в автоматический анализатор). Попадаем в окно
АА.
Откроем график акции, на которой будем тестировать стратегию. Пусть это будут обыкновенные акции
РАО ЕЭС (
EESR). Далее необходимо сделать соответствующие настройки, которыми «объяснить» Амиброкеру, как именно мы собираемся применять эти правила.
- тестируем только выбранный (открытый в данный момент) символ
- тест проводим с... по...
Далее идем в настройки (
Settings)
Закладка General
Устанавливаем
- Initial equity – 100000 (пусть будет 100000 руб.)
- Positions – Long (торгуем только длинные позиции)
- Periodicity – Daily (торгуем на дневках)
- Min shares – 1 (минимальная возможная сделка – 1 лот)
- Min. Pos. Value – 0 (размер сделки в деньгах не ограничен)
- Allow position size shrinking – поскольку мы не задавали в нашей формуле размер сделки установка этой опции значения не имеет
- Activate stops immediatelly – использовать рыночные ордера мы не будем, однако поскольку сделка открывается в начале торгового периода, если бы ордер был, он бы мог исполнится на баре открытия. Поэтому лучше эту опцию активировать
- Reverse entry signal forces exit – у нас нет противоположных сигналов (сигнал короткой продажи) поэтому эта опция значения не имеет
- Allow same bar exit (single bar trade) – у нас не может быть сигналов на выход из сделки в тот же день, когда был вход, поэтому эту опцию активировать не надо
- Futures mode – торгуется не фьючерсный контракт и не форекс, поэтому опцию активировать не надо
- Pad and align to reference symbol – мы не используем в стратегии анализ данных других символов, поэтому опцию активировать не надо
- Round lot size и Tick size – установки этих опций должны быть сделаны в Symbol Information, о чем я писал в соответствующей главе
- Annual Interest rate – 0. (будем считать, что проценты на свободные средства не начисляются)
- Account margin – 100. (не маржинальная торговля, плечо не используем)
- Комиссию установим нулевую
Закладка Trades
Торгуем только длинные позиции и поэтому нас интересует только блок
Long
Исполняем сделки по цене открытия, поэтому в полях
Buy price и
Sell price устанавливаем
Open, а поскольку исполнение сделки происходит на следующий день (на следующем баре) после поступления сигнала,
Buy delay и
Sell delay (задержку исполнения) ставим 1.
Закладка Stops
Стопы не используем, везде ставим
disable
Закладка Report
На этой закладке можно сделать установки в соответствии со своими предпочтениями.
Закладка Portfolio
Пока тестируем не портфельную торговлю, поэтому настройки на этой закладке можно игнорировать.
Единственное, на что необходимо обратить внимание – это на параметр
Limit trade size as % of entry bar volume. Мы не собираемся учитывать ликвидность рынка и поэтому установим его 0. Таким образом, гарантированно избежим распространенной ошибки, когда в результате отсутствия в данных объемов тестер отказывается совершать сделки.
На этом подготовку к тестированию можно считать законченной и можно переходить непосредственно к процессу. Закрываем окно настроек
AA
Жмем кнопку
Back Test и сразу получаем вот такой список всех совершенных сделок.
Теперь можно посмотреть кривую роста нашего капитала. Для этого жмем кнопку
Equity.
На этом графике зеленым цветом показан наш капитал, когда он свободен (деньги) и серым когда он связан купленными бумагами. Если связан не весь, то серым будет выделена только связанная часть капитала.
Внизу коричневым цветом показан график просадки нашего капитала. Если зайти в свойства графика (щелчок правой кнопкой и выбрать
Parameters), то можно включить отображение длительности просадки (
Show #Bars since last high) и линию регрессии графика изменения капитала (
Show lin. reg.)
Можно вывести на график стрелки, отмечающие сигналы и сделки системы. Для этого надо щелкнуть правой кнопкой мыши на лист сделок и выбрать один из пунктов.
- Show arrows for all raw signal – показать стрелки всех сигналов системы
- Show arrows for actual trades – показать стрелки заключенных сделок
- Show current trade arrows – показать стрелки для данной сделки
Надо иметь в виду, что не все сигналы системы обязательно будут превращены в сделки. Если встречаются несколько последовательных сигналов на покупку, между которыми нет сигнала на закрытие позиции, то тестер исполнит только первый из них.
Теперь осталось только посмотреть подробный отчет с параметрами протестированной системы. Чтобы его увидеть, жмем кнопку
Report.
Все сгенерированные отчеты сохраняются и могут быть просмотрены позже с помощью менеджера отчетов (
Report Explorer), запустить который можно, нажав на стрелочку в правой части кнопки
Report и выбрав соответствующий пункт.
Удачи.