- Ошибки, баги, вопросы
- Особенности языка mql5, тонкости и приёмы работы
- Индикатор от индикатора
Как узнать, какой ценовой интервал содержится в одном пикселе чарта по-вертикали?
И какой временной интервал содержится в одном пикселе чарта по-горизонтали?
Вопросы могут показаться элементарными, поскольку есть такие возможности
- CHART_HEIGHT_IN_PIXELS
- CHART_WIDTH_IN_PIXELS
- CHART_PRICE_MAX
- CHART_PRICE_MIN
- CHART_WIDTH_IN_BARS
- ChartPeriod
- PeriodSeconds
Как узнать, какой ценовой интервал содержится в одном пикселе чарта по-вертикали?
И какой временной интервал содержится в одном пикселе чарта по-горизонтали?
Вопросы могут показаться элементарными, поскольку есть такие возможности
- CHART_HEIGHT_IN_PIXELS
- CHART_WIDTH_IN_PIXELS
- CHART_PRICE_MAX
- CHART_PRICE_MIN
- CHART_WIDTH_IN_BARS
- ChartPeriod
- PeriodSeconds
0 пиксель в цену и последний пиксель в цену
Предположим, хотя, я бы проверил.
А почему решение не верное?
Предположим, хотя, я бы проверил.
А почему решение не верное?
Допустим, нам известно, какой ценовой интервал содержится в каждом пикселе. Формула была бы верной, если бы CHART_PRICE_MAX был максимальной границей самого верхнего известного нам интервала, а CHART_PRICE_MIN - минимальной границей самого нижнего известного нам интервала. Но это не так.
Думаю, если вертикальный масштаб будет фиксирован - все будет ок. А иначе частые проверки этого самого масштаба. Ведь цена его может сама изменить.
Фиксированность вертикального масштаба - это ручное задание того, что делается автоматом. Не более того.
Вопрос на самом деле довольно тонкий для обсуждения, т.к. в этой теме надо покопаться.
Возобновил написание тикового индикатора и сталкиваюсь вот с такими проблемами. Что-нибудь кривое, да выложу в кодобазу.
Как узнать, какой ценовой интервал содержится в одном пикселе чарта по-вертикали?
И какой временной интервал содержится в одном пикселе чарта по-горизонтали?
Вопросы могут показаться элементарными, поскольку есть такие возможности
- CHART_HEIGHT_IN_PIXELS
- CHART_WIDTH_IN_PIXELS
- CHART_PRICE_MAX
- CHART_PRICE_MIN
- CHART_WIDTH_IN_BARS
- ChartPeriod
- PeriodSeconds
Преобразуйте CHART_PRICE_MAX и CHART_PRICE_MIN в пиксельные координаты с помощью ChartTimePriceToXY().
Преобразуйте CHART_PRICE_MAX и CHART_PRICE_MIN в пиксельные координаты с помощью ChartTimePriceToXY().
{
datetime TmpTime;
double TmpPrice;
int TmpSubWindow;
ChartXYToTimePrice(Chart_ID, 0, 0, TmpSubWindow, TmpTime, TmpPrice); // находим корректные координаты для ChartTimePriceToXY
return(TmpTime);
}
int ChartPriceToY( const double Price )
{
int X, Y;
ChartTimePriceToXY(0, 0, GetVisibleTime(), Price, X, Y);
return(Y);
}
double PricesPerPixel( void )
{
return((double)(ChartPriceToY(ChartGetDouble(0, CHART_PRICE_MAX)) - ChartPriceToY(ChartGetDouble(0, CHART_PRICE_MIN))) /
ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS));
}
fxsaber:
Так?
Нет.
{
double fMaxPrice = ChartGetDouble(0, CHART_PRICE_MAX);
double fMinPrice = ChartGetDouble(0, CHART_PRICE_MIN);
return((fMaxPrice - fMinPrice) / (ChartPriceToY(fMinPrice) - ChartPriceToY(fMaxPrice)));
}
И вместо GetVisibleTime() можно просто 0 подставить. Координата Х ведь в данном случае не имеет значения.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования