Як поміняти відображення ліній і їх кольору в коді індикатора
Як самостійно модифікувати код індикатора таким чином, щоб він показував тільки потрібні вам лінії, або ці лінії були потрібної вам товщини і кольору відразу при установці індикатора? Сьогодні ми розглянемо рішення даного завдання.
Ми вже розглядали систему 120 Cloud System. в якій застосовуються індикатори з нестандартними настройками. Наприклад, індикатор Ишимоку в ній виглядає так:
Домогтися такого ефекту можна, змінивши вигляд індикатора:
Як бачимо, всі непотрібні лінії відключені - зроблені невидимими за допомогою атрибута None. Товщина основної лінії встановлена в 2 пункти і задана кольором Blue (синій).
Тепер ці настройки закріплені в поточній версії терміналу за цим індикатором. Але що робити, якщо потрібно цей індикатор перенести в інший термінал або відправити товаришеві?
Є одне рішення - створити темплейт поточного графіка і скопіювати в інший термінал разом з індикатором ще й темплейт. Але у цього способу є один суттєвий недолік. Разом з настройками потрібного нам індикатора на графік будуть передані настройки всього графіка, і якщо у вас налаштовані нестандартні кольори свічок або кольору інших індикаторів, то вони можуть змінитися на ті кольори, які були у графіка-джерела.
Який же є вихід в даній ситуації? Досить простий і універсальний! Якщо ваш індикатор в форматі .mql4 - вихідний код, то модифікації ви можете зробити безпосередньо в ньому.
Давайте розглянемо покроково, як це робиться. Для початку подивимося, як взагалі виглядає індикатор Ишимоку в терміналі МетаТрейдер 4.
У Вікні навігатора виберіть потрібний нам індикатор і двічі клікніть на нього лівою клавішею миші. Нагадуємо, що для модифікації коду індикатора він повинен мати вихідний код - формат .mq4.Згадуйте наші уроки програмування. Колір ліній задається даними параметром:
І, як бачите, в прикладі вище таких кольорів задано всього 7 найменувань - для всіх ліній індикатора.
Саме з них нам потрібно залишити тільки одну лінію, відключивши інші 6, задати їй синій колір і товщину в 2 пункти.
Але як же дізнатися, колір якої лінії потрібно змінити, і яка взагалі лінія нам потрібна - адже їх 7 штук! Хтось може скористатися перебором і по черзі відключати всі лінії послідовно - це теж варіант, коли ми не бачили настройки того індикатора, який хочемо отримати.
Але в нашому випадку ці налаштування ми бачили, пам'ятайте:
У 5-ій лінії варто синій колір, в той час як інші відключені.
Тепер повертаємося в MetaEditor. Тут є деяка плутанина, яка часто бентежить початківців програмістів. Незважаючи на те, що буфери на MQL4 нумеруються від 0, в настройках кольору цей відлік йде з одиниці. Таким чином, потрібна нам лінія виявляється під номером 6:
Відключаємо інші лінії, просто виправляючи параметр кольору на clrNONE.
А у потрібній нам лінії пишемо потрібний нам колір - clrBlue.
Ось, що виходить в результаті:
Натискаємо F7 або кнопку «Компілювати»:
І дивимося на зовнішній вигляд індикатора після модифікації:
Залишилася одна лінія, але це ще не зовсім те, що потрібно - лінія індикатора переривчаста і не дуже добре помітна. Зробимо її суцільний і збільшимо товщину.
Для цього ми повинні прокрутити вікно з кодом індикатора на процедуру void OnInit (void). Це не започатковано код індикатора - саме в ньому задаються настройки буферів і зовнішній вигляд ліній.
Згадуємо, що буфери нумеруються від 0, тому тут нас буде цікавити буфер №5 (виділено жовтим):
STYLE_DOT - задає зовнішній вигляд лінії, що складається з точок. Нам потрібно виправити його на STYLE_SOLID - суцільна лінія.
Також відразу за новим параметром поставимо кому і задамо товщину лінії - 2.
Натискаємо «Компіляція» і бачимо результат на екрані:
Все вийшло так, як ми хотіли!
Удачі в торгівлі!
Завжди з вами, Лабораторія FOREX Review!
Журнал FX Review