¿Cuál es el valor de un píxel?
¿Cuál es el valor de un píxel en el eje Y del gráfico actual? Gracias por adelantado.
¿El valor?
Un píxel no tiene un "valor".
¿Qué quiere decir?
¿Cuál es el valor de un píxel en el eje Y del gráfico actual? Gracias de antemano.
¿El valor? Un píxel no tiene un "valor".
¿Qué quiere decir?
min_price = ChartGetDouble(0,CHART_PRICE_MIN);
long chart_height = ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
printf("1 pixel = %f",(max_price-min_price)/chart_height);
min_price = ChartGetDouble(0,CHART_PRICE_MIN);
long chart_height = ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
printf("1 pixel = %f",(max_price-min_price)/chart_height);
Si un píxel no tiene un valor, ¿cómo es posible entonces dibujar una línea utilizando los ejes x e y (por supuesto estas variables toman valores en píxeles) o crear botones, etc. que utilicen las coordenadas?
Véase: https://www.mql5.com/en/docs/chart_operations/chartxytotimeprice
- www.mql5.com
Si un píxel no tiene un valor, ¿cómo es posible entonces dibujar una línea utilizando los ejes X e Y (por supuesto estas variables toman valores en píxeles) o crear botones, etc. que utilicen las coordenadas?
Probablemente vale la pena mencionar que hay 2 formas diferentes de dibujar objetos.
- Usando el tiempo/precio... como OBJ_TREND y OBJ_TEXT
- Estos objetos se moverán a lo largo de la pantalla a medida que se desplaza el gráfico hacia la izquierda/derecha/arriba/abajo.
- Utilizando píxeles X/Y... como OBJ_BUTTON y OBJ_LABEL
- Estos objetos no se moverán en la pantalla, aunque el gráfico se desplace.
A veces es necesario mezclarlos, por ejemplo, si se quiere dibujar un objeto relativo al tiempo en el eje X, y píxeles en el eje Y.
En estas circunstancias, querrá utilizar ChartXYToTimePrice() o ChartTimePriceToXY() como ha sugerido Marco.
long chart_id, // Chart ID
int sub_window, // The number of the subwindow
datetime time, // Time on the chart
double price, // Price on the chart
int& x, // The X coordinate for the time on the chart
int& y // The Y coordinates for the price on the chart
);
Podría haber una barra muy grande en el extremo izquierdo de la pantalla, cuando esa barra se mueve fuera del área visible entonces cualquier valor calculado cambiaría de nuevo como el gráfico se ajusta al rango total.
¿Qué pasa cuando se tienen abiertas las ventanas del terminal y/o del probador de estrategias?
No habría nada uniforme en absoluto utilizando píxeles
¡Vaya! Creo que este debe ser muy útil. Muchas gracias. La combinaré con la siguiente función inversa:
long chart_id, // Chart ID
int sub_window, // The number of the subwindow
datetime time, // Time on the chart
double price, // Price on the chart
int& x, // The X coordinate for the time on the chart
int& y // The Y coordinates for the price on the chart
);
Necesito este valor para poder calcular el valor de 600 píxeles.
Esto es porque quiero un nivel de take profit de 600 píxeles, y no 600 Puntos o 600 pips.
Quiero un nivel de take profit uniforme en todos los gráficos, independientemente de sus valores de Puntos o Pip.
Es el momento de operar en términos de píxeles. Gracias de antemano alguien.