Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1087
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Buenas tardes. Por favor, ayúdame a escribir el siguiente código, para un EA. Quiero hacer a través de una matriz (si tiene una mejor opción, por favor ayuda). En general, el EA envía mensajes, pero quiero que los envíe a través de un array (temporal). Es decir, cuando se inicia el envío del mensaje, el Asesor Experto comprueba si el mensaje ha sido enviado anteriormente (comprueba si el mensaje está almacenado en la matriz), si no, envía el mensaje, si el mensaje se encuentra, entonces se omite el envío. Espero que quede claro) ¡Muchas gracias!
¿Está seguro del planteamiento del problema?
Simplemente, hay opciones:
- No repetir el último mensaje
- para ignorar el obsoleto (se establece un cierto desfase), es decir, el mensaje debe repetirse.
P.D. La primera variante es un caso especial de la segunda, pero es mucho más fácil de aplicar. Su definición del problema es también un caso especial de la segunda variante con desfase infinito.
Si te interesa, aquí tienes la solución a tu problema.
Definimos dos matrices: una de texto, que almacena los mensajes, y otra de índices, para buscar los mensajes.
La matriz de índices es de tipo int. En la primera dimensión escribimos la suma de comprobación del mensaje de texto. En el segundo - el número de línea de la primera matriz. Un array de índices se ordena por la primera dimensión.
Recibimos un nuevo mensaje. Lee su suma de comprobación. Usando la función ArrayBsearch() encontrar dicho mensaje. Si no se encuentra, el mensaje es original. Añádelo al array de mensajes y, suma de comprobación con referencia al array de índices, recordando que hay que ordenarlo.
¿Cuáles son las opciones para la suma de comprobación? Yo me quedaría con esta: tener en cuenta el número de caracteres y la suma de comprobación del texto. La suma de comprobación del texto, por ejemplo, es la suma de los códigos de caracteres. Dados los cambios recientes, no puede superar los 65 536*256. Es decir, la suma de comprobación del mensaje puede tener el siguiente aspecto:
el número de caracteres multiplicado por 10 millones y añadir la suma de comprobación del texto.
¡Pro! Hay un problema con la línea del ángulo.
He construido unTRENDBYANGLE utilizando coordenadas.
- Necesito un ángulo.
La ayuda dice que la línea creada por el programa - el ángulo de CERO está bien.
He vuelto a ejecutar el mismo código en las mismas coordenadas sin tocar la línea - aparece el número correcto de grados, no cero. ¿por qué, cómo puedo hacerlo bien la primera vez?
o di una coordenada - pregunto por el ángulo - dice 0. doy otra enseguida - dice el ángulo de las coordenadas anteriores. tonterías
He movido este comentario al principio porque nadie ha contestado, pero realmente lo necesito =/
¿Es posible implementar esto:si pulso cualquier tecla, una parte del código del indicador se enciende (responsable de crear un objeto con un clic del ratón), entonces si se produce un evento (la segunda parte del código, el evento puede ser, la creación del mismo objeto, por ejemplo), entonces la primera parte del código se desactiva (y si no hace esto, el objeto se crea por cada clic), y también se ejecuta cuando se pulsa la tecla, y así sucesivamente alrededor del círculo)
Puedes hacerlo. Añadir el bloque OnChartEvent. En él, anote las presiones necesarias, las medidas y describa la reacción a las mismas, según su idea.
No puedo implementar la desactivación de una parte del código para el período antes de la pulsación de latecla =/ Hay una manera más fácil, pero hay un problema:i necesita devolver su valor al principio de la primera declaración if cuando se pulsa la tecla.
Este código sólo se ejecutará si se hace clic con el ratón, con 3 líneas de código que comprueban un evento de pulsación de teclas. Y estas 3 líneas de código se ejecutan en unos pocos milisegundos, e incluso si el id durante la llamada actual OnChartEvent es capaz de cambiar, la probabilidad de que durante el tiempo, la ejecución de 3 líneas de código, la tecla se presiona = 0%. Obviamente, no tiene sentido comprobar el id, dentro de un bloque que se activa en un determinado valor de id, y esperar allí un valor diferente. Primero, comprueba la pulsación de la tecla, en un bloque separado, guarda en una variable el número de la tecla o simplemente el hecho de pulsar la tecla deseada. Y con esta variable, activar o desactivar el trozo de código situado en el bloque para el clic del ratón.
Muchas gracias) Esta es la línea que estaba buscando if (id==CHARTEVENT_CLICK && key == 'D'), no podía conectar dos eventos, esto no funcionaba if (id==CHARTEVENT_CLICK & id==CHARTEVENT_KEYDOWN) Muchas gracias de nuevo)
Hola, tengo una función que calcula el tamaño medio de una vela a partir de las últimas n velas. a veces da como resultado los siguientes valores: "5e-05.0". no los necesito, para mi vergüenza no sé cuantitativamente cuántos y cómo cortarlos. NormalizeDouble() no ayuda. Por favor, dígame cómo calcular estos números de forma programada para cortarlos
Hola, tengo una función que calcula el tamaño medio de una vela a partir de las últimas n velas. a veces da como resultado los siguientes valores: "5e-05.0". no los necesito, para mi vergüenza no sé cuánto son y cómo cortarlos. NormalizeDouble() no ayuda. Por favor, dígame cómo calcular estos números de forma programada para cortarlos
Qué cortar, entonces:
Estas velas pequeñas, de 5 pips, sólo pueden ocurrir en latitudes bajas, en una cuenta de 5 dígitos, en marcos de tiempo bajos. Si no se trata de scalping, pero la media es a veces tan pequeña para n velas, entonces la implementación de la función debe ser sospechosa.