ТЕСТИРОВАНИЕ МОДЕЛЕЙ, ОСНОВАННЫХ НА ПРОБОЕ
В этой главе будут проведены тесты нескольких систем, основанных на пробое и работающих с разными портфелями различных бумаг, для сравнения их эффективности. Насколько хорошо они работают? Да и работают ли? Теоретически модели на пробое наилучшим образом подходят для торговли на рынках с устойчивыми трендами, таких как рынки forex. При должном использовании фильтров они могут работать и на других рынках. Некоторые ответы на эти вопросы будут приведены в нашем исследовании. Во всех тестах использовались стандартные портфель и стратегия выхода (см. введение к части II).
ВХОДЫ НА ПРОБОЕ КАНАЛА
Первые тесты рассматривают различные варианты входов на основе пробоя ценового канала. Сначала мы исследуем модели, основанные только на ценах закрытия, а также модели, где используются пробои уровней максимального максимума или минимального минимума. В этих моделях границы ценового канала соответствует понятию уровней поддержки/ сопротивления.
...[ ... ]
Пробои на основе цен закрытия
Пробои на основе цен закрытия
Тест 1. Система на основе пробоя канала. Используются только цены закрытия; вход по рыночной цене при открытии биржи на следующий день и стоимость сделок (комиссия, проскальзывание) не учитываются. Правила системы таковы: "Если текущая позиция короткая или нейтральная, а рынок поднимается выше максимальной цены закрытия за последние n дней, то при завтрашнем открытии следует покупать", или же, соответственно, "Если текущая позиция длинная или нейтральная, а рынок опускается ниже минимальной цены закрытия за последние n дней, то при завтрашнем открытии следует продавать (открывать короткую позицию)". У этой системы только один параметр - период n, количество анализируемых дней. Количество контрактов для покупки или продажи (ncontracts) было выбрано таким, чтобы для данного рынка сохранялась долларовая волатильность, примерно соответствующая двум новым контрактам S&P 500 на конец 1998 г.
Выходы производятся, когда случается пробой в направлении, противоположном текущей открытой позиции, или срабатывает стандартный выход (например, защитная остановка, целевая прибыль или выход по рыночной цене, если позиция была открыта дольше указанного количества дней). Защитная остановка определяется как входная цена плюс (для коротких) или минус (для длинных позиций) параметр mmstp, величина
последних 50 дней. Границы целевой прибыли представляют собой входную цену плюс (для длинных) или минус (для коротких позиций) еще один параметр - ptlim, также связанный
...[ ... ]
Для такой простой системы
Для такой простой системы результаты были неожиданно хороши: годовая прибыль составила 76%. Все параметры n были прибыльными, в отношении риска/прибыли оптимальное значение составило 80 дней. Т-тест дневной прибыли (по соотношению риска/прибыли) показывает, что вероятность случайной эффективности составляет менее одной тысячной, а после коррекций на оптимизацию - менее одной сотой. Как и следовало ожидать по таким показателям, в тесте вне пределов выборки система также была прибыльной. Длинные позиции (покупки) принесли больше прибыли, чем короткие (продажи), возможно, в связи с ложными сигналами с короткой стороны, вызванными постоянным снижением цены при приближении срока истечения контрактов. Другое объяснение состоит в том, что цены на товары обычно более подвержены влиянию кризисов и дефицита, чем избытка. Как и при использовании других систем, основанных на пробое, процент прибыльных сделок был невелик (43%), причем крупные прибыли от редких удачных сделок компенсировали частые мелкие убытки. Хотя некоторым психологически трудно воспринимать систему, которая терпит убыток за убытком в ожидании большой прибыли, ожидание того стоит.
Капитал портфеля при использовании оптимального для выборки параметра n стабильно рос как в пределах выборки данных, так и вне его; избыточная оптимизация здесь не представляла проблемы. График изменения капитала показывает некоторое снижение эффективности системы со временем. Впрочем, система, основанная на простом пробое канала, все еще мож
...[ ... ]
Тест 2. Система на основе пробоя
Тест 2. Система на основе пробоя канала. Используются только цены закрытия; вход по рыночной цене при открытии биржи на следующий день, комиссия и проскальзывание учитываются. Этот тест проведен точно так же, как и предыдущий, за исключением учета проскальзывания (3 тика) и комиссионных ($15 за цикл сделки). Хотя эта модель работала успешно без учета расходов на сделки, на практике она с треском провалилась. Даже лучшее в выборке решение принесло только убытки, и, как и следовало ожидать, вне пределов выборки система также работала с убытком. Почему же относительно небольшие комиссионные и проскальзывание приводят к разрушению производительности системы, которая без них зарабатывает тысячи долларов на средней прибыльной сделке? Потому что на многих рынках сделки включают множественные контракты, а комиссионные и проскальзывания влияют на каждый контракт по отдельности. В данном случае опять именно длинные сделки приносили наибольшую прибыль. Модель была умеренно доходной в 1980-х годах, но потом стала убыточной. Учитывая прибыльные результаты прошлого теста, можно предположить, что модель постепенно перестала окупать расходы на совершение сделок. Когда простые компьютеризованные системы пробоев вошли в моду в конце 1980-х годов, возможно, именно они с течением времени изменили природу рынков, что привело к падению эффективности данных систем.
В табл. 5 - 1 приведены результаты портфеля для системы, основанной на пробое канала. Результаты распределены по разным рынкам для раз
...[ ... ]
Тест 3. Система на основе пробоя
Тест 3. Система на основе пробоя цены закрытия, вход по лимитному приказу на следующий день, расходы на сделки учитываются.
Для улучшения эффективности модели путем контроля над проскальзыванием и получения входов по более выгодной цене мы использовали лимитный приказ для входа на следующий день по указанной или более выгодной цене. Полагая, что рынок скорректирует по крайней мере полови
ну ценового диапазона дня, в который был произведен пробой (cb), перед тем как продолжить дальнейшее движение, мы размещаем лимитный приказ (limprice) на уровне середины этого диапазона. Поскольку большая часть кода остается неизменной, приведем только наиболее сильно изменившиеся участки:
// file = x09mod03.c
// пробой канала на основе только цен закрытия
// используя лимитный приказ
limprice = 0.5 * (hi[cb] + lo [cb]);
с
входом на следующий день
if (cls[cb]>Highest(cls,n,cb-l) && ts.position{)<=0) {
ts.buylimit('1' , limprice, ncontracts); ) else if (cls[cb]=0) {
ts.selllimit('2', limprice, ncontracts); )
// симулятор использует стандартную стратегию выхода atr = AvgTrueRange{hi, lo, cls, 50, cb} ; ts.stdexitcls ('X', ptlim*atr, mmstp*atr, maxhold);
...[ ... ]