Новая версия платформы MetaTrader 5 build 3440: Новый отчет по торговому счету - страница 10

 
BillionerClub #:

Правильно было бы загрузка шаблона по имени а уже потом по умолчанию, и также при смене символа в чарте необходима загрузка шаблона. Мне лично показалось слишком трудно использовать ChartApplyTemplate на полном автомате В любом случае бывает чарт всего один и индикатор, который грузил бы шаблоны, будет выгружен и не сможет продолжить работу.

Если Вы будете создавать шаблоны, теми же инструментами которые их потом загружают, то проблем не будет..

 
Alexey Viktorov #:

Уточните пожалуйста как это сделать, что я сделал не так?

Результат

ERR_INVALID_PARAMETER 4003 Ошибочный параметр при вызове системной функции


Цель: Из советника сохранить текущие настройки графика.… Но они сохраняются с установленным советником… Изменить настройки графика и затем при удалении советника с графика надо применить тот шаблон, но уже без советника.

Нельзя указывать полное имя файла, так как мы работаем в песочнице.


filename

[in]  Имя файла для сохранения шаблона. Расширение ".tpl" будет добавлено к имени файла автоматически, указывать его не требуется. Шаблон сохраняется в папку каталог_данных\Profiles\Templates\ и может быть использован также и для ручного применения в терминале. Если шаблон с данным именем уже существует, то его содержимое будет переписано заново.

На самом деле немного устарело, так как шаблоны хранятся в каталог_данных\MQL5\Profiles\Templates\

Сохраняйте шаблон из скрипта. Скрипты в шаблон не попадают


 
Vladimir Pastushak #:

Если Вы будете создавать шаблоны, теми же инструментами которые их потом загружают, то проблем не будет..

Да не это принципиально будет более красивое решение, для всех. 

Всего 2 галочки в настройках чарта и у трейдера более быстрое решение. Тем более оно частично уже реализовано виде загрузки шаблона по умолчанию. Оно должно быть именно лаконичным инструментом для ручных трейдеров.

 
Slava #:
Нельзя указывать полное имя файла, так как мы работаем в песочнице.


На самом деле немного устарело, так как шаблоны хранятся в каталог_данных\MQL5\Profiles\Templates\

Сохраняйте шаблон из скрипта. Скрипты в шаблон не попадают


Это не самое лучшее решение. Я запускаю советник, а перед этим я должен скриптом сохранить шаблон? А какая разница, что вручную его сохранить, что скриптом? Хотя очень странно, что вручную можно сохранить шаблон в Common\Files и вручную оттуда применить, а советником или скриптом увы нельзя.

В общем понятно, что мой вариант специфичное использование шаблонов и никто не будет этим заморачиваться и править поведение функций, а жаль. Хотел из кода поправить содержимое шаблона, удалить запись о прикреплённом советнике и после этого применить этот шаблон… Видимо придётся собирать по максимуму свойства графика, все индикаторы и при удалении советника пытаться восстановить состояние графика. Но не факт, что успеет всё отработать в OnDeInit()… буду пробовать.

 
Alexey Viktorov #:

Это не самое лучшее решение. Я запускаю советник, а перед этим я должен скриптом сохранить шаблон? А какая разница, что вручную его сохранить, что скриптом? Хотя очень странно, что вручную можно сохранить шаблон в Common\Files и вручную оттуда применить, а советником или скриптом увы нельзя.

В общем понятно, что мой вариант специфичное использование шаблонов и никто не будет этим заморачиваться и править поведение функций, а жаль. Хотел из кода поправить содержимое шаблона, удалить запись о прикреплённом советнике и после этого применить этот шаблон… Видимо придётся собирать по максимуму свойства графика, все индикаторы и при удалении советника пытаться восстановить состояние графика. Но не факт, что успеет всё отработать в OnDeInit()… буду пробовать.

Запишите шаблон самостоятельно в папку Files. Только нужные вам строки. Формат шаблона примитивен.

ChartApplyTemplate(chart_id,"\\Files\\template_name.tpl");

 
Slava #:

Запишите шаблон самостоятельно в папку Files. Только нужные вам строки. Формат шаблона примитивен.

ChartApplyTemplate(chart_id,"\\Files\\template_name.tpl");

Slava спасибо за потраченное время на попытку помочь, но этот вариант не проходит. Это я пробовал до того как спросить в первый раз. В этом варианте шаблон сохраняется в MQL5\Profiles\Templates\Files\

Но открыть

int  FileOpen( 
   string  file_name,           // имя файла 
   int     open_flags,          // комбинация флагов 
   short   delimiter='\t',      // разделитель 
   uint    codepage=CP_ACP      // кодовая страница 
   );


этот примитивный файл для редактирования не получится. Песочницы разные.

 
Alexey Viktorov #:

Slava спасибо за потраченное время на попытку помочь, но этот вариант не проходит. Это я пробовал до того как спросить в первый раз. В этом варианте шаблон сохраняется в MQL5\Profiles\Templates\Files\

Но открыть


этот примитивный файл для редактирования не получится. Песочницы разные.

Можно сделать симлинк.

 
JRandomTrader #:

Можно сделать симлинк.

Да можно. Но если советник не только для себя, то объяснять что это такое себе дороже. 

 
Alexey Viktorov #:

Slava спасибо за потраченное время на попытку помочь, но этот вариант не проходит. Это я пробовал до того как спросить в первый раз. В этом варианте шаблон сохраняется в MQL5\Profiles\Templates\Files\

void OnStart()
{
  const string FileName = "Template.tpl";
  ushort Bytes[];
  
  if (ChartSaveTemplate(0, "\\Files\\" + FileName) && FileLoad(FileName, Bytes))
    Print(ShortArrayToString(Bytes));
}
 
fxsaber #:

Очень интересное решение, спасибо.

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

Прошу подсказку.

Пришла умная СМСка в голову из документации. 
Причина обращения: