Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 656

 
evillive:

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

Операции с графиками

Функции для работы с графиками. Все операции с графиками применимы только в экспертах и скриптах.

Функции, устанавливающие свойства графика, фактически служат для отправки ему команд на изменение. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Изменение графика производится в процессе обработки очереди событий данного графика.

По этой причине не следует ожидать немедленного визуального обновления графика после вызова данных функций. В общем случае обновление графика производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления внешнего вида графика используйте команду на перерисовку графика ChartRedraw().

Функция

Действие

ChartApplyTemplate

Применяет к указанному графику шаблон из указанного файла

ChartSaveTemplate

Сохраняет текущие настройки графика в шаблон с указанным именем

ChartWindowFind

Возвращает номер подокна, в котором находится индикатор

ChartTimePriceToXY

Преобразует координаты графика из представления время/цена в координаты по оси X и Y

ChartXYToTimePrice

Преобразует координаты X и Y графика в значения время и цена

ChartOpen

Открывает новый график с указанным символом и периодом

ChartFirst

Возвращает идентификатор графика, следующего за указанным

ChartNext

Возвращает идентификатор первого графика клиентского терминала

ChartClose

Закрывает указанный график

ChartSymbol

Возвращает имя символа указанного графика

ChartPeriod

Возвращает значение периода указанного 

 
Vinin:

Операции с графиками


Да, да именно. Где тут редактирование шаблонов (или добавление индикатора, как в МТ5)? Нету. Значит ДЛЛ надо, да? Или есть ещё методы добавления индикaтора на график МТ4, кроме редактирования шаблона?


Вопрос был про добавление индикатора с помошью советника, вот тут

 
evillive:

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

а если я открою в отдельном окне нужные мне индикаторы, сохраню это все в шаблон. потом запущу прогу  на "пустом" графике и открою этот шаблон. все индикаторы тоже откроются? или мне надо в самом шаблоне прописывать открытие индикаторов? 
 
waroder:

а если я открою в отдельном окне нужные мне индикаторы, сохраню это все в шаблон. потом запущу прогу  на "пустом" графике и открою этот шаблон. все индикаторы тоже откроются? или мне надо в самом шаблоне прописывать открытие индикаторов? 

После применения шаблона, все индикаторы будут автоматически прикреплены к данному окну графика.
 
barabashkakvn:

После применения шаблона, все индикаторы будут автоматически прикреплены к данному окну графика.


оке) понял) благодарствую, други

 
waroder:

а если я открою в отдельном окне нужные мне индикаторы, сохраню это все в шаблон. потом запущу прогу  на "пустом" графике и открою этот шаблон. все индикаторы тоже откроются? или мне надо в самом шаблоне прописывать открытие индикаторов? 
прогу в шаблон тоже надо добавить, а то она будет выгружена при загрузке этого самого шаблона, так как там она не прописана. Это хороший метод выключения советника, кстати ;)
 
Скинте кто нибуть индюк чтоб сигналил при пересечении двух машек)
 

Вопрос 1-й - Во внешних параметрах советника в новых билдах (МЕ5 Билд 934; МТ4 Билд 646) вместо названий переменных отражаются комментарии. Как от этого избавиться? Только не предлагать не писать комментариев - они мне нужны (см. вопрос 2-й).

Вопрос 2-й - Насколько я понимаю, комментарии предназначены для записей самого программиста для себя любимого своих мыслей, заметок и т.п. в процессе написания кода. Если это так (а именно этому учат и в книжках и на курсах), то это уникальная задача. И нас учат: одна функция - одна задача. Следовательно, когда у этой задачи появляется другая задача - именно таким каламбуром и нужно воспринимать то, что сделано в новых билдах, то получается винегрет. - Разве это правильно? Иначе, как тогда мне написать мои комментарии, которые нужны мне, и я совсем не хочу, чтобы их видели все, кто угодно. Потому что, если мои коменты отражаются в публичности, то какие тогда это комментарии? Это уже совсем другая задача.

