параметры управляют выбором элементов системы
Приведенный ниже код более сложен, чем код для пробоев;
вместо разных последовательностей для комбинаций скользящих средних, правил
входа и приказов использован один цикл, в котором параметры управляют выбором
элементов системы. Этот метод необходим при генетическом развитии систем. Хотя
здесь, собственно, нет генетических алгоритмов, подобные методы будут
использованы в следующих главах. Этот код содержит параметры для управления элементами
модели, упрощая обработку всех возможных комбинаций в систематическом виде.
В этом коде содержатся три сегмента. Первый сегмент
рассчитывает скользящие средние. Параметр avgtype выбирает вид среднего: 1 —
простое, 2 — экспоненциальное, 3 — треугольное с передним взвешиванием, 4 —
модифицированное VIDYA. Даже если в коде использовано всего одно среднее,
рассчитываются два одинаковых, чтобы сделать выбор вида скользящего среднего
независимым от модели. Также рассчитывается средний истинный диапазон, значение
которого требуется для установки защитных остановок и целевых прибылей в
стратегии стандартных выходов. Два дополнительных параметра — fastmalen и
slowmalen — указывают период быстрой и медленной скользящих средних. Значения
скользящих средних сохраняются в векторах fastma и stowma.
Следующий блок использует выбранную модель для получения
сигналов выхода, цен для стоп- приказов и цен для лимитных приказов. Сначала
определяются простые соотношения значений (CrossesAbove, CrossesBelow, Turnsllp
и TurnsDown). В зависимости от mode/type одна из 4 видов моделей скользящих
средних генерирует сигнал. Переменная modeltype принимает следующие значения: 1
— классическая, следующая за трендом модель пересечения двух скользящих
средних; 2 — следующая за трендом модель, основанная на наклоне; 3 —
противотрендовая модель, основанная на пересечении и 4 — противотрендовая
модель на основе поддержки/сопротивления. В классической модели, основанной на
пересечении скользящих средних, трейдер открывает длинную позицию, если быстрое
среднее поднимается выше медленного, и короткую, если быстрое среднее
опускается ниже медленного. Эта модель также может содержать сравнение
скользящего среднего и цены в случае, когда период быстрого среднего приравнен
к единице. При использовании основанной на наклоне модели, следующей за
трендом, трейдер покупает, когда скользящее среднее после снижения стало расти,
и продает в обратной ситуации. Эта модель требует только медленного скользящего
среднего.
Противотрендовая модель представляет собой обратную версию
следующей за трендом классической модели пересечения: трейдер покупает, когда
быстрое среднее (или собственно цена) опускается ниже медленного, и продает,
когда оно поднимется выше. Такая модель — мечта для приверженцев теории противоположного
мнения: она работает строго противоположно системе следования за трендом.
Последняя модель — грубая система на основе поддержки/сопротивления, где
ожидается, что цены будут отскакивать от линии скользящего среднего, как от
уровней поддержки/сопротивления. Правила почти идентичны противотрендовой
системе пересечения за тем исключением, что медленное среднее должно двигаться
в направлении входа. Если медленное скользящее среднее стремится вверх, а цены
(или быстрое среднее) падают сверху до его уровня или ниже, то дается сигнал на
покупку; в противном случае дается сигнал на продажу. Дополнительное правило
тренда обеспечивает защиту от немедленного разворота позиции после
соприкосновения или пересечения средних. Без этого ограничения быстрый пробой с
последующимразворотом вызвал бы два входа — желаемый вход против тренда и
второй при пересечении средней во время отката цен. Контроль тренда позволяет
входить только при движении в одном направлении: пересечение и отскок при
повышающемся тренде приводят к открытию длинной позиции, а при понижающемся
тренде — к открытию короткой.
В последней части кода параметр ordertype определяет вид
приказа: 1 — рыночный приказ при открытии; 2 — лимитный приказ; 3 — стоп-
приказ. Генерация приказа на покупку или продажу либо отсутствие приказа
определяется тем, какой сигнал был сгенерирован предыдущим блоком программы;
эта информация содержится в переменной signal: 1 — покупка; —1 — продажа
(открытие короткой позиции); 0 — нет приказа.
Уровень цены лимитного приказа (limprice) рассчитывается
как сумма максимума и минимума текущего дня, деленная на два. Поскольку многие
из моделей не имеют естественного уровня цены для установки входных стоп-
приказов, используется стандартный стоп. Его цена (stpprice) получается таким
образом: берется цена закрытия предыдущего дня и к ней прибавляется (при
сигнале для длинной позиции) или от нее отнимается (при сигнале для короткой
позиции) средний истинный интервал за последние 50 дней, умноженный на 0,50;
т.е. рынок должен сместиться как минимум на половину среднего дневного движения
в направлении желаемого входа, чтобы этот вход имел место. Такой стоп- приказ
как бы добавляет методику пробоя к скользящим средним — рынок должен пробить
некоторую границу, чтобы сработал вход. Поскольку тестов проводилось множество,
мы приводим только наиболее интересные результаты статистического анализа.
Статья размещена в рубрике: Анализ входов и выходов в сделки на финансовых рынках
|