Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 479
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сегодня , завтра будет вчера
Равно, больше, меньше, больше или равно, меньше или равно... Как-то так...
На водку: Вчера --> меньше, чем сегодня. Завтра --> больше, чем вчера..
Дата - это просто число секунд от начала 1970 г., что вы все доки не любите читать-то? Как сравнить два целочисленных числа, думаю, ясно.
Спасибо за ответ - никак не могу сесть за написание кода и проверку полученных знаний.
Кстати, доки читаю, но не всегда удаётся с ходу найти нужную информацию, а не сходу - времени не хватает - поэтому рад, что тут есть эта ветка.
Спасибо за ответ - никак не могу сесть за написание кода и проверку полученных знаний.
Кстати, доки читаю, но не всегда удаётся с ходу найти нужную информацию, а не сходу - времени не хватает - поэтому рад, что тут есть эта ветка.
Подскажите будьте добры. Если к примеру я торгую и у меня на терминале установлен советник и я дам данные для входа на свой счёт другому человеку (реальные и инвесторский) - сможет ли он видеть после авторизации на этом счету на своём компьютере советник установленный на моём терминале и все его настройки ?
Подскажите будьте добры. Если к примеру я торгую и у меня на терминале установлен советник и я дам данные для входа на свой счёт другому человеку (реальные и инвесторский) - сможет ли он видеть после авторизации на этом счету на своём компьютере советник установленный на моём терминале и все его настройки ?
Помогите пожалуйста перевести алгоритм нахождения координаты точки пересечения двух отрезков
Из статьи:
Все очень просто!
х1, у1 и х2,у2 - координаты вершин первого отрезка;
х3, у3 и х4,у4 - координаты вершин второго отрезка;
для нахождения пересечения составляем уравнения прямых:
первое уравнение:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
второе уравнение
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
эти уравнения определяют прямую проходящую через две точки, то, что нам и надо.
Из этих уравнений находим х и у по следующим формулам:
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
так как наши прямые пересекаются, то у них есть общая точка пересечения с координатами (х,у), которую нам и надо найти.
для того, чтоб пересечение принадлежало нашим отрезкам, нужно его ограничить, т. е проверить условие:
если
(((x1<=x)and(x2>=x)and(x3<=x)and(x4 >=x))or((y1<=y)and(y2>=y)and(y3<=y) and(y4>=y)))
то существует точка пересечения данных отрезков, а нет – то нет и точки пересечения.
Еще следует проверить параллельность этих отрезков при помощи угловых коэффициентов:
k1:=(x2-x1)/(y2-y1);
k2:=(x4-x3)/(y4-y3);
где k1 и k2 – тангенсы угла наклона отрезков к положительному направлению оси ОХ, если k1=k2, то отрезки параллельны, а значит, не имеют точек пересечения.
Готовая функция. Код: POINT Point_X(POINT a1,POINT a2,POINT a3,POINT a4){ POINT T; if(((a1.x<=T.x)&&(a2.x>=T.x)&&(a3.x<=T.x)&&(a4.x >=T.x))||((a1.y<=T.y)&&(a2.y>=T.y)&&(a3.y<=T.y)&&(a4.y>=T.y))){ float x1=a1.x,x2=a2.x,x3=a3.x,x4=a4.x,y1=a1.y,y2=a2.y,y3=a3.y,y4=a4.y; float k1,k2; if(y2-y1!=0){ k1=(x2-x1)/(y2-y1); if(y4-y3!=0){ k2=(x4-x3)/(y4-y3); if(k1!=k2){ T.x=((a1.x*a2.y-a2.x*a1.y)*(a4.x-a3.x)-(a3.x*a4.y-a4.x*a3.y)*(a2.x-a1.x))/((a1.y-a2.y)*(a4.x-a3.x)-(a3.y-a4.y)*(a2.x-a1.x)); T.y=((a3.y-a4.y)*T.x-(a3.x*a4.y-a4.x*a3.y))/(a4.x-a3.x); T.x*=-1; return T; }else{ T.x=969; T.y=969; //text2("Паралельны"); } }else{ T.x=969; T.y=969; //text2("Паралельны"); } }else{ T.x=969; T.y=969; //text2("Паралельны"); } }else{ //text2("Пересечение вне отрезка"); T.x=979; T.y=979; return T; } }А, может быть, у кого-нибудь в архивах есть уже готовый?Здравствуйте уважаемые!
Помогите пожалуйста перевести алгоритм нахождения координаты точки пересечения двух отрезков
Из статьи:
Все очень просто!
А, может быть, у кого-нибудь в архивах есть уже готовый?х1, у1 и х2,у2 - координаты вершин первого отрезка;
х3, у3 и х4,у4 - координаты вершин второго отрезка;
для нахождения пересечения составляем уравнения прямых:
первое уравнение:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
второе уравнение
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
эти уравнения определяют прямую проходящую через две точки, то, что нам и надо.
Из этих уравнений находим х и у по следующим формулам:
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
так как наши прямые пересекаются, то у них есть общая точка пересечения с координатами (х,у), которую нам и надо найти.
для того, чтоб пересечение принадлежало нашим отрезкам, нужно его ограничить, т. е проверить условие:
если
(((x1<=x)and(x2>=x)and(x3<=x)and(x4 >=x))or((y1<=y)and(y2>=y)and(y3<=y) and(y4>=y)))
то существует точка пересечения данных отрезков, а нет – то нет и точки пересечения.
Еще следует проверить параллельность этих отрезков при помощи угловых коэффициентов:
k1:=(x2-x1)/(y2-y1);
k2:=(x4-x3)/(y4-y3);
где k1 и k2 – тангенсы угла наклона отрезков к положительному направлению оси ОХ, если k1=k2, то отрезки параллельны, а значит, не имеют точек пересечения.
Что-то больно замудрёно... Я писал определение пересечения прямых, одна по 2м хаям и другая по 2м лоу, дальше следующего бара или нет. Писал через тангенс, отношение разницы цены в пунктах к количеству баров между хаями по которым проводится линия. Соответственно тангенс угла второй линии, по лоу. И потом через тангенс находил количество пунктов на следующем баре, т.е. обратная формула с изменённым значением одного катета (количества баров). Получается значение цены в проверяемой точке этих прямых. И соответственно если значение цены прямой по хаям меньше, то пересечение было.
Но пока что-то не могу найти этот индикатор.