Бета-тестирование MetaTrader 5 началось! - страница 110

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нормальных, четырёхзначных инструментов теперь вообще не будет?
Мож сделаете спецгруппу для нуждающихся...
Ну или хотябы сделать этот пятый знак очень очень маленьким или отключаемым невидымым.
Пусть гдето там в недрах терминал с сервером ДЦ общаются с 5 знаками, а интерфейс выводит все, как с 4.
У меня есть экспертик, так я там сам выбираю как отображать и работать с инструментами на 3-5 знаках.
Выбираю как с 2-4 и все выводится и вводится как привык.
Ну или хотябы сделать этот пятый знак очень очень маленьким или отключаемым невидымым.
Пусть гдето там в недрах терминал с сервером ДЦ общаются с 5 знаками, а интерфейс выводит все, как с 4.
У меня есть экспертик, так я там сам выбираю как отображать и работать с инструментами на 3-5 знаках.
Выбираю как с 2-4 и все выводится и вводится как привык.
Для меня к примеру не очень важно, 4 или 5, правда если со стороны терминала "косяков" не будет (таких как необходимость вычисления спреда по аску и биду).
MT4 с такими проблемами спровлялся без лишних вопросов.
Уважаемые разработчики - я не совсем понял как работать с ChartApplyTemplate().
Распишу все по пунктам:
1. Что имелось введу под ИМЕНЕМ ФАЙЛА с шаблоном?
2. Почему загрузка этих файлов производится из каталога MQL5\Files (судя по справке), хотя по логике вещей шаблоны хранятся в другом месте?
3. В чем смысл примечания к этой функции. При соблюдении условий примечания вызов ChartApplyTemplate следует производить только из скриптов, но не как не из экспертов (при условии как я полагаю если шаблон уже не содержит данный или другой эксперт).
PS
Как уже кто-то писал ранее в справке отсутствует достаточное количество примеров кода и перекрестных ссылок
Также хочется иметь возможность поиска по ключевым словам (это на будущее).
Вот от такого кода я не получил нужного результата:
Пробовал указать полное имя файла с шаблоном, результат аналогичен.
Также хочется иметь возможность не только загружать шаблоны, но и автоматически сохранять их...
При изучении вопросов связанных с шаблонами мне пришла в голову следующая мысль, не знаю реализована она или нет (да и насколько она сама по себе "бредовая").
Но думаю она будет интересна многим.
А почему не дать возможность окрашивать бары индивидуально? (я имею введу не только свойства баров: CHART_COLOR_CANDLE_BULL, CHART_COLOR_CANDLE_BEAR, CHART_COLOR_CHART_UP и CHART_COLOR_CHART_DOWN).
По мимо имеющихся возможностей, в будущем хочется получить средства раскраски каждого бара в отдельности. Т.е. на мой взгляд требуется наличие двух функций устанавливающих/запрашивающих цвет отдельно взятой свечки по ее номеру на графике.
Не нашел аналога функции IsLibrariesAllowed(), и мне так кажется библиотеки пока не готовы к работе... :(
Для удобства работы со справкой предлагаю в контекстный поиск добавить и старые названия функций, со сносками на их новые варианты.
Проверка на корректность введённого значения размера лота параметру m_symbol.LotsStep() в последней версии MACD Sample некорректна ( извините за тавтологию). Попробуйте, к примеру, ввести значение 1.0. В коде:
при корректном задании лота функция MathMod() после "плавающих" вычислений может вернуть как значение чуть большее 0, так и чуть меньшее LotsStep.
Да и epsilon выбран слишком маленьким, возможная ошибка плавающих вычислений может превысить заданное значение 1.0E-15 (при вводе в окне параметров точность 8 знаков после запятой). Вот такой код:
на мой взгляд, правильно работает.
Хотя лучше бы такая проверка осуществлялась идентично терминалу или серверу.
1. В МТ5 расчет индикаторов происходит не в интерфейсном потоке, а в потоке обработки истории. Но тормозить и перегружать этот поток также не желательно, т.к. в нем происходит и обработка тиков и расчет всех прочих индикаторов по данному символу. Выполнение в общем потоке, а не в отделенном, это основное отличие кастомного индикатора от эксперта или скрипта.
2. По поводу концепции. Концептуально расчетная часть индикатора лишь код заполнения массивов исходящих данных на основе массивов входящих данных и тут не многое "пролазит".
1. Спасибо за поправку. Не знал.
2. Ок. Давайте всё же попробуем. В рамках концепции.
Чем, как я понимаю, сейчас юзеры не вполне довольны? Чего им не хватает?
1) Геморрой с "нестандартными" индикаторами. Я тут пошурупил, в основном все индикаторы у меня побились на
:::: 3 класса по способу сдвига при перерасчёте:
1.1) BAR_CALCMODE_SHIFT - то что сейчас стандартно реализовано
1.2) TICK_CALCMODE_SHIFT - индикатор сдвигается при каждом тике. Нужно для реализации тиковых индикаторов, чтоб не переписывать
без перерасчёта но со сдвигом весь плот-буфер (неэкономно, сами понимаете, процессор грузится бестолково).
1.3) CUSTOM_CALCMODE_SHIFT - управляемый юзером сдвиг, в простейшем случае Shift=0, для вывода статистических и прочих данных юзера
:::: 2 класса по способу инициализации перерисовки. Собсно, не имеет отношения к расчётной части. Это способ отрисовки на экране.
2.1) TICK_MODE_REDRAW - то что имеем сейчас
2.2) CUSTOM_MODE_REDRAW - то, что не имеем, но остро нуждаемся. Перерисовка по кастом-событию. Тиков может не быть когда надо.
Варианты: очевидные - оффлайн, выходные, мёртвый флет. Менее очевидные но очень важный пример - мультивалютный индикатор должон уметь перерисовыться при приходе тиков нескольких инструментов. Я думаю это всё решаемо - если по честному впряжётесь в решение. Это не обязательно должно быть стандартное кастом-событие, возможно просто какой-нибуть "тик-имитатор" запускаемый экспертом(скриптом). Сейчас я пользуюсь очень брутальным методом - переинициализацией всего чарта кратковременным переключением таймфрейма. Очень ресурсоёмко... Вызывает глубокое эстетическое отвращение... :) А что делать? Элегантное-экономное решение, в любом случае, возможно лишь на вашей стороне. Мы тут не рулим, можем только подавать идеи. Разве что.. начать изгаляться-хакерствовать и имитировать тики на системном уровне. Это возможно, однако как-то убого, в том смысле, что такое решение демонстрирует глубокую паталогию во взаимопонимании разработчиков/юзеров. И к тому же может сбить с толку весь механизм получения штатной информации. Короче, нам такой хоккей не желателен. Мда.
:::: 3 источника получения информации для расчёта
3.1) стандартные исторические массивы - сделано.
3.2) другие индикаторы - сделано в очень ограниченном объёме. Возможны серьёзные продвижки в этом направлении. Я уже писал об этом (страница 100 данного топика. MetaDriver 07.11.2009 13:34 ), могу ещё. Долго и много. Сама идея необычайно продуктивная и её желательно продолжать развивать.
3.3) эксперты. Вот тут важно. Тут никаких штатных средств нету напрочь. Ну да, можно через файл. (Слава богу, индикаторы имеют права на чтение файлов.) Но ведь можно ж реализовать куда более разумный способ обмена инфой - через память.
Пример, навскидку: Делаем стандартную функцию int iExpert(long chart_id, string ExpertName, int BufNumber), возвращающую хендл буфера соответствующего эксперта. Если такой эксперт не запущен - всё просто, функция возвращает код ошибки. Ну а эксперты должны иметь право иметь вышеупомянутые индикаторные буферы. Сейчас у них таких прав нету. Но если MetaQuotes Software Corp им такие права даст, то они могут и появиться. Эксперты не могут сами рисовать графики. Ну нету у них такой рисовалки. Тогда пусть имеют права хотя бы на буферы, рисуемые кастом-индикаторами, у которых рисовалка есть.
--
Наиболее существенное я вроде перечислил. Могу ещё высказать некоторые пожелания:
:::: Желательно иметь механизм ограничения расчётной истории, в виде, например, параметра при запуске индикаторов (UseBars, по умолчанию = 0, то есть FullHistoryMode). Необходимо для экономии памяти экспертам использующим много индикаторов, но "исторически-неглубоко".
:::: Желательна возможность получения инфы о запущенных юзером на чарте(ах) программах. Например списка имён, для начала.
:::: Продолжая предыдущий пункт - Получение хендлов запущенных юзером программ (индикаторов и экспертов с инд. буферами).
:::: Важно: Желательно иметь возможность запускать другие mql5-программы. Применение ChartApplyTemplate() - очень грубый метод, решает далеко не все проблемы по организации оконного и вычислительного пространства.
--
Список пожеланий неполон. Я пока концентрировался на "фунаментальной недостаточности" организационной гибкости.
Сорри, если наехал на болевые точки. Не из садизма, если что. Просто выразил насущные потребности, как смог. Постарался максимально конструктивно.
При изучении вопросов связанных с шаблонами мне пришла в голову следующая мысль, не знаю реализована она или нет (да и насколько она сама по себе "бредовая").
Но думаю она будет интересна многим.
А почему не дать возможность окрашивать бары индивидуально? (я имею введу не только свойства баров: CHART_COLOR_CANDLE_BULL, CHART_COLOR_CANDLE_BEAR, CHART_COLOR_CHART_UP и CHART_COLOR_CHART_DOWN).
По мимо имеющихся возможностей, в будущем хочется получить средства раскраски каждого бара в отдельности. Т.е. на мой взгляд требуется наличие двух функций устанавливающих/запрашивающих цвет отдельно взятой свечки по ее номеру на графике.
Я пользуюсь DRAW_COLOR_CANDLES и DRAW_COLOR_BARS вполне нормально, 65 цветов тоже хватает, единственное чего не хватает это бычей свечи(с пустым телом), а так очень даже. ;)
Я пользуюсь DRAW_COLOR_CANDLES и DRAW_COLOR_BARS вполне нормально, 65 цветов тоже хватает, единственное чего не хватает это бычей свечи(с пустым телом), а так очень даже. ;)
Это как я понял свойства индикаторов и в советнике такая фишка не сработает (а хочется), хотя наверно реализовать будет удобней именно при помощи отдельного индюка.
PS
А на счет прозрачной свечки эт да, прикольно будет (как я понимаю можно организовать программный анализ фона и подмены цвета свечи на цвет фона).
Тока "геморно" это будет. Хотя смотря как реализовать...