Isso mesmo ... E eu preciso do comprimento da Linha Vermelha... Imagine se estas duas linhas paralelas fossem verticais, o que mostraria a linha azul?
É possível que esta linha vermelha não seja perpendicular devido ao fato de que ela só pode ser traçada pelo preço da barra e pelo tempo.
Como opção, vejo a seguinte seqüência: determinamos a inclinação da linha de tendência ou traçamos a linha de tendência por um ângulo e obtemos o ângulo perpendicular pelo qual calculamos a distância até a segunda linha.
Mas isto é apenas uma teoria. Deve ser verificado.
É possível que esta linha vermelha não seja perpendicular porque só pode ser traçada com base no preço da barra e no tempo.
Como opção, vejo a seguinte seqüência: determinamos a inclinação da linha de tendência ou traçamos a linha de tendência pelo ângulo e obtemos o ângulo perpendicular com base no qual calculamos a distância até a segunda linha.
Mas isso é apenas teoria. Ela precisa ser testada.
Que chatice. Chegou a hora de aplicar as transformações de Fourier.
Tudo bem ... E eu preciso do comprimento. a linha vermelha. Imagine se as duas linhas paralelas fossem verticais, o que mostraria a linha azul? (em ângulos diferentes, será de comprimento diferente)
Se você desenhar duas linhas paralelas com 10 cm de distância em uma folha branca(Fig.7), você pode torcer a folha em qualquer ângulo e ela ainda será a mesma 10 cm(Fig.6).
Estou confuso com seus objetivos...
Diga-me o que você tem inicialmente, por favor. Não está claro para mim como você pode perguntar sobre a distância se não temos linhas paralelas, e se temos, como é construída a segunda linha sem esses dados?
Acima de você citou o código das duas linhas, mas, permita-me, não há nenhum paralelismo ali.
Ou a tarefa é apenas construir linhas paralelas? Ou para verificar se as linhas são paralelas? Ou apenas encontrar a diferença entre quaisquer duas linhas a qualquer momento?
O exemplo com a folha é muito simples, mas o gráfico pode mostrar uma imagem diferente por causa dos buracos na história, como exemplo - cortar a folha em três partes e remover a parte do meio, conectar as duas partes restantes e você verá que as linhas se tornaram curvadas, mas a distância entre elas é preservada. Assim, podemos medir a distância em qualquer ponto onde a linha ainda não tenha sido cortada, e para isso precisamos de coordenadas em dois pontos sem furos para cada linha, ou com furos restaurados.
De qualquer forma, faça esta opção - você pode definir o delta e pode encontrar a partir da posição preço/tempo, desde que as linhas sejam realmente paralelas.
#property strict#property script_show_inputsinputint X_1=100; //X1 в барахinputdouble Y_1=10; //Y1 в Пунктах от цены открытия бараinputint X_2=10; //X2 в барахinputdouble Y_2=15; //Y2 в Пунктах от цены открытия бараinputdouble Point_delta=30; //Зададим дельту в пунктах//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnStart()
{
//--- удаление всех созданных объектов bool DelAllObjects=true;
if(DelAllObjects==true)
{
int obj_total=ObjectsTotal();
PrintFormat("Всего%d объектов",obj_total);
for(int i=obj_total-1;i>=0;i--)
{
string name=ObjectName(i);
PrintFormat("Объект%d:%s",i,name);
ObjectDelete(name);
}
}
/*
Start Stop
x Time 10 20
y Price 30 50
Линейная функция y=kx+b
Система уравнений
30y=10k+b
50y=20k+b
//Вычитаем
20y=10k+0
-10k=-20y
k=-20/-10
k=2
*/double k=(Y_2-Y_1)*(-1)/(X_2-X_1)*(-1);
double b=(X_1*k-Y_1)*(-1);
//Point_delta - можно задать/рассчитать, если в этом смысл, а если не известна, то ищем по координатам второй линии - Deltadouble Y_3=X_1*k+b+Point_delta;
double Y_4=X_2*k+b+Point_delta;
double k2=(Y_3-Y_4)*(-1)/(X_2-X_1)*(-1);
double b2=(X_1*k-Y_2)*(-1);
double Delta=(Y_3-Y_1);
ObjectCreate("Line1",OBJ_TRENDBYANGLE,0,Time[X_1],Open[X_1]+Y_1*Point(),Time[X_2],Open[X_2]+Y_2*Point());
ObjectSetInteger(0,"Line1",OBJPROP_STYLE,STYLE_SOLID);
ObjectSetInteger(0,"Line1",OBJPROP_COLOR,Red);
ObjectSetInteger(0,"Line1",OBJPROP_WIDTH,2);
ObjectSetInteger(0,"Line1",OBJPROP_RAY_RIGHT,false);//Луч продолжается вправо ObjectCreate("Line2",OBJ_TRENDBYANGLE,0,Time[X_1],Open[X_1]+Y_3*Point(),Time[X_2],Open[X_2]+Y_4*Point());
ObjectSetInteger(0,"Line2",OBJPROP_STYLE,STYLE_SOLID);
ObjectSetInteger(0,"Line2",OBJPROP_COLOR,Lime);
ObjectSetInteger(0,"Line2",OBJPROP_WIDTH,2);
ObjectSetInteger(0,"Line2",OBJPROP_RAY_RIGHT,false);//Луч продолжается вправо
Label("Delta",//Название0, //Окно30, //X10, //Y"k="+DoubleToString(k,_Digits)+" b="+DoubleToString(b,_Digits)+" Delta="+DoubleToString(Delta,_Digits),
10,//Размер шрифта
Yellow,//Цвет шрифтаCORNER_LEFT_UPPER,//Выбор угла: 3 - нижний правый, 1 - верхний правый. 2 - нижний левый, 4 - верхний левый ANCHOR_LEFT_UPPER
);
return;
}
//+------------------------------------------------------------------+//|Функция вывода информации на экран |//+------------------------------------------------------------------+void Label(string _name,int _window,int _x,int _y,string _text,int _font,color _color,int corner,int anchor)
{
ObjectDelete(0,_name);
ObjectCreate(0,_name,OBJ_LABEL,_window,0,0);
ObjectSetInteger(0,_name,OBJPROP_CORNER,corner);
ObjectSetInteger(0,_name,OBJPROP_XDISTANCE,_x);
ObjectSetInteger(0,_name,OBJPROP_YDISTANCE,_y);
ObjectSetText(_name,_text,_font,"Arial",_color);
ObjectSetInteger(0,_name,OBJPROP_ANCHOR,anchor);
}
No código o eixo x vê barras, então se você precisa de mais precisão para a previsão, você precisa converter em segundos e verificar os furos.
Você só pode prever o preço dadas as barras no futuro - isto tem que ser calculado separadamente, dados os furos planejados! O engraçado é que às vezes você tem que criá-los de forma oposta...
E se você planeja construir um canal, é melhor construir um indicador usando buffers gráficos ou fazer um redesenho cíclico, de modo a não ter objetos correndo pela tela.
De qualquer forma, faça esta opção - você pode definir o delta e pode encontrar a partir da posição preço/tempo, desde que as linhas sejam realmente paralelas.
No código o eixo x vê barras, então se você precisa de mais precisão para a previsão, você precisa converter em segundos e verificar os furos.
Você só pode prever o preço dadas as barras no futuro - isto tem que ser calculado separadamente, dados os furos planejados! O engraçado é que às vezes você tem que criá-los de forma oposta...
Entendo corretamente que o delta é a linha azul ... O tamanho do vermelho não é aqui?
Isso mesmo ... E eu preciso do comprimento da Linha Vermelha... Imagine se estas duas linhas paralelas fossem verticais, o que mostraria a linha azul?
É realmente uma bobagem.
Eu mostrei o princípio de automatizar este tipo de cálculo, o resto é com você, pois você está bem com seu cérebro.
E aqui batemos em algo...
https://www.mql5.com/ru/forum/233174
Isso mesmo ... E eu preciso do comprimento da Linha Vermelha... Imagine se estas duas linhas paralelas fossem verticais, o que mostraria a linha azul?
É possível que esta linha vermelha não seja perpendicular devido ao fato de que ela só pode ser traçada pelo preço da barra e pelo tempo.
Como opção, vejo a seguinte seqüência: determinamos a inclinação da linha de tendência ou traçamos a linha de tendência por um ângulo e obtemos o ângulo perpendicular pelo qual calculamos a distância até a segunda linha.
Mas isto é apenas uma teoria. Deve ser verificado.
É possível que esta linha vermelha não seja perpendicular porque só pode ser traçada com base no preço da barra e no tempo.
Como opção, vejo a seguinte seqüência: determinamos a inclinação da linha de tendência ou traçamos a linha de tendência pelo ângulo e obtemos o ângulo perpendicular com base no qual calculamos a distância até a segunda linha.
Mas isso é apenas teoria. Ela precisa ser testada.
Que chatice. Chegou a hora de aplicar as transformações de Fourier.
É realmente uma droga.
Eu lhe mostrei o princípio de automatizar este tipo de cálculo, o resto é com você, pois você está bem da cabeça.
Bem, nós também nos batemos em algo aqui.
https://www.mql5.com/ru/forum/233174
um pouco, não é a mesma coisa... mas algo semelhante existe )
Que quebra-cabeças...
um pouco, não o mesmo ... mas há algo semelhante).
Que quebra-cabeças...
Não há quebra-cabeças.
Encontre o ângulo, encontre o cateto usando a fórmula.
Aqui está o assunto:
https://www.mql5.com/ru/forum/163710Tudo bem ... E eu preciso do comprimento. a linha vermelha. Imagine se as duas linhas paralelas fossem verticais, o que mostraria a linha azul? (em ângulos diferentes, será de comprimento diferente)
Se você desenhar duas linhas paralelas com 10 cm de distância em uma folha branca(Fig.7), você pode torcer a folha em qualquer ângulo e ela ainda será a mesma 10 cm(Fig.6).
Estou confuso com seus objetivos...
Diga-me o que você tem inicialmente, por favor. Não está claro para mim como você pode perguntar sobre a distância se não temos linhas paralelas, e se temos, como é construída a segunda linha sem esses dados?
Acima de você citou o código das duas linhas, mas, permita-me, não há nenhum paralelismo ali.
Ou a tarefa é apenas construir linhas paralelas? Ou para verificar se as linhas são paralelas? Ou apenas encontrar a diferença entre quaisquer duas linhas a qualquer momento?
O exemplo com a folha é muito simples, mas o gráfico pode mostrar uma imagem diferente por causa dos buracos na história, como exemplo - cortar a folha em três partes e remover a parte do meio, conectar as duas partes restantes e você verá que as linhas se tornaram curvadas, mas a distância entre elas é preservada. Assim, podemos medir a distância em qualquer ponto onde a linha ainda não tenha sido cortada, e para isso precisamos de coordenadas em dois pontos sem furos para cada linha, ou com furos restaurados.A fim de resolver o problema, você precisa:
1. desenhar uma perpendicular às linhas paralelas dadas
2. Determinar os pontos de interseção da perpendicular com as linhas dadas
3. calcular a distância entre os pontos de interseção
Claramente em fotos:
(diferentes linhas e distâncias entre elas)
.............................................................................
.............................................................................
.............................................................................
.............................................................................
De qualquer forma, faça esta opção - você pode definir o delta e pode encontrar a partir da posição preço/tempo, desde que as linhas sejam realmente paralelas.
No código o eixo x vê barras, então se você precisa de mais precisão para a previsão, você precisa converter em segundos e verificar os furos.
Você só pode prever o preço dadas as barras no futuro - isto tem que ser calculado separadamente, dados os furos planejados! O engraçado é que às vezes você tem que criá-los de forma oposta...
De qualquer forma, faça esta opção - você pode definir o delta e pode encontrar a partir da posição preço/tempo, desde que as linhas sejam realmente paralelas.
No código o eixo x vê barras, então se você precisa de mais precisão para a previsão, você precisa converter em segundos e verificar os furos.
Você só pode prever o preço dadas as barras no futuro - isto tem que ser calculado separadamente, dados os furos planejados! O engraçado é que às vezes você tem que criá-los de forma oposta...
Entendo corretamente que o delta é a linha azul ... O tamanho do vermelho não é aqui?
https://c.mql5.com/3/181/lineee__2.jpg