Ткните носом в простой код, вычисляющий угол движения цены. На картинке ниже показано.
Смотря в чем измеряются x(пикселях, барах или времени) и y(пикселях или цене).
И смотря какая задача: измерять угол на текущем графике с текущим масштабом(шириной бара в пикселях) и тайфреймом? Или измерять угол, чтобы он оставался одинаковым для любого ТФ и масштаба?
Разные задачи и системы координат - разные решения.
А по хорошему вам сам угол, как таковой и не нужен, достаточно тангенс узнать.
Точно! И наш тангенс называется: скорость.
На примере цена прошла 1884 пункта за 39 часовых свечей. Итого скорость движения этой волны равна: 1884/(39/24) = 1159 пунктов в день.
double interval=double(iBarShift(symbol,frame,start_time)-iBarShift(symbol,frame,finish_time)*PeriodSeconds(frame)/86400;
int distance=MathAbs(finish_price-start_price);
int speed=interval>0?(distance/interval):0;
А угол нам не нужен, зачем нам угол? Когда начнём график растягивать или плющить, как будет тогда выглядеть этот угол? Угол можно измерять, когда оси x и y имеют одинаковые единицы измерения. Например взяли тетрадь в клеточку, прочертили по диагоналям этих клеточек линию, вот и получили 45 градусов. И что вверх, что вправо сантиметры. А здесь, чему равен один пункт цены? Одному часу, одному дню? Величины то, несопоставимые.
На примере цена прошла 1884 пункта за 39 часовых свечей. Итого скорость движения этой волны равна: 1884/(39/24) = 1159 пунктов в день.
А угол нам не нужен, зачем нам угол? Когда начнём график растягивать или плющить, как будет тогда выглядеть этот угол? Угол можно измерять, когда оси x и y имеют одинаковые единицы измерения. Например взяли тетрадь в клеточку, прочертили по диагоналям этих клеточек линию, вот и получили 45 градусов. И что вверх, что вправо сантиметры. А здесь, чему равен один пункт цены? Одному часу, одному дню? Величины то, несопоставимые.
А зачем их сопоставлять? Километры и время также несопоставимы, но это нам не мешает считать скорость км/час.
Если у вас тангенс это скорость, то и будет эта скорость в единицу времени периода графика. Если у вас 1884 пункта цена прошла за 39 часов то скорость будет 48 пунктов в час. И совсем нет необходимости пересчитывать это в дни.
Но ещё можно посчитать «ускорение» в виде отношения текущей скорости к скорости на предыдущем баре. А собрав несколько таких значений можно определить среднее ускорение.
А здесь, чему равен один пункт цены? Одному часу, одному дню? Величины то, несопоставимые.
Ну расстояние тоже меряют в световых годах. Так что это не проблема. Вводим постоянную скорость. Например, 1 _Pointза один 1 минутный бар и приводим систему координат к цене по обоим осям.
Тогда углы будут одинаковыми на любом таймфрейме.
Главное правильно посчитать количество минутных бар между x1 и x2.
В такой системе координат угол в 45 градусов будет означать, что цена меняется на N*tg(45) =N пунктов за N минутных баров, а угол в 30 градусов будет означать, что цена меняется на N*tg(30)=N*0.57735 пунков за N минутных баров. Лучше использовать минутные бары, а не время, т.к. существуют временные дырки в виде выходных, низкой волонтильности и т.д.
Согласен на 100%, т.к. свечу можно растягивать и по горизонтали и по вертикали. И для определения угла должен быть какой-то стандарт (ширина свечи в пикселях и количество пунктов в пикселе) .
Можно вопрос не по теме?
Как правильно преобразовать datatime в double что-бы не ругался компилятор (возможна потеря данных из-за неправильного преобразования)
Если у вас 1884 пункта цена прошла за 39 часов то скорость будет 48 пунктов в час. И совсем нет необходимости пересчитывать это в дни.
Да, это моё допущение. Поскольку, скорость я сделал int (т.е. целые пункты), подумал пусть будет период побольше, чтобы доли пункта в скорости не играли особой роли, и их можно было откинуть. Вот и получилось пункты в день. Ну это и согласуется с биологическими часами человека. Устали, поспали, утром встали: "Какая там скорость вчера была?". Выглядит непротиворечиво, вот я и сделал для себя такой стандарт. А так конечно, кому как удобно.
Nikolai Semko:
Ну расстояние тоже меряют в световых годах. Так что это не проблема. Вводим постоянную скорость. Например, 1 _Pointза один 1 минутный бар и приводим систему координат к цене по обоим осям.
Да, опять же скорость получается, только единицы: пункты в минуту. А по поводу выходных и дырок принял для себя так: какие свечи есть на графике, то и есть интервал времени, а чего нет (дней/часов), то этого и не существует. Потому, что если учитывать выходные, а цена в это время стоит на месте, то скорость здесь будет заметно падать без всякого основания. Но это опять же, каждому своё:)
Roni Iron:
Как правильно преобразовать datatime в double что-бы не ругался компилятор (возможна потеря данных из-за неправильного преобразования)
double A = (double)Time[1];
А зачем вам хранить дату в double? Если, Вы храните различные типы переменных в одном массиве, и приводите их туда сюда, то подумайте о замене обычного массива на массив структур:
struct My
{
datetime time;
double price;
} my[];
int finish=0;
ArrayResize(my,finish+1);
my[finish].time=Time[1];
my[finish].price=Close[1];
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Ткните носом в простой код, вычисляющий угол движения цены. На картинке ниже показано.
Ткните носом в простой код, вычисляющий угол движения цены. На картинке ниже показано.
Ну так через тангенс можно вычислить. А по хорошему вам сам угол, как таковой и не нужен, достаточно тангенс узнать.
А по хорошему вам сам угол, как таковой и не нужен, достаточно тангенс узнать.
Точно! И наш тангенс называется: скорость.
На примере цена прошла 1884 пункта за 39 часовых свечей. Итого скорость движения этой волны равна: 1884/(39/24) = 1159 пунктов в день.
А угол нам не нужен, зачем нам угол? Когда начнём график растягивать или плющить, как будет тогда выглядеть этот угол? Угол можно измерять, когда оси x и y имеют одинаковые единицы измерения. Например взяли тетрадь в клеточку, прочертили по диагоналям этих клеточек линию, вот и получили 45 градусов. И что вверх, что вправо сантиметры. А здесь, чему равен один пункт цены? Одному часу, одному дню? Величины то, несопоставимые.Точно! И наш тангенс называется: скорость.
На примере цена прошла 1884 пункта за 39 часовых свечей. Итого скорость движения этой волны равна: 1884/(39/24) = 1159 пунктов в день.
А угол нам не нужен, зачем нам угол? Когда начнём график растягивать или плющить, как будет тогда выглядеть этот угол? Угол можно измерять, когда оси x и y имеют одинаковые единицы измерения. Например взяли тетрадь в клеточку, прочертили по диагоналям этих клеточек линию, вот и получили 45 градусов. И что вверх, что вправо сантиметры. А здесь, чему равен один пункт цены? Одному часу, одному дню? Величины то, несопоставимые.А зачем их сопоставлять? Километры и время также несопоставимы, но это нам не мешает считать скорость км/час.
Если у вас тангенс это скорость, то и будет эта скорость в единицу времени периода графика. Если у вас 1884 пункта цена прошла за 39 часов то скорость будет 48 пунктов в час. И совсем нет необходимости пересчитывать это в дни.
Но ещё можно посчитать «ускорение» в виде отношения текущей скорости к скорости на предыдущем баре. А собрав несколько таких значений можно определить среднее ускорение.
А здесь, чему равен один пункт цены? Одному часу, одному дню? Величины то, несопоставимые.
Ну расстояние тоже меряют в световых годах. Так что это не проблема.
Вводим постоянную скорость. Например, 1 _Point за один 1 минутный бар и приводим систему координат к цене по обоим осям.
Тогда углы будут одинаковыми на любом таймфрейме.
Главное правильно посчитать количество минутных бар между x1 и x2.
В такой системе координат угол в 45 градусов будет означать, что цена меняется на N*tg(45) =N пунктов за N минутных баров, а угол в 30 градусов будет означать, что цена меняется на N*tg(30)=N*0.57735 пунков за N минутных баров.Лучше использовать минутные бары, а не время, т.к. существуют временные дырки в виде выходных, низкой волонтильности и т.д.
Согласен на 100%, т.к. свечу можно растягивать и по горизонтали и по вертикали. И для определения угла должен быть какой-то стандарт (ширина свечи в пикселях и количество пунктов в пикселе) .
Можно вопрос не по теме?
Как правильно преобразовать datatime в double что-бы не ругался компилятор (возможна потеря данных из-за неправильного преобразования)
double A = Time[1];
Заранее спасибо!
Если у вас 1884 пункта цена прошла за 39 часов то скорость будет 48 пунктов в час. И совсем нет необходимости пересчитывать это в дни.
Да, это моё допущение. Поскольку, скорость я сделал int (т.е. целые пункты), подумал пусть будет период побольше, чтобы доли пункта в скорости не играли особой роли, и их можно было откинуть. Вот и получилось пункты в день. Ну это и согласуется с биологическими часами человека. Устали, поспали, утром встали: "Какая там скорость вчера была?". Выглядит непротиворечиво, вот я и сделал для себя такой стандарт. А так конечно, кому как удобно.
Ну расстояние тоже меряют в световых годах. Так что это не проблема.
Вводим постоянную скорость. Например, 1 _Point за один 1 минутный бар и приводим систему координат к цене по обоим осям.
Да, опять же скорость получается, только единицы: пункты в минуту. А по поводу выходных и дырок принял для себя так: какие свечи есть на графике, то и есть интервал времени, а чего нет (дней/часов), то этого и не существует. Потому, что если учитывать выходные, а цена в это время стоит на месте, то скорость здесь будет заметно падать без всякого основания. Но это опять же, каждому своё:)
Как правильно преобразовать datatime в double что-бы не ругался компилятор (возможна потеря данных из-за неправильного преобразования)
А зачем вам хранить дату в double? Если, Вы храните различные типы переменных в одном массиве, и приводите их туда сюда, то подумайте о замене обычного массива на массив структур:
Спасибо огромное!
Структуры работают только в mql 5 или уже в mql 4 ?
Спасибо огромное!
Структуры работают только в mql 5 или уже в mql 4 ?
Не только структуры работают, но и union тоже.