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

 
Доброго времяни суток, хотелось бы уточнить будет ли подерживатся в терминале МТ5 мультимониторность, то есть будут ли возможность переносить окна графиков в разлиные мониторы, очень бы этого хотелось.. так же некоторые вкладки типа "новости" чтоб можно было разместить в отдельном мониторе. во многих современных терминалах это можно сделать.. надеюсь что это возможно будет реализовать в конечной версии МТ5
 
kombat писал(а) >>

Нормальных, четырёхзначных инструментов теперь вообще не будет?

Мож сделаете спецгруппу для нуждающихся...

Ну или хотябы сделать этот пятый знак очень очень маленьким или отключаемым невидымым.

Пусть гдето там в недрах терминал с сервером ДЦ общаются с 5 знаками, а интерфейс выводит все, как с 4.

У меня есть экспертик, так я там сам выбираю как отображать и работать с инструментами на 3-5 знаках.

Выбираю как с 2-4 и все выводится и вводится как привык.

 
SHOOTER777 >>:

Ну или хотябы сделать этот пятый знак очень очень маленьким или отключаемым невидымым.

Пусть гдето там в недрах терминал с сервером ДЦ общаются с 5 знаками, а интерфейс выводит все, как с 4.

У меня есть экспертик, так я там сам выбираю как отображать и работать с инструментами на 3-5 знаках.

Выбираю как с 2-4 и все выводится и вводится как привык.

Для меня к примеру не очень важно, 4 или 5, правда если со стороны терминала "косяков" не будет (таких как необходимость вычисления спреда по аску и биду).

MT4 с такими проблемами спровлялся без лишних вопросов.

 

Уважаемые разработчики - я не совсем понял как работать с ChartApplyTemplate().


Распишу все по пунктам:

1. Что имелось введу под ИМЕНЕМ ФАЙЛА с шаблоном?

2. Почему загрузка этих файлов производится из каталога MQL5\Files (судя по справке), хотя по логике вещей шаблоны хранятся в другом месте?

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


PS

Как уже кто-то писал ранее в справке отсутствует достаточное количество примеров кода и перекрестных ссылок

Также хочется иметь возможность поиска по ключевым словам (это на будущее).


Вот от такого кода я не получил нужного результата:

ChartApplyTemplate(ChartID(),"Standard");//Первоначально вместо ChartID() был 0

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


Также хочется иметь возможность не только загружать шаблоны, но и автоматически сохранять их...

 

При изучении вопросов связанных с шаблонами мне пришла в голову следующая мысль, не знаю реализована она или нет (да и насколько она сама по себе "бредовая").

Но думаю она будет интересна многим.


А почему не дать возможность окрашивать бары индивидуально? (я имею введу не только свойства баров: CHART_COLOR_CANDLE_BULL, CHART_COLOR_CANDLE_BEAR, CHART_COLOR_CHART_UP и CHART_COLOR_CHART_DOWN).


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

 

Не нашел аналога функции IsLibrariesAllowed(), и мне так кажется библиотеки пока не готовы к работе... :(


Для удобства работы со справкой предлагаю в контекстный поиск добавить и старые названия функций, со сносками на их новые варианты.

 

Проверка на корректность введённого значения размера лота параметру m_symbol.LotsStep() в последней версии MACD Sample некорректна ( извините за тавтологию). Попробуйте, к примеру, ввести значение 1.0. В коде:

   if(MathAbs(MathMod(InpLots,m_symbol.LotsStep()))>1.0E-15)
     {
      printf("Lots amount is not corresponding with lot step %f",m_symbol.LotsStep());
      return(false);
     }

при корректном задании лота функция MathMod() после "плавающих" вычислений может вернуть как значение чуть большее 0, так и чуть меньшее LotsStep.

Да и epsilon выбран слишком маленьким, возможная ошибка плавающих вычислений может превысить заданное значение 1.0E-15 (при вводе в окне параметров точность 8 знаков после запятой). Вот такой код:

double diff=MathAbs(MathRound(InpLots/m_symbol.LotsStep())-InpLots/m_symbol.LotsStep());
//   printf("Lots amount %15e",InpLots);
//   printf("diff %15e",diff);
   if(diff>1.0E-10)
     {   
      printf("Lots amount is not corresponding with lot step %f",m_symbol.LotsStep());
      return(false);
     }

на мой взгляд, правильно работает.

Хотя лучше бы такая проверка осуществлялась идентично терминалу или серверу.

 
antt писал(а) >>

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() - очень грубый метод, решает далеко не все проблемы по организации оконного и вычислительного пространства.

--

Список пожеланий неполон. Я пока концентрировался на "фунаментальной недостаточности" организационной гибкости.

Сорри, если наехал на болевые точки. Не из садизма, если что. Просто выразил насущные потребности, как смог. Постарался максимально конструктивно.

 
Interesting писал(а) >>

При изучении вопросов связанных с шаблонами мне пришла в голову следующая мысль, не знаю реализована она или нет (да и насколько она сама по себе "бредовая").

Но думаю она будет интересна многим.

А почему не дать возможность окрашивать бары индивидуально? (я имею введу не только свойства баров: CHART_COLOR_CANDLE_BULL, CHART_COLOR_CANDLE_BEAR, CHART_COLOR_CHART_UP и CHART_COLOR_CHART_DOWN).

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

Я пользуюсь DRAW_COLOR_CANDLES и DRAW_COLOR_BARS вполне нормально, 65 цветов тоже хватает, единственное чего не хватает это бычей свечи(с пустым телом), а так очень даже. ;)

 
vdv2001 >>:

Я пользуюсь DRAW_COLOR_CANDLES и DRAW_COLOR_BARS вполне нормально, 65 цветов тоже хватает, единственное чего не хватает это бычей свечи(с пустым телом), а так очень даже. ;)

Это как я понял свойства индикаторов и в советнике такая фишка не сработает (а хочется), хотя наверно реализовать будет удобней именно при помощи отдельного индюка.


PS

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

Тока "геморно" это будет. Хотя смотря как реализовать...

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