Ценовые индикаторы в Timing Solution: как избежать утечек ценовой информации

 

 

Когда мы запускаем процедуру бэктестинга (Back Testing) в Timing Solution, необходимо иметь в виду, что некоторые ценовые осциляторы по умолчанию могут допускать утечки ценовой информации. Сразу определимся с терминами: утечки ценовой информации, это когда программа может увидеть то, что она не должна видеть - будущую ценовую информацию. Момент принципиальный: чтобы проверить работоспособность наших моделей, мы должны быть уверены, что программа не видит ничего, что происходит за LBC, иначе говоря, за той границей (это мы устанавливаем сами), где для нее начинается будущее. Как же это может произойти? Эффект утечек означает, что не сама программа, а используемые ею индикаторы "видят" самое близкое будущее - происходит это потому, что мы используем будущую ценовую информацию для вычисления этих самых индикаторов.

Давайте рассмотрим весь доступный нам в программе спектр осциляторов (именуемых Relative Price Oscillators, или коротко PRO)

 

           

 

Здесь есть 4 варианта. Ценовые индикаторы, вычисляемые по методике "Simple" и “Exponent” не содержат утечек информации вообще - чтобы вычислить их сегодняшнее значение, мы используем ценовую информацию для сегодняшнего дня, вчерашнего дня, двух дней назад и так далее … В отношении этой группы индикаторов мы можем быть совершенно спокойны. Другие два , “Symmetric1” и “Symmtric2”, используют будущую ценовую информацию по определению, и мы категорически не должны использовать их в процедуре Back Testing для прогнозов "на следующий день". Чтобы оценивать, как далеко этот индикатор "видит" в будущее, используйте эту формулу:

 

(Период MA1), делится на 2.

 

См. этот пример:

 

 

Здесь период утечек приходится на 2.5 ценовых бара впереди. Этот эффект особенно существенен для осциллятора “Symmetric2”. Другими словами, этот вид осциллятора не должен использоваться для прогнозов на 1-2 ценовых баров вперед.

Просмотр, как это работает практически:

 

 

На рисунке изображено три относительных ценовых осциллятора, соответствующие различным видам скользящих средних значений. Локальная нижняя точка 7 января 2005 отражена синей (Symmetric2) линией совершенно точно, в то время как две другие кривые, соответствующие другим типам скользящих средних значений отражают эти поворотные точки только два дня спустя.

Для прогноза на 1-2 дня, этот выбор между различными скользящими средними значениями является критическим. Но, например, для прогноза 10 дней, этот эффект уже практически не ощутим. Для феноменологических моделей, когда мы прогнозируем на долгий срок, этот эффект вообще перестает быть значимым.

 

Чтобы продемонстрировать различие между Exponent и Symmetric moving averages, я создал RPO (3,10,10) для Exponent (черная линия) и Symmetric1 (красные) для скользящих средних значений:

 

 

           

 

 

 

 

Для detrended zigzag indicator, этот эффект более существенен.

 

Cмотрите на этот пример:

 

 

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

 

Чтобы минимизировать (устранить полностью его не удастся) этот эффект, я рекомендовал бы пока использовать "Нормализованный" LBC в модуле Back Testing:

 

 

 

В будущем я планирую модернизировать модуль Back Testing с возможностью повторно вычислить все "подозреваемые" индикаторы относительно Learning Border Cursor в модуле Back Testing. Для Detrended Zigzag, мы просто не имеем никаких других возможностей.