четверг, 28 января 2016 г.

VP 5.3. Исправлено отображение мод в MT4

Исправлено отображение мод в MT4. Пришлось имитировать каждый бар четырьмя отрезками из-за ограничений MT4, поэтому стиль по умолчанию вернулся к линиям, чтобы новым пользователям не устанавливать сразу самый тяжёлый вариант.

Раньше, в TPO, было так:


Дополнительное выделение заполнением было введено ровно из-за той же проблемы, что появилась сейчас - невозможность рисовать в MT4 пустые прямоугольники фоном (при установке режима "фоном" они становятся заполненными). При рисовании мод пустыми прямоугольниками без установки приоритета (перед/фон) приводит к нежелательному порядку наложения баров, из-за чего видимость их снижается. Что и получилось при обновлении до 4.0, где рисование мод было переделано, и, т.к. код писался сначала в MT5, проблема от меня ускользнула.


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


Только какие-то скругления появились тепер на некоторых барах, но это совсем не важно.

Этот вариант рисования стал тяжёлым, поэтому теперь он не будет установлен по умолчанию, вместо него будет лёгкий "Line". Но остальные режимы такие же лёгкие, проблема только в "Empty bars" в MT4.

Скачать обновление VP

10 комментариев:

  1. Привет! FXcoder в версиях 4 и 5 есть разница в работе медианы. В 4-ке она вроде правильная (насколько я понял - все растояние пройденных баров от линии до линии или участок ТФ делит пополам), а в 5-ке она заходит под волну и держится до более глубокой.

    ОтветитьУдалить
    Ответы
    1. У меня в 5 нормальная, в 4 на дне. Буду исправлять, спасибо за сообщение.

      Удалить
    2. Под 4 и 5 имею в виду версию терминала, не индикатора. Версия индикатора - 5.3.

      Удалить
    3. Исправлено в 5.4
      http://fxcoder.blogspot.com/2016/01/vp-54-mt4-median-bugfix.html

      Удалить
  2. Есть рацио - читал в комментах, что для реализации прямоугольников использовались 4-е отрезка... и это все очень грузит... Вот я иногда лажу по кодам и смотрю, что индикаторы постоянно пересчитывают прошлые участки, которые уже никак менятся не будут и бывает очень сильно грузят комп или не можеш просмотреть из-за этого большую историю. Может их не надо пересчитывать на каждом тике? Рацио такое - в два раза, чисто механически, увеличить код. Первая часть один раз на одном тике пересчитает историю и заблокируется, а вторая такая же, после получения "гуд" от первой будет пересчитывать только текущий отрезок ТФ. Пардон, если шо не так :).

    ОтветитьУдалить
    Ответы
    1. Сейчас пересчитывается только крайняя правая гистограмма. А в Range пересчёт идёт только если правая граница захватывает текущий бар.

      Расчёты и отрисовка занимают миллисекунды. Проблема больше в том, что терминал грузит вообще наличие большого числа графических объектов на графике. Даже если я один раз нарисую 10 тысяч объектов (вполне обычная цифра для глубокой истории) и закрою все скрипты, тормоза будут.

      Путь к решению проблемы, по моему, - рисовать гистограммы картинками и накладывать их на график, буду пробовать так делать.

      Удалить
    2. Потестил немного. Включил 1000 дневных гистограмм с параметрами по умолчанию. Не сказал бы, что тормозит, разве что при смене параметров повисело несколько секунд. Но при переключении на пустые прямоугольники действительно всё стало притормаживать. Это эквивалент 4000 гистограмм. Переделывать обратно вряд ли буду, надо большую историю - используем минимально нагруженный режим (можно еще и от сервера отключиться после отрисовки).

      Удалить
  3. FXcoder, спасибо за пояснение и большое спасибо за продукт! У меня еще вопрос, если не затруднит, можно ли с индикатора VP получать сигналы и как от линий, например VWAP, MaxMod? Или надо буфера прикручивать (с буферами и массивами прийдется попотеть :) )?

    ОтветитьУдалить
    Ответы
    1. Думаю, лучше будет напрямую вставить куски кода из VP в робота, там немного надо. Как-нибудь напишу об этом заметку.

      Удалить
  4. Привет! FXcoder, спасибо еще раз и за супер оперативность, все работает надо.

    ОтветитьУдалить