Discusión sobre el artículo "Plantillas listas para conectar indicadores en asesores (Parte 1): Osciladores"

 

Artículo publicado Plantillas listas para conectar indicadores en asesores (Parte 1): Osciladores:

En este artículo analizaremos los indicadores estándar de la categoría de osciladores. Asimismo, crearemos plantillas listas para su uso en asesores: declaración y configuración de parámetros, inicialización y desinicialización de indicadores, y también obtención de datos y señales de los búferes de indicador en asesores.

La conexión de indicadores a un asesor y el uso de los datos del búfer de indicador en el asesor es una tarea bastante sencilla, pero requiere la consulta de materiales de referencia cada vez. Debemos recordar todos los parámetros transmitidos a la función de creación de indicadores, organizar algunos de ellos como parámetros de entrada del asesor, organizar la comprobación de su corrección, etc. Para obtener los datos, tenemos que escribir funciones que retornen los datos correctos de la barra correcta. Todo esto requiere dedicar tiempo cada vez para consultar la guía de ayuda, introducir las variables necesarias en el asesor, escribir las funciones de obtención y control de datos para detectar señales, etc.

El propósito de este artículo consistirá en crear plantillas para conectar indicadores a asesores. Asimismo, analizaremos los indicadores de la categoría de osciladores, sus variables de entrada, la creación de un manejador del indicador y la obtención de los datos necesarios de él.


Autor: Artyom Trishkin

 
¿Por qué de wint a int y por qué querrías un diseño así en primer lugar?
//--- Establecer y ajustar si es necesario el periodo de cálculo
   period=int(InpPeriod<1 ? 14 : InpPeriod);

Entiendo que la entrada es una constante. Simplemente no puedo imaginar la tarea.

Bueno, sólo como una defensa contra un tonto que puso un menos, pero entonces sería mejor tener una alerta de que la persona cometió un error.

 
Valeriy Yastremskiy #:
¿Por qué de uint a int y por qué tal construcción en absoluto?

Entiendo que la entrada es una constante. Simplemente no puedo imaginar la tarea.

Bueno, sólo como defensa contra un tonto que puso un menos, pero entonces sería mejor tener una alerta de que la persona cometió un error.

InpPeriod es una variable de entrada input. No hay manera de poner un menos allí. Usted puede poner un cero allí. Tales comprobaciones (para menos de uno) son un hábito para no comparar números con cero directamente - si de repente en otra construcción similar habrá una variable de entrada con tipo doble, me permitirá evitar la comparación directa de dos números dobles. Sí, esto es "a prueba de tontos". En primer lugar de mí mismo - para cometer menos errores al portar el código a otros lugares.

 
Artyom Trishkin #:

InpPeriod - variable de entrada input. No hay manera de poner un menos allí. Usted puede poner un cero allí. Tales comprobaciones (para menos de uno) son un hábito para no comparar números con cero directamente - si de repente en otra construcción similar habrá una variable de entrada con tipo doble, me permitirá evitar la comparación directa de dos números dobles. Sí, esto es "a prueba de tontos". En primer lugar de mí mismo - para cometer menos errores al portar el código a otros lugares.

Bueno, sí, es uint)))))) No se le puede poner un menos))))

 
Valeriy Yastremskiy #:

Bueno, sí, wint))))))) No se le puede poner un menos))))

¿Y cero?

 
Alexey Viktorov #:

¿Y cero?

Y cero es posible. Pero el indicador se fijará en el valor por defecto en este caso.

Pero el punto de su pregunta era otra cosa - usted ya sabe acerca de cero.

Pero no voy a adivinar

 
Artyom Trishkin #:

Y cero es posible. Pero el indicador se establecerá en el valor predeterminado en este caso.

Pero el punto de su pregunta era otra cosa - usted ya sabe acerca de cero.

Pero no voy a adivinar

Así es. No hay necesidad de adivinar. Era sólo una pregunta para Valery. No puedes poner un menos, ¿pero un cero?

 
Alexey Viktorov #:

¿Y cero?

Así que cero es actual)))) Como un diseño a prueba de tontos está bien))))))

Y usted puede poner una máscara en el teclado, de modo que sólo los dígitos se presionan, y las otras teclas no se presionan)))))) Para los soldados en los años 90 hizo)))))) Y al pulsar otras teclas, una advertencia apareció en letras grandes))

 
Artyom Trishkin #:

Saludos

¿Cómo puedo alinear el texto al centro de la celda?


 
Vitaly Muzichenko #:

¡Saludos!

¿Cómo puedo alinear el texto al centro de la celda?


Hola. Creo que no he hecho salida de texto a celdas con diferentes puntos de anclaje.

Pero si suponemos que anchura_columna es la anchura de la celda, altura_columna es su altura,
y anchura_texto y altura_texto son las dimensiones correspondientes del texto a imprimir en la celda,
entonces las coordenadas de la esquina superior izquierda del texto deberían calcularse usando estas fórmulas:

Ancla texto_x texto_y
SUPERIOR_IZQUIERDA 0 0
IZQUIERDA 0 (altura_columna - altura_texto)/2
IZQUIERDA_INFERIOR 0 altura_columna - texto_h
INFERIOR (ancho_columna - texto_w)/2 altura_columna - texto_h
DERECHA_INFERIOR ancho_columna - texto_w altura_columna - texto_h
DERECHA ancho_columna - texto_w (altura_columna - texto_h)/2
SUPERIOR_DERECHA ancho_columna - texto_w 0
SUPERIOR (ancho_columna - texto_w)/2 0
CENTRO (ancho_columna - texto_w)/2 (altura_columna - texto_h)/2

Aquí anclaje de texto - por defecto - coordenadas iniciales de texto en la esquina superior izquierda, y para mostrar el texto en función del punto de anclaje (ancla en la cabecera de la tabla), es necesario calcular las coordenadas de texto utilizando las fórmulas anteriores.

 
Artyom Trishkin #:

Hola. Creo que no he hecho salida de texto a celdas con diferentes puntos de anclaje.

Pero si suponemos que anchura_columna es la anchura de la celda, altura_columna es su altura,
y anchura_texto y altura_texto son los tamaños correspondientes del texto a imprimir en la celda,
entonces las coordenadas de la esquina superior izquierda del texto deberían calcularse usando estas fórmulas:

Ancla texto_x texto_y
SUPERIOR_IZQUIERDA 0 0
IZQUIERDA 0 (altura_columna - altura_texto)/2
IZQUIERDA_INFERIOR 0 altura_columna - texto_h
INFERIOR (ancho_columna - texto_w)/2 altura_columna - texto_h
DERECHA_INFERIOR ancho_columna - texto_w altura_columna - texto_h
DERECHA ancho_columna - texto_w (altura_columna - texto_h)/2
SUPERIOR_DERECHA ancho_columna - texto_w 0
SUPERIOR (ancho_columna - texto_w)/2 0
CENTRO (ancho_columna - texto_w)/2 (altura_columna - texto_h)/2

Aquí anclaje de texto - por defecto - coordenadas iniciales de texto en la esquina superior izquierda, y para mostrar el texto en función del punto de anclaje (ancla en la cabecera de la tabla), es necesario calcular las coordenadas de texto de acuerdo con las fórmulas dadas.

Eso es más o menos lo que pensaba, pero pensé que había una solución más simple.

Gracias.