Ошибки, баги, вопросы - страница 1395

 
Anatoli Kazharski:

Вот так попробуйте:

Там не важно, какое пустое значение и остались ли случайные значения в начале графика. Важно что там в буфере buffer2 значения от 0 до -5, которые не отображаются на графике так как он DRAW_NONE и установлен минимум масштаба 0. 

МТ4 в этой ситуации корректно масштабировал график от 0 до максимального значения буферов в окне, а МТ5 масштабирует от минимального (-5, а не 0) до максимального типа 0.0605 и прибавляет сверху к этому что-то типа 10%, что полностью ломает масштаб.

 
Ilya Malev:

Там не важно, какое пустое значение и остались ли случайные значения в начале графика. Важно что там в буфере buffer1 значения от 0 до -5, которые не отображаются на графике так как он DRAW_NONE и установлен минимум масштаба 0. 

МТ4 в этой ситуации корректно масштабировал график от 0 до максимального значения буферов в окне, а МТ5 масштабирует от минимального (-5, а не 0) до максимального типа 0.0605 и прибавляет сверху к этому что-то типа 10%, что полностью ломает масштаб.

Отнюдь. Пустое значение это не ноль. Это может быть, что и кто угодно.
 
Ilya Malev:

Там не важно, какое пустое значение и остались ли случайные значения в начале графика. Важно что там в буфере buffer2 значения от 0 до -5, которые не отображаются на графике так как он DRAW_NONE и установлен минимум масштаба 0. 

МТ4 в этой ситуации корректно масштабировал график от 0 до максимального значения буферов в окне, а МТ5 масштабирует от минимального (-5, а не 0) до максимального типа 0.0605 и прибавляет сверху к этому что-то типа 10%, что полностью ломает масштаб.

Кстати, а зачем масштабировать график по значениям буфера, который не отображается?
 
Karputov Vladimir:
Отнюдь. Пустое значение это не ноль. Это может быть, что и кто угодно.

Попробуйте как посоветовал Вольдемар изменить строчку на "buffer2[i]=-MathRand()%5*Point();" И увидите как в примере изменится масштаб. Это доказывает, что в данном случае заполненность первых элементов в истории не влияют на масштабирование. Потому что если умножить на Поинт, оно выравнивается.

 
Anatoli Kazharski:
Кстати, а зачем масштабировать график по значениям буфера, который не отображается?

Хороший вопрос! Именно об этом я и спрашивал. Зачем МТ производит такое масштабирование если буфер объявлен как DRAW_NONE

Это было и в МТ4, но только если значения такого буфера входили в диапазон отображения, ограниченный indicator_maximum и minimim. А в МТ5 и значения за пределами ограничений входят в формулу масштаба.

 
Ilya Malev:

Попробуйте как посоветовал Вольдемар изменить строчку на "buffer2[i]=-MathRand()%5*Point();" И увидите как в примере изменится масштаб. Это доказывает, что в данном случае заполненность первых элементов в истории не влияют на масштабирование. Потому что если умножить на Поинт, оно выравнивается.

Пример Ваш кривой и Вы его не хотите исправлять. Проверю, когда исправите.
 
Ilya Malev:
Хороший вопрос! Именно об этом я и спрашивал.

Так это же у вас в коде такое:

buffer2[i]=-MathRand()%5;

Что написано, то и получаем. Какой смысл делать это для буфера, который не отображается. Об этом я спрашивал. ))

 
Anatoli Kazharski:

Что написано, то и получаем. Какой смысл делать это для буфера, который не отображается. Об этом я спрашивал. ))

Ага, то есть когда это делает терминал, то это нормально (масштаб по значениям с DRAW_NONE, да ещё и меньшим, чем порог отображения indicator_minimum - в МТ4 хоть это было адекватно), а когда пользователь задает свои произвольные значения в буфер без отображения (DRAW_NONE), то это уже не нормально (типа держать и не пущать, какая кому разница, зачем пользователю это нужно?)

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

 
Ilya Malev:

Ага, то есть когда это делает терминал, то это нормально (масштаб по значениям с DRAW_NONE, да ещё и меньшим, чем порог отображения indicator_minimum - в МТ4 хоть это было адекватно), а когда пользователь задает свои произвольные значения в буфер без отображения (DRAW_NONE), то это уже не нормально (типа держать и не пущать, какая кому разница, зачем пользователю это нужно?)

Причина банальна - в этих атрибутах в окне данных отображаются важные численные атрибуты баров графика, которые нужны трейдеру для анализа.

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

Думаю, что буферы, которые не отображаются (DRAW_NONE) не должны участвовать в расчёте масштаба.

Можете попробовать сообщить об этой ошибке в сервисдеск и дождаться ответа там. 

 
Anatoli Kazharski:

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

Думаю, что буферы, которые не отображаются (DRAW_NONE) не должны участвовать в расчёте масштаба.

В примере я сделал MathRand просто чтобы продемонстрировать работу масштаба. В оригинале у меня там был расчет числовых уровней по некоторой авторской трейдерской методике. В начале хотели их сделать от 1 до 5, но даже в МТ4 с такими значениями в буфере с DRAW_NONE адекватного масштаба добиться не удалось. После того как сделали их отрицательными и фиксировали минимум в 0, проблему удалось решить. При переносе индикатора на МТ5 оказалось что и это решение не прокатит. Пришлось умножать на Поинт как и сказал Вольдемар.