¿Cómo se calcula la longitud de una línea a partir de las coordenadas? - página 9

 
AlexSTAL:

¿Cómo se obtiene la longitud de la línea en zigzag (longitud de onda en esencia) en cualquier unidad, conociendo las coordenadas de los dos puntos?

Es necesario comparar las longitudes de onda de los dos en porcentaje

Es bastante sencillo de resolver: hay que utilizar las funciones GDI

He aquí un ejemplo aún más complicado: el cálculo de la pendiente de la MA. Se utilizan las distancias de los píxeles


#import "user32.dll"
        int GetWindowDC(int dc);
        bool GetWindowRect(int h, int& pos[4]);
        int ReleaseDC(int h, int dc);
#import

//---------------------------------------------------------------   CheckAngle
int CheckAngle(string smb, int tf, int iB)
{
  double p1, p2, ang;
  p1=iMA(smb, tf, dPeriod, 0, dMode, dPrice, iB+1);
  p2=iMA(smb, tf, dPeriod, 0, dMode, dPrice, iB);

  int hWnd=WindowHandle(Symbol(), Period()); int hDC=GetWindowDC(hWnd); // получаем хендл окна
  int rect[4]; GetWindowRect(hWnd, rect); ReleaseDC(hWnd, hDC);   // берем его DC
  double wW=rect[2]-rect[0]; double wH=rect[3]-rect[1];           // получаем высоту и ширину в пикселях
  double H=(WindowPriceMax()-WindowPriceMin()); double W=WindowBarsPerChart(); // переводим на график
  double x=wW/W; double y=((p2-p1))*wH/H;                         // определяем катеты
  ang=MathArctan(y/x)*180/3.1415926535; if (ang>180) ang=ang-360; // равняем относительно оси Х
}


En versiones posteriores, utilicé coeficientes de normalización para mantener el valor del ángulo sin cambios al acercar y alejar el gráfico. Pero ahora no los encuentro.

 

A eso me refería, pero me olvidé por completo de la API (la necesitaba muy pocas veces):

AlexSTAL:

Si pudiera obtener el tamaño del gráfico en píxeles, no habría ningún problema. Hay operadores que obtienen el mínimo y el máximo del precio, hay operadores que obtienen el número de barras en la pantalla. Traducirlos a unidades condicionales no es un problema


Una vez más, muchas gracias a Alexey, un verdadero profesional.

 

Por supuesto, llego tarde a la discusión.

Pregunta para el matemático:

¿En qué unidades se obtiene la hipotenusa de dicho triángulo si es paralela al eje del loro? ¿En qué unidades estaban las longitudes de los catetos?

Y en cuanto al fondo de la cuestión, creo que es necesario contar la duración no en compases, sino en tiempo. El marco temporal mínimo es M1 - significa que el tiempo se mide discretamente con incrementos de 1 minuto. Este es el número de minutos y debe tomarse como la duración de uno de los catetos. Este enfoque garantiza la misma longitud del catéter en diferentes plazos y no depende del escalado en el terminal.

 
api:

Por supuesto, llego tarde a la discusión.

Pregunta para el matemático:

¿En qué unidades se obtiene la hipotenusa de dicho triángulo si es paralela al eje del loro? ¿En qué unidades estaban las longitudes de los catetos?

Y en cuanto al fondo de la cuestión, creo que es necesario contar la duración no en compases, sino en tiempo. El plazo mínimo es M1, por lo que el tiempo se mide discretamente con incrementos de 1 minuto. Este es el número de minutos y debe tomarse como la duración de uno de los catetos. Este enfoque garantiza la misma longitud del catéter en diferentes plazos y no depende del escalado en el terminal.

No soy matemático, pero voy a preguntar, ¿en qué unidades se miden las longitudes de los catetos?
 
sanyooooook:
No soy matemático, pero voy a preguntar, ¿en qué unidades se miden las longitudes de los catetos?

Lo mismo que la longitud de la hipotenusa.
 
api:

Lo mismo que la longitud de la hipotenusa.
es decir, la raíz cuadrada de: el cuadrado de los loros más el cuadrado de los loros, ¿y qué tiene que ver eso con las manzanas?
 
sanyooooook:
es decir, la raíz cuadrada de: el cuadrado de los loros más el cuadrado de los loros, ¿y qué tiene que ver eso con las manzanas?

La imagen no tiene ningún sentido.
 
sergeev:

En versiones posteriores, solía añadir coeficientes de normalización, de modo que cuando se cambiaba la escala del gráfico, los valores de los ángulos no cambiaban. Pero ahora no puedo encontrarlos.

¿Por qué entonces todo este baile (con píxeles)?

Añade un coeficiente para que la segunda hipotenusa sea del mismo orden que la primera y... Teorema de Pitágoras. Está claro que el resultado no se medirá ni en segundos, ni en barras ni en píxeles, será sólo un número, pero permitirá comparar segmentos separados entre sí y con los parámetros dados (y el resultado será concreto y onomatológico, con un valor de coeficiente constante), lo que es suficiente para la solución de la tarea. No hay otras opciones.

 
sanyooooook:
es decir, la raíz cuadrada de: el cuadrado de los loros más el cuadrado de los loros, ¿y qué tiene que ver eso con las manzanas?

La verdad es que no.

Es un espacio abstracto y no tiene nada que ver con el espacio real ni es una proyección del mismo. Para demostrarlo, imagina cualquier objeto en este espacio, como un loro colocado de forma que su línea de crecimiento sea paralela al eje del loro. Si se mira desde el lado del eje del loro se ve un loro entero, y si se mira desde el lado del eje de la manzana se ve alguna parte de una manzana o varias manzanas, no importa. En este lado no se ve el loro. Ahora gira el loro para que su línea de crecimiento sea paralela al eje de las manzanas. En este caso, observando el loro desde el eje de las manzanas, verás.... Así es, unas cuantas manzanas y ningún loro. Y en el lado del eje de los loros observarás... bueno, digamos, un "ala de loro", para usar el lenguaje de un famoso personaje de dibujos animados.

Se trata de un espacio tan complicado que, sin embargo, obedece a la ley de Pitágoras.

Pero en nuestro caso nadie gira los gráficos y el precio sigue siendo el precio y el tiempo sigue siendo el tiempo.

 
Mischek:

La imagen no tiene ningún sentido
)
Razón de la queja: