Хочу изменять вертикальный масштаб графика, увеличивая или уменьшая кол-во пунктов на бар. Как считать эти пункты?
Например, на графике EURUSD CHART_PRICE_MAX = 1.07, CHART_PRICE_MIN = 1.05. Как посчитать кол-во пунктов на бар в этом случае?
Если "старых" пунктов, то 200 разделить на количество баров. Если "новых" пунктов, то 2000.
Только непонятно, что даст такой расчет: "пунктов на бар".
Если "старых" пунктов, то 200 разделить на количество баров. Если "новых" пунктов, то 2000.
Только непонятно, что даст такой расчет: "пунктов на бар".
Он говорит о вертикальном масштабе путая с горизонтальным.
Вертикальный масштаб не должен зависеть от кол-ва баров.
Это нужно для того, чтобы устанавливать такое начальное значение масштаба в пунктах на бар (https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_points_per_bar), чтобы график не "улетал".
Пример (нажмите на изображение, это гиф):
Вертикальный масштаб не должен зависеть от кол-ва баров.
Это нужно для того, чтобы устанавливать такое начальное значение масштаба в пунктах на бар (https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_scale_pt_per_bar), чтобы график не "улетал".
Пример (нажмите на изображение, это гиф):
Тогда просто посмотрите мой код индикатора.
- www.mql5.com
Не вижу в коде этого индикатора ничего, что бы ответило на мой вопрос: как соотносятся между собой макс. и мин. цены графика и кол-во пунктов на бар?
Ваш индикатор фиксирует макс. и мин. цены, а мне надо иметь возможность изменять вертикальный масштаб, изменяя значение масштаба в пунктах на бар.
https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_points_per_bar
Не вижу в коде этого индикатора ничего, что бы ответило на мой вопрос: как соотносятся между собой макс. и мин. цены графика и кол-во пунктов на бар?
Ваш индикатор фиксирует макс. и мин. цены, а мне надо иметь возможность изменять вертикальный масштаб, изменяя значение масштаба в пунктах на бар.
(https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_scale_pt_per_bar)
Может я не понял для чего это нужно, но мне кажется, что левое ухо почесать мизинцем левой руки проще, чем мизинцем правой ноги.
Просто если идти так «влобовую» то конечно можно как-то посчитать отталкиваясь от чего, с каким коэффициентом задать этот масштаб. А можно просто задать максимум и минимум окна…
Попробуйте подойти к этому задом на перёд. При разных вариантах прочтите это значение, и значения максимума\минимума окна и как-то обсчитать полученные результаты. Может и выйдет чего-то…
Не вижу в коде этого индикатора ничего, что бы ответило на мой вопрос: как соотносятся между собой макс. и мин. цены графика и кол-во пунктов на бар?
Ваш индикатор фиксирует макс. и мин. цены, а мне надо иметь возможность изменять вертикальный масштаб, изменяя значение масштаба в пунктах на бар.
(https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_scale_pt_per_bar)
Для начала, изучим матчасть:
Настройки графиков- Масштаб — с помощью рычажка можно регулировать масштаб графика, при этом одновременно будет изменяться масштаб графика в окне предпросмотра, расположенного в левой части окна свойств.
- Фиксировать масштаб 1:1 — зафиксировать масштаб графика "один к одному" (размер одного пипса вертикальной оси в пикселях равен расстоянию между осями баров в пикселях). При этом автоматически включается опция "Фиксировать масштаб" и у правой стороны окна графика появляется бегунок полосы прокрутки, позволяющий перемещать график по вертикали. Этот режим необходим для точных геометрических построений.
- Фиксировать масштаб — зафиксировать масштаб графика по вертикали. При этом поля "Фиксированный максимум" и "Фиксированный минимум" становятся активными, в них указываются максимальное и минимальное значения ценовой шкалы, соответственно.
- Масштаб по пунктам на бар — зафиксировать масштаб графика по соотношению количества пунктов на вертикальной оси к одному бару. При этом поле "Пунктов на бар" становится активным, в нем укажите их количество.
В сухом остатке: масштаб 1 :1 - пипс по вертикали равен в пикселях бару по горизонтали.
И ещё: пипсы - ось ординат, бары - абсцисс; пиксели - разрешающая способность терминала.
Теперь по сути вопроса.
Если меня не устраивает масштаб 1:1, а очень хочется pips:1, то задаю вожделенное значение value и использую функцию:
//+------------------------------------------------------------------+ //| Функция включает/выключает режим указания масштаба в пунктах на | //| бар. | //+------------------------------------------------------------------+ bool ChartScalePerBarSet(const bool value,const long chart_ID=0) { //--- сбросим значение ошибки ResetLastError(); //--- установим значение свойства if(!ChartSetInteger(chart_ID,CHART_SCALE_PT_PER_BAR,0,value)) { //--- выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ",GetLastError()); return(false); } //--- успешное выполнение return(true); }
ЗЫ: Не забываем, что такое масштаб, иначе можно нарваться на неприятности.
Хочу изменять вертикальный масштаб графика, увеличивая или уменьшая кол-во пунктов на бар. Как считать эти пункты?
Например, на графике EURUSD CHART_PRICE_MAX = 1.07, CHART_PRICE_MIN = 1.05. Как посчитать кол-во пунктов на бар в этом случае?
Вертикальный масштаб не должен зависеть от кол-ва баров.
Это нужно для того, чтобы устанавливать такое начальное значение масштаба в пунктах на бар (https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples#chart_scale_pt_per_bar), чтобы график не "улетал".
Пример (нажмите на изображение, это гиф):
А, ну раз речь о настройке свойства графика "пунктов на бар", то рассчитывается все именно так, как говорит @Alexey Viktorov. То есть находится минимальная и максимальная цена среди баров, находящихся в пределах графика, и оттуда уже получается вот это значение - "пунктов на бар". Но какой смысл от таких вычислений, если терминал точно также поступает при автомасштабе? Смысл от "пунктов на бар" может быть как раз в том случае, если требуется видеть все бары в истории с одинаковым масштабом. Логично, что в таком случае какие-то бары будут выходить за пределы графика и потребуется перемещение ползунка окна, регулирующего положение графика по вертикали.
На мой взгляд, максимум, что можно сделать это взять для расчетов не только видимые бары, а вообще все имеющиеся бары в истории, посчитав максимум и минимум для них. Исходя из этих значений и установить масштаб. Правда, график все равно будет неудобочитаемым. На нем будут видны наиболее волатильные бары, а большинство баров отобразятся в виде линий.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Хочу изменять вертикальный масштаб графика, увеличивая или уменьшая кол-во пунктов на бар. Как считать эти пункты?
Например, на графике EURUSD CHART_PRICE_MAX = 1.07, CHART_PRICE_MIN = 1.05. Как посчитать кол-во пунктов на бар в этом случае?