Завантажити безкоштовно індикатор 'Мультивалютний індикатор "Індекс долара" iUSDx' від 'Lizar' для MetaTrader 5 в MQL5 Code Base
USDx - індекс, що показує відношення долара США до кошика із шести основних валют: Євро (EUR), Ієна (JPY), фунт стерлінгів (GBP), Канадський долар (CAD), Шведська крона (SEK) і Швейцарський франк (CHF). Розраховується з березня 1973 року. Березень 1973 року був обраний в якості базового періоду, оскільки з цього часу найбільші торговельні країни ввели плаваючі курси валют. Базовим значенням індексу USDx був прийнятий рівень 100,00. Цей індекс є основним індикатором фондового ринку США і дає загальне уявлення про міжнародну вартості долара США.
Індекс розраховується як середнє геометричне зважене цих валют за формулою:
USDx = 50,14348112 * EURUSD ^ (- 0,576) * USDJPY ^ 0,136 * GBPUSD ^ (- 0,119) * USDCAD ^ 0,091 * USDSEK ^ 0,042 * USDCHF ^ 0,036
У формулі статечні коефіцієнти відповідають ваг валют в кошику.
Особливості та переваги даної реалізації індикатора індексу USDx:
- Використовує сервіс надається " Control panel MCM ".
- Працює в реальному мультивалютний режимі: отримує все тики по кожному символу в реальному часі без затримок. По кожному символу може приходити по кілька тиків в секунду, всі вони будуть оброблені.
- Повна синхронізація між собою даних всіх валютних пар. Якщо з якоїсь валютній парі є "діра" в історії, то індекси не буде пораховано і на лінії індикатора теж буде "діра":
До речі, при появі нового бару іноді лінія індикатора отрісовивается не відразу, вона з'явиться коли будуть дані по всіх валютних парах.
- Повний контроль синхронізації даних з сервером по кожній валютній парі окремо. Це досягається завдяки події "Ініціалізація" панелі управління " Control panel MCM ". Це дозволяє економити на перерахунку індикатора після, наприклад, докачки історії, перераховуючи дані тільки по тій парі, по якій прийшов подія" Ініціалізація ".
- Код індикатора простіше, ніж якби його реалізовувати через OnTick () або OnTimer (). І немає затримки отримання даних за часом.
- Можна "на льоту" змінювати інтенсивність отримання котирувань для перерахунку індексу. Наприклад. Якщо ви розраховуєте індекс на годинному графіку і у вас немає необхідності стежити за зміною індексу кожен тик, то за допомогою " Control panel MCM "Можна налаштувати події так, щоб індекс перераховувався, наприклад, раз на хвилину або раз в п'ять хвилин або просто раз на годину. Хоча я рекомендую залишити подія" новий тик "на кожному інструменті. Це пов'язано з роботою функцій CopyXXXX, які не завжди мають можливість надати дані по символу і доводиться їх запитувати ще раз. Краще це зробити на наступному тику. ІМХО, звичайно.
Особливості установки:
- Завантажте на свій комп'ютер Панель управління мультивалютних режимом "Control panel MCM" і скомпілюйте файли "iControl panel MCM.mq5" і "Spy Control panel MCM.mq5".
- У вікні "Огляд ринку" потрібно виставити символи в наступному порядку: 1. EURUSD, 2. USDJPY, 3. GBPUSD, 4. USDCAD, 5. USDSEK, 6 USDCHF. Ця умова викликано лише тим, що я не вставив в індикатор відповідну перевірку і ця послідовність потрібна для правильного розрахунку індикатора.
- Розпакуйте архів iUSDx.zip в каталог / MQL5. З папки / MQL5 / Indicators / iUSDx / запустіть файл iUSDx.ex5, наприклад, на графіку EURUSD з періодом М1. Повинні отримати картинку, яка подібна до зображенні вище.
- Последовтельность по всім шести символів в меню "Подія" панелі " Control panel MCM "Встановіть подія" Новий тик "як описано тут .
- Додатково по символу EURUSD встановіть подія "новий бар" на хвилинному графіку. В індикаторі ця подія використовується для синхронізації при появі нового бару на поточному таймфрейме, який у нас дорівнює М1.
Далі можна насолоджуватися .... як мінімум, я так задумував. Писалося "на скору руку", так що якщо виявите баги, пишіть в личку.