Индикатор Index

Индекс на основе среднего геометрического. Показывает отношение инструмента ко всем инструментам некоторого набора. Можно комбинировать индексы и пары.

Проект

Последнюю версию и описание параметров можно найти здесь: https://gitlab.com/fxcoder-mql/index.

Формула расчёта индекса

[math]Index(C)=(\prod\limits^{N}_{i=1}{C/C_i})^\frac{1}{N}[/math]

, где:
  • [m]C[/m] - валюта, для которой ищется индекс
  • [m]C_i[/m] - валюты набора (CalcCurrs), включая [m]C[/m]
  • [m]C/Ci[/m] - котировка кросса
  • [m]N[/m] - количество валют в наборе, включая [m]C[/m]
В индексе все кроссы рассчитываются через базовую валюту. Например, [m]EUR/CHF=EUR/USD\cdot USD/CHF[/m] при базовой валюте USD. Это снижает требования к истории котировок (достаточно всех кроссов валют из набора "Currency Set" и базовой валюты), а также дает возможность получить больше данных, так как для базовой валюты (в случае USD) у большинства брокеров больше исторических данных.

Вместо валют могут быть любые другие инструменты.

Основные свойства индекса


На картинке продемонстрированы два свойства индексов:
  • обратимость (отношение индексов двух валют равно их кроссу)
  • произведение всех индексов набора равно 1

Использование формулы

В формуле индикатора можно совмещать сразу несколько индексов или кроссов. Например, может быть интересно посмотреть совокупное движение нескольких инструментов и/или индексов.


Если взять зацикленную формулу (например, EURUSD*USDCHF/EURCHF), то получится горизонтальная прямая с небольшими выбросами. Эти выбросы появляются за счет небольшого (обычно в пределах спреда) расхождения котировок, а также из-за усредненных формул используемой цены (Median, Typical, Weighted), либо предельных (High, Low), время достижения которых может сильно не совпадать у разных инструментов для одного и того же бара.


В последних версиях индикатора формула приводится к парам с USD, и такая формула полностью вырождается в единицу без таких выбросов.

Логарифмический масштаб

Помимо варианта с умножением и делением формулу можно записать с использованием знаков плюс и минус, что укажет индикатору использовать в расчётах логарифмы.

Помимо более понятной формы записи, логарифмирование упрощает запись формул для оценки совместного движения. Например, если необходимо посмотреть совместное движение EUR и GBP, то формула может быть средним геометрическим их индексов: EUR^0.5 * GBP^0.5. Возведение в степень здесь необходимо, т.к. иначе исказится масштаб, особенно если валют ещё больше. В логарифмическом же масштабе формула будет выглядеть как EUR*0.5 + GBP*0.5, и здесь множители уже можно опустить, они никак не влияют на форму кривой.

История котировок

Если вы постоянно не контролируете наличие котировок в вашем терминале, при использовании индикатора рекомендуется держать открытыми также графики всех пар валют из набора "Currency Set" с USD того же таймфрейма.

См. также

MetaTrader 5 и собственные символы

Начиная с билда ~1700 в MT5 появилась возможность создавать собственные символы на основе формул. Этот функционал почти полностью заменяет функционал этого индикатора и подобных, однако требует ручного разбора всех индексов в формуле.

7 комментариев:

  1. У меня такое впечатление, что индикатор со стандартными настройками всего лишь показывает реверс. Возможно ли его настроить так, чтобы он действительно показывал индекс доллара, евро или другой валюты, как здесь: https://www.mataf.net/ru/forex-charts/usd?

    ОтветитьУдалить
    Ответы
    1. Доллар - сильная валюта, неудивительно, что, если смотреть её индекс в сравнении с кроссами с ней, то для большинства пар типа C/USD будет казаться, что это просто реверс, так как валюта C мало что решает.

      Там (по ссылке) используется другая формула, судя по описанию - на основе изменения относительно фиксированной точки во времени (в прошлом). Не знаю, какая из формул лучше. Их формула такая же синтетическая, как и эта. Посмотрел на их графики, они очень похожи на мои.

      Давно как-то сравнивал разные формулы и обнаружил, что форма кривой везде очень похожа, но мой вариант мне нравится больше из-за того, что в нём всё сходится в любой точке, и не требуется выбирать точку отсчёта.

      Удалить
    2. Нашёл тему, где этот индикатор начинался, там же исследовался вопрос похожести различных подходов, а также схожие темы:
      http://www.speculant.com/forum/showthread.php?t=168

      Рекомендую хотя бы к беглому к прочтению.

      Удалить
    3. Действительно, там используется не USDX. Но часто можно увидеть расхождения, когда индекс остановился, а валюта продолжает двигаться. Затем происходит разворот и общее падение. Также встречаются ситуации, когда индекс пробивает поддержку/сопротивление, а валюта делает откат. После чего происходит продолжение движения. В общем рекомендую понаблюдать.

      ЗЫ Прочитал всю ветку, но в формулах не силен. Поэтому основные мысли уловить не смог.

      Удалить
    4. По поводу "сильной валюты" поправлю. Здесь это скорее "волатильная валюта". Чем больше она движется, тем больший вклад в индекс она вносит. Доллар в последние месяцы трендит, отсюда и его явное влияние на индикатор.

      Удалить
    5. Скорее "сильная валюта" определяется ее весом в корзине индекса доллара. Евро 52%, Иена 33% и 15% все остальные хард кёрренси. Фунт может летать через весь экран, а индекс доллара не шелохнется, еврик пройдет фигуру и индекс отреагирует половиной фигуры

      Удалить
  2. Hello mr.Fxcoder!!

    Looks like JPY doestn work properly on my side , i am not dure if its due to the code or its by my server broker data ...

    Thanks

    ОтветитьУдалить