То есть мы имеем 2 разных задачи: "комментарии для себя в ходе написания кода" и "описание внешних переменных".

Думается, для новой задачи "описание внешних переменных", должна выделяться другая независимая опция компилятора. Или, хотя бы, сделать эту опцию на выбор пользователя (хотя, это уже противоречит базовым принципам программирования).

Если я ошибаюсь, поправьте меня.

 
Chiripaha:

Вопрос 1-й - Во внешних параметрах советника в новых билдах (МЕ5 Билд 934; МТ4 Билд 646) вместо названий переменных отражаются комментарии. Как от этого избавиться? Только не предлагать не писать комментариев - они мне нужны (см. вопрос 2-й).

Вопрос 2-й - Насколько я понимаю, комментарии предназначены для записей самого программиста для себя любимого своих мыслей, заметок и т.п. в процессе написания кода. Если это так (а именно этому учат и в книжках и на курсах), то это уникальная задача. И нас учат: одна функция - одна задача. Следовательно, когда у этой задачи появляется другая задача - именно таким каламбуром и нужно воспринимать то, что сделано в новых билдах, то получается винегрет. - Разве это правильно? Иначе, как тогда мне написать мои комментарии, которые нужны мне, и я совсем не хочу, чтобы их видели все, кто угодно. Потому что, если мои коменты отражаются в публичности, то какие тогда это комментарии? Это уже совсем другая задача.

То есть мы имеем 2 разных задачи: "комментарии для себя в ходе написания кода" и "описание внешних переменных".

Думается, для новой задачи "описание внешних переменных", должна выделяться другая независимая опция компилятора. Или, хотя бы, сделать эту опцию на выбор пользователя (хотя, это уже противоречит базовым принципам программирования).

Если я ошибаюсь, поправьте меня.


Так-то удобно, что внешние переменные можно делать более читабельными для себя же и/или пользователей.

А чтобы комментарии к внешним переменным не отображались (были видимыми только в коде), можно просто написать их второй строкой.

То бишь, к примеру, вместо:

input double AbcD=1.2345;//Хочу профит на отметке:

сделать в две строки:

input double AbcD=1.2345;
//Желаемый уровень профита

в первом случае вместо Abcd будет отображаться во внешних переменных: "Хочу профит на отметке: 1.2345",

во втором: "AbcD 1.2345"

 
DiPach:

Так-то удобно, что внешние переменные можно делать более читабельными для себя же и/или пользователей.

А чтобы комментарии к внешним переменным не отображались (были видимыми только в коде), можно просто написать их второй строкой.

То бишь, к примеру, вместо:

сделать в две строки:

в первом случае вместо Abcd будет отображаться во внешних переменных: "Хочу профит на отметке: 1.2345",

во втором: "AbcD 1.2345"


Да, я совсем не против, что удобно. Более того, понимаю чего хотели добиться. Только нельзя же реализовывать одну задачу, убивая при этом другую.

В 2 строчки писать - это уже менее удобно, т.к. если это 5-10 переменных, то можно перетерпеть (хотя, опять же, зачем терпеть?). А если этих переменных около 200? В этом случае размер кода вырастет значительно.
С другой стороны, если это будет другая опция, то все равно придется код увеличивать за счет описания переменной. Поэтому, вероятно, предложенное Вами решение будет, все-таки, более оптимальным и лаконичным, нежели вводить 2-ю опцию. Готов согласиться.

Если правильно догадываюсь, перевод каретки - ограничение для описания переменной?

И у меня дополнительный вопрос:

Можно ли сделать описания опционально на нескольких языках по выбору? Это было бы еще более удобно. : )) В этом случае все равно лучше доп опцию делать, нежели коменты обычные для описания использовать.

Кстати. Эти описания переменных все равно скупо отображаются в окне настроек, т.к. размеры колонок не сохраняют растяжений и большая часть описания "съедается" узостью колонки описания. Зато для значений переменных места неоправданно много. Так что, хотели как лучше... Но и это шаг вперед. : ))

Причина обращения: