[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 23

 
TarasBY:

1º: tu filosofía de cambiar el tamaño de la matriz es defectuosa desde el principio, puedes hacer con 10 celdas para procesar las lecturas de los indicadores en 99 de cada 100 casos;

2º: recalcular estas lecturas en cada tic es un capricho de un cerebro desinformado.


Igor, o empiezas a dar consejos sensatos para salir de la situación, o no postees.
 

Rudo, pero al grano) Después de experimentar, me di cuenta de que los datos sobre el número de puntos se pueden sumar en una celda. Esto es suficiente.

 
FAQ: Igor, o empiezas a dar consejos sensatos para salir de la situación, o no postees.
Traduciré el punto que estaba haciendo en un "buen consejo": el hombre se está dirigiendo a un callejón sin salida.
 

Por lo tanto, apúntale en la dirección correcta, no sólo afirmando el hecho del estancamiento.

Este es un hilo...

 
Fox_RM: Rudo, pero al grano) Después de experimentar, me di cuenta de que los datos sobre el número de puntos se pueden sumar en una celda. Esto es suficiente.
Sin el más mínimo pensamiento de ofender o insultar.
 

¡No pasa nada! Ayudar a la gente en este foro es muy valioso. Hace uno o dos meses no sabía trabajar con arrays en absoluto)

 
Fox_RM:

Si el array es heterogéneo, probablemente deba convertir todos los elementos a tipo cadena y luego buscar el requerido utilizando

StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148). Corrígeme si me equivoco.


Gracias. He encontrado la función.

Pero no entiendo cómo utilizarlo correctamente.

Devuelve sólo un lugar en la cadena donde comienza la parte buscada, pero no una parte.

Necesito una parte de una cadena.

 
Snegovik:


Gracias. He encontrado la función.

Pero aún no he descubierto cómo usarlo correctamente.

Sólo devuelve el lugar de la cadena donde empieza la parte buscada, pero no la parte.

Necesito una parte de la cadena.

StringSubstr().
 
TarasBY:
StringSubstr ().


Justo lo que necesito.

Muchas gracias.

 

¡Buenas noches a todos!

El problema: no puedo averiguar cómo utilizar la función para encontrar el punto de intersección de dos líneas (también he probado la función de Kim, pero el resultado es el mismo).

La cuestión es que a veces el cruce se detecta en el lugar equivocado.

Esto es lo que ocurre:


La línea horizontal roja es el nivel de precios calculado por la función. El amarillo es un nivel que debería ser.

Lo interesante es que este error no siempre ocurre: a menudo la intersección se define como debería...

A continuación pego el código de la función.

//+----------------------------------------------------------------------------+
void Middle(string nm1,string nm2)
  {
  //double M;
  double x1, x2, x3, x4;
  double y1, y2, y3, y4;
  double k1, k3;
  
  if(ObjectFind(nm1)==0 && ObjectFind(nm2)==0)
    {
    y1=ObjectGet(nm1, OBJPROP_PRICE1);
    y2=ObjectGet(nm1, OBJPROP_PRICE2);
    x1=ObjectGet(nm1, OBJPROP_TIME1);
    x2=ObjectGet(nm1, OBJPROP_TIME2);
    
    y3=ObjectGet(nm2, OBJPROP_PRICE1);
    y4=ObjectGet(nm2, OBJPROP_PRICE2);
    x3=ObjectGet(nm2, OBJPROP_TIME1);
    x4=ObjectGet(nm2, OBJPROP_TIME2);
    
    k1=(y2-y1)/(x2-x1); 
    k3=(y4-y3)/(x4-x3);
    
    if(k1 != k3)
      {
      T = (y1 - y3 + k3*x3 - k1*x1)/(k3 - k1);
      M = y1 + k1*(T - x1);
      Tt = T;
      }
    }
  return(0);
  }
//+----------------------------------------------------------------------------+

El tráiler contiene un Asesor Experto para probarlo.

Por favor, aconséjeme lo que estoy haciendo mal.

Muchas gracias de antemano)

Archivos adjuntos:
proba_per.mq4  11 kb