ПОЛУЧЕНИЕ СИГНАЛОВ ВХОДА ПРИ ПОМОЩИ ОСЦИЛЛЯТОРОВ
Существуют различные способы применения осцилляторов для получения торговых сигналов. В этой главе будут рассмотрены три из них.
Один метод состоит в том, чтобы использовать осциллятор как индикатор перекупленности/перепроданности. Покупка происходит, если значение осциллятора опускается ниже некоторого порога в зону перепро-данности и затем возвращается обратно. Продажа происходит, если осциллятор поднимается выше порога перекупленности и затем опускается обратно. Существуют традиционные пороги, используемые с разными осцилляторами.
Также осциллятор (вернее, его скользящее среднее) может служить сигнальной линией, и, если осциллятор пересекает свое среднее вверх или вниз, подаются соответствующие сигналы. Эти сигналы могут использоваться одновременно для входа и выхода, а также только для входа со стандартным выходом.
Еще один известный метод - поиск расхождений осциллятора и цены, описанный МакХортером (McWhorter, 1994). Расхождение получается тогда, когда цены образуют новый минимум (ниже предыдущих минимумов) , а осциллятор - б о л е е высокий минимум (выше предыдущих минимумов). Такое расхождение дает сигнал к покупке. В противоположной ситуации, когда цены образуют новый максимум, а осциллятору не удается достичь предыдущего максимума, что является признаком потери ценового импульса, генерируется сигнал к продаже. Расхождение иногда легко увидать глазами, но для программы с простыми правилами найти его почти всегда
...[ ... ]
Помимо MACD
Помимо MACD, другие осцилляторы также, как правило, не отстают или даже опережают цены. По рассмотренным ниже причинам обгоняющие или одновременные индикаторы вовсе не обязательно дают большие прибыли, чем запаздывающие скользящие средние - своевременность сигналов не обязательно означает их прибыльность. Проблема в том, что даже при наличии некоторых абсолютно точных сигналов, осцилляторы будут генерировать множество ложных. В условиях сильного тренда многие из ожидаемых разворотов никогда не происходят, и система входит в рынок в неверном направлении. Таким образом, за счет точности теряется надежность. Что важнее - поздний, но надежный вход или ранний, но менее надежный - вопрос отдельного эмпирического исследования. В принципе эта проблема возникает при использовании любого прогностического метода - чем больше задержка, тем точнее (и бесполезнее) прогноз и, чем больше опережение, тем он полезнее (и ошибочнее). Эта логика напоминает принцип неопределенности Гейзенберга.
В качестве примера получения сигналов входа рассмотрим стохастический осциллятор: простая модель производит покупку, если значение осциллятора падает ниже традиционного порога перепроданности на уровне 20 и затем поднимается. Продажа производится, когда значение осциллятора поднимается выше традиционного порога перекупленности на уровне 80 и затем снова опускается. Поскольку при таких торговых правилах сигнал на закрытие текущей позиции вряд ли появится скоро, требуется вводить независимый критерий выхода.
...[ ... ]
ХАРАКТЕРИСТИКИ ВХОДОВ
ХАРАКТЕРИСТИКИ ВХОДОВ НА ОСНОВЕ ОСЦИЛЛЯТОРОВ
Основанные на осцилляторах входы обладают преимуществами опережения или совпадения по времени с поведением цены, следовательно, они пригодны для входов, направленных против тренда, и теоретически могут обеспечивать высокий процент выгодных сделок. Осцилляторы обычно работают наилучшим образом на циклических или не подверженных трендам рынках. На этих рынках осцилляторы указывают на максимум или минимум еще до начала движения цен. Таким образом, проскальзывание минимально или даже отрицательно, и переоценка позиции становится положительной уже при очень малом движении цены. В таких случаях легко получить солидную прибыль даже при неоптимальной стратегии выхода. Считается, что на рынках тренды присутствуют всего около 30% времени; по нашим данным, на многих рынках - еще реже. При использовании соответствующих фильтров для избежания осцилляторных входов во время сильного тренда, видимо, можно создать замечательную модель входа. Такое фильтрование - прямая противоположность тому, которое используют при тестировании систем, основанных на пробоях, когда необходимым условием было наличие трендов, а не их отсутствие. Основная слабость простых осцилляторных входов в том, что они малоэффективны при длительных трендах и часто выдают множество ложных сигналов разворота. Некоторые осцилляторы легко застревают на крайних значениях, например стохастический нередко имеет значение 100 очень долго, если на рынке происходит сильное направленное движ
...[ ... ]
МЕТОДИКА ТЕСТИРОВАНИЯ
Все прив
МЕТОДИКА ТЕСТИРОВАНИЯ
Все приведенные ниже тесты были осуществлены с помощью осцилля-торных моделей на портфеле разнообразных ценных бумаг. Можно ли получать прибыльные сделки с осцилляторными моделями? Как они работают во времени - ухудшается или улучшается их функционирование за последние годы? Целью нашего тестирования был ответ на эти вопросы
Во всех тестах использовался стандартный выход, описанный в предыдущих главах. Правила входов будут рассмотрены параллельно с кодом модели и отдельными тестами. Сделки закрывались при поступлении приказа на вход в обратном направлении или при исполнении стандартного выхода. Платформа тестирования тоже была стандартной.
За последние годы мы закодировали на языке C++ ряд осцилляторов, описанных в Technical Analysis of Stocks and Commodities и в ряде других источников. В этой главе мы сравниваем работу версий C++ осцилляторов MACD, RSI и стохастического с их версиями в TradeStation. В большинстве случаев результаты идеально совпадали, но в одном случае, а именно для Медленного %К, результат разительно отличался. Разбор кода показал, что TradeStation рассчитывает Медленный %К как экспоненциальное скользящее среднее от Быстрого %К. В нашем же коде отдельно рассчитываются простые скользящие средние с периодом 3 дня для числителя и знаменателя формулы Быстрого %К. Согласно уравнениям, приведенным Мейбахом (Meibahr, 1992) и другими источниками, правильной является наша версия на C++. Если читатели захотят повторить наши расчеты в TradeS
...[ ... ]
Логика кода
Логика кода весьма напоминает программу, использованную для тестирования скользящих средних. Сначала копируется ряд параметров в местные переменные для простоты ссылок и считывания дальнейшим кодом. Затем проверяется наличие непригодных сочетаний параметров, например для MACD (osctype = 4) длина короткого скользящего среднего должна быть меньше, чем длинного, иначе тест будет пропущен. В следующем крупном блоке osctype выбирает вид рассчитываемого осциллятора (1 - быстрый стохастический, 2 - медленный стохастический, 3 - классический RSI, 4 - классический MACD) . Осциллятор oscline затем рассчитывается в виде ряда данных или вектора, генерируются дополнительные кривые, связанные с ним, например сигнальная линия sigline или медленная версия осциллятора. Верхний (upperband) и нижний (lowerband) пороги либо рассчитываются, либо задаются. Для стохастического осциллятора используются стандартные пороги 80 и 20, для RSI - пороги на уровне 70 и 30. Хотя MACD как таковой не имеет порогов, пороги для него устанавливаются на уровне плюс-минус полтора стандартных отклонения от нуля. Затем начинается процесс перебора данных, день за днем.
В цикле перебора данных представляют интерес два главных блока - первый генерирует сигналы покупки и продажи, а также цены для лимитного и стоп-приказов, используемых выбранной моделью. Параметр mode/type выбирает модель: 1 - модель перекупленности/перепроданно-сти, 2 - модель сигнальной линии, 3 - модель на расхождении. При этом используется один из в
...[ ... ]