Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

PCA Synthetics - Recycle Legacy - индикатор для MetaTrader 5

Просмотров:
4137
Рейтинг:
(14)
Опубликован:
2016.11.28 15:53
Обновлен:
2016.11.29 15:31
\MQL5\Indicators\AIV\ \MQL5\Include\AIV\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Индикатор для автоматического подбора коэффициентов для каждого инструмента в псевдостационарном портфеле, стремящегося к равновесию в нуле.

Индикатор требует наличие библиотеки AlgLib в папке Include\Math терминала.


Немного теории

Каждый инструмент движется в своем направлении, каждое направление — отдельное измерение в многомерной матрице. Вращая матрицу, то есть домножая каждый ее элемент на опр. число, мы пытаемся найти ось, расстояние между которой и всеми инструментами будет минимально, то есть наименьшую общую дисперсию. Число, на которое домножается каждый элемент матрицы, впоследствии становится значением угла, на который нужно повернуть движущийся инструмент, чтобы он двигался в одном направлении с остальными. Это значение угла и является коэффициентом для каждой валюты в портфеле.

Если значение коэффициента больше 0, то валюта покупается, меньше 0 — продается. Таким образом, время от времени пересчитывая коэффициенты, можно поддерживать стационарность созданного синтетика. Вдобавок, PCA не просто находит ось с наименьшей дисперсией к портфелю, а несколько. Сколько инструментов в портфеле, столько и компонент (векторов). Каждая из них называется главной компонентой и определяет, насколько сильно она влияет на суммарное изменение движения портфеля.


Возможные проблемы

  1. Если не рисуется график — посмотрите, что пишется на вкладке Experts, возможно там какие-то ошибки или идет синхронизация с другими чартами, если никаких сообщений нет — покликайте по другим таймфреймам.

  2. Получаемые значения векторов сверялись с рассчитанными в пакете R, поэтому сами значения верные, но знак конкретного коэффициента может быть ошибочным, т.к. РСА не уделяет внимания знакам и определить "-" или "+" можно только эмпирически, т.е. методом тыка.

Проблема #2 с картинками описана здесь http://stats.stackexchange.com/questions/34396/im-getting-jumpy-loadings-in-rollapply-pca-in-r-can-i-fix-it


Параметры

InpVector = 0; // Если валют в портфеле N, то номер оси движения 0 = макс. дисперсия, N - 1 = минимальная
InpFrame = 300; // Плавающее окно для расчета коэффициентов, на каждый из InpDepth баров делаем InpFrame вычислений
InpDepth = 1000; // Общее кол-во баров в истории, для которых строится график
InpForward = 500; // Начиная с какого бара перестаем пересчитывать коэффициенты, пользуемся предыдущими, это OOS
InpPeriod = 1; // Сглаживание для МА, чтобы график смотрелся менее дерганным
InpTimePeriod = PERIOD_CURRENT; // Для какого таймфрейма делаются расчеты
InpNormalize = true; // Нормализовывать ли цены перед отображением, для сглаживания разрывов волатилности USDJPY и EURGBP
InpSynthetics = true; // Рисовать суммарный синтетик помноженный на найденные коэффициенты или каждую пару в отдельности
InpPrices = Logs; // Алгоритм нормализации пар
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Пары для портфеля
InpMagic = "ID" // Произвольное имя индикатора, чтобы проще размещать на одном графике без конфликтов

Идея заимствована отсюда: https://www.mql5.com/ru/code/9908


Exp_Fractal_Force_Index Exp_Fractal_Force_Index

Самый простой советник по фрактальному Force_Index.

Fractal_Momentum Fractal_Momentum

Фрактальный Momentum.

Relation - Chart Builder Legacy Relation - Chart Builder Legacy

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

RSIOMA_HTF RSIOMA_HTF

Индикатор RSIOMA с возможностью изменения таймфрейма индикатора во входных параметрах.