ChartApplyTemplate - Операции с диаграми - MQL4 Справочник - ДокументацияMQL4
Прилага зададения шаблон към графиката. Дадената команда влиза в опашката със съобщения на графиката и се изпълнява едва след като всички предишни команди са обработени.
bool ChartApplyTemplate ( дълъг chart_id, // ИД на диаграма константен низ име на файл // име на шаблонен файл );
[in] ИД на диаграма. 0 означава текущата диаграма.
[in] Име на файла, съдържащ шаблона.
Връща true, ако командата е поставена успешно в опашката на диаграмата, в противен случай false. За да получите информация за грешка, трябва да извикате функцията GetLastError().
Ако с помощта на тази функция се зареди нов шаблон от EA върху графиката, към която е прикрепен, EA ще бъде разтоварен и няма да може да продължи да работи.
Права за търговия и използване на DLL
За MQL4 програма, стартирана на диаграма, потребителят може да активира или деактивира при стартиране:
- Извършване на търговски сделки
- Извиквания на функции от DLL.
Терминалът ви позволява да запазите персонализирана диаграма като шаблон с всички индикатори и съветници, работещи върху нея, което ви позволява бързо да приложите настройките на шаблона към всякакви други графики.
Когато шаблонът е запазен, правата за програмите, работещи на графиката, също се запомнят: правото на търговия и правото на използване на DLL. От съображения за сигурност тези права могат да бъдат ограничени при прилагане на шаблон към диаграма:
Правата за търговия и използване на DLL не могат да бъдат надстроени, когато EA се стартира чрез прилагане на шаблон с помощта на функцията ChartApplyTemplate().
Ако програмата mql4, която извиква функцията ChartApplyTemplate(), няма права за търговия, тогава експертният съветник, зареден чрез шаблона, също няма да има права за търговия извънв зависимост от настройките на шаблона.
Ако програмата mql4, която извиква функцията ChartApplyTemplate(), има права за търговия, но няма права в настройките на шаблона, тогава експертният съветник, зареден с помощта на шаблона, няма да има права за търговия.
Използване на шаблони
С помощта на езика MQL4 можете да зададете много свойства на диаграмата, включително задаване на цветове с помощта на функцията ChartSetInteger():
- Цвят на фона на графиката;
- Цвят на оси, скали и OHLC линии;
- Цвят на мрежата;
- Цвят на обеми и нива на отваряне на поръчки;
- Цветът на лентата нагоре, сянката и кантът на тялото на бича свещ;
- Цветът на долната лента, сянката и кантът на тялото на мечата свещ;
- Цвят на линията на графиката и японските свещници "Доджи";
- Цветът на тялото на бича свещ;
- Цвят на тялото на меча свещ;
- Цвят на линията на офертната цена;
- Цвят на линията Ask-price;
- Цветът на ценовата линия на последната завършена сделка (Last);
- Цвят на нивата на стоп поръчки (Stop Loss и Take Profit).
Освен това на графиката може да има много графични обекти и индикатори. Достатъчно е да персонализирате външния вид на диаграмата веднъж с всички необходими индикатори и да я запазите като шаблон, така че по-късно да можете да приложите този шаблон към всяка диаграма.
Функцията ChartApplyTemplate() е проектирана да използва предварително записан шаблон и може да се използва във всяка mql4 програма. Вторият параметър на функцията ChartApplyTemplate() е пътят до името на файла, съдържащ шаблона. Шаблонният файл се търси по следните правила:
- ако в началото на пътя има обратна наклонена черта разделител "\" (написано "\\"), тогава шаблонът се търси спрямо пътя terminal_data_directory\MQL4,
- ако няма обратна наклонена черта, тогава шаблонсе търси спрямо изпълнимия файл EX4, в който се извиква функцията ChartApplyTemplate();
- ако шаблонът не е намерен в първите две опции, тогава търсенето се извършва в папката terminal_directory\Profiles\Templates\.
Тук terminal_directory означава папката, от която се стартира клиентският терминал на MetaTrader 4, а terminal_data_directory означава папката, където се съхраняват модифицираните файлове и нейното местоположение може да зависи от типа на операционната система, потребителското име и настройките за сигурност на компютъра. По принцип това са различни папки, въпреки че в някои случаи може да са еднакви.
Местоположението на папките terminal_data_directory и terminal_directory може да се намери с помощта на функцията TerminalInfoString().
//--- директория, от която се стартира терминала string terminal_path= TerminalInfoString ( TERMINAL_PATH ); Печат ("Терминална директория:" , terminal_path); //--- директория с данни на терминала, съдържаща папката MQL4 с експертни съветници и индикатори низ terminal_data_path= TerminalInfoString ( TERMINAL_DATA_PATH ); Печат ( "Директория с данни на терминала:" , terminal_data_path );
//--- търсим шаблон в terminal_data_directory\MQL4\ ChartApplyTemplate (0, "\\first_template.tpl"))
//--- потърсете шаблона в папката EX4_executable_file_directory\, след това в terminal_data_directory\Profiles\Templates\ ChartApplyTemplate (0, "second_template.tpl"))
//--- потърсете шаблон в папката EX4_executable_file_directory\My_templates\, след това в папката terminal_directory\Profiles\Templates\My_templates\ ChartApplyTemplate (0, "My_templates\\third_template.tpl" ))
Шаблоните не са ресурси и не могат да бъдат включени в изпълним файл на EX4.