Discusión sobre el artículo "Creación de indicadores personalizados usando la clase CCanvas" - página 2
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
¡Qué buena noticia! ¿Cuál es la idea? ¿En lugar de un historial de ticks, una serie temporal personalizada?
No. Dibujar un histograma de la tasa de ticks junto al historial de ticks.
Así, jugando con los parámetros, podrás determinar visualmente los periodos de actividad y, tal vez, encontrar algunos patrones.
Buen tema. Gracias al autor, va a hacer un indicador de garrapatas en canvas.....
Me di cuenta de esto.
Hay un miembro de datos privado m_canvas_name, pero el método que establece su valor - Name() - es público. Imho, el principio de encapsulación se viola. Voy a hacer este método privado.
¿Tal vez protegido? Porque todos los demás heredan de CCanvasBase. Y entonces será imposible utilizar este método en ellos. Aunque no sé, tal vez usted ha cambiado algo más en la estructura general.
¿Quizás protegido? Porque todos los demás heredan de CCanvasBase. Y entonces no se puede usar este método en ellos. Aunque no sé, igual has cambiado algo más en la estructura general.
Así que sí, protected.
Entonces aquí:
¿Por qué tan complicado en el indicador? Imho, es necesario limpiar el propio lienzo. Yo añadiría ChartRedraw() al método DeleteCanvas().
Cuando tengas bocetos, por favor envía capturas de pantalla/vídeo. Yo mismo publiqué un indicador de este tipo, pero no llegó a la gente. Aunque no he encontrado uno mejor. Es interesante ver otras soluciones en kanvas.
Estoy haciendo uno para FORTS. La hice en el formato habitual, pero en el Tester funciona fatal cuando se llama desde el cuerpo del EA. Ahora transferiré todo el código al EA...
Sí, así es.
Entonces aquí:
¿Por qué tan complicado en el indicador? En mi opinión, es necesario limpiar el propio lienzo. Yo añadiría ChartRedraw() al método DeleteCanvas().
Sí, de esta manera habrá menos líneas innecesarias. Limpiamos el lienzo y enviamos el redibujado allí.
Esa no es realmente la forma de hacerlo:
¿Por qué un operador ternario? - Cuando puedes hacerlo así:
Yo lo hice así:
Pero canvas tiene su propio método de borrado CCanvas::Destroy().
¿Por qué necesitamos añadir algo más?
Tengo un problema con el escalado vertical.
Quiero hacer un gráfico de ticks en RTS, donde el máximo en el eje Y sea 97784.0 y el mínimo 97756.0.
Hago esto en el código:
Obtengo esto
https://www.mql5.com/ru/charts/7227612/rts-9-17-m1-ao-otkritie-broker
El mínimo se muestra correctamente, pero luego hay algunos zumbidos.
Aparentemente, el método CLineGraph::VerticalScale() no está tan afinado como creo, o peor, como debería.
...
Prueba esta clase >>> CGraphic
¡Visualízalo! Librería gráfica en MQL5 como análoga a plot de R
Probando CGraphic - preguntas y sugerencias
Prueba esta clase >>> CGraphic
¡Visualízalo! Librería gráfica en MQL5 como análoga a plot de R
Probando CGraphic - preguntas y sugerencias
Anatoly, gracias por el consejo, lo usaré. Es una pena que la idea resulte ser código poco amigable...