Qual é o valor de um pixel?

 
Qual é o valor de um pixel no eixo Y do gráfico atual?

Eu preciso deste valor para que eu possa calcular o valor de 600 pixels.

Isto porque eu quero 600 pixels com nível de lucro, e não 600 pontos ou 600 pips.

Eu quero um nível de lucro uniforme em todos os gráficos, independentemente de seus valores de Pontos ou Pip.

É hora de negociar em termos de píxeis. Agradecemos antecipadamente a alguém.
 
macpee:
Qual é o valor de um pixel no eixo Y do gráfico atual? Agradecemos antecipadamente.

O valor ? Um píxel não tem um "valor".

O que você quer dizer com isso ?

 
macpee:
Qual é o valor de um pixel no eixo Y do gráfico atual? Agradecemos antecipadamente.
Acho que não está nem mesmo no Forex
Está em photoshop ;)

Talvez você esteja enviando para outro site
 
Alain Verleyen:

O valor ? Um pixel não tem um "valor".

O que você quer dizer com isso ?

Se um pixel não tem um valor, como então é possível traçar uma linha usando os eixos x e y (claro que essas variáveis tomam valores em pixels) ou criar botões etc. que usam as coordenadas?
 
double max_price  = ChartGetDouble(0,CHART_PRICE_MAX),
       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);
 
honest_knave:
double max_price  = ChartGetDouble(0,CHART_PRICE_MAX),
       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);
Muito obrigado. Acho que esta é uma resposta melhor que tenho que tentar usar.
 
macpee:
Se um pixel não tem um valor, como então é possível traçar uma linha usando os eixos x e y (claro que essas variáveis tomam valores em pixels) ou criar botões etc. que usam as coordenadas?

Por favor, veja: https://www.mql5.com/en/docs/chart_operations/chartxytotimeprice

Documentation on MQL5: Chart Operations / ChartXYToTimePrice
Documentation on MQL5: Chart Operations / ChartXYToTimePrice
  • www.mql5.com
Chart Operations / ChartXYToTimePrice - Reference on algorithmic/automated trading language for MetaTrader 5
 
macpee:
Se um pixel não tem um valor, como então é possível traçar uma linha usando os eixos x e y (claro que estas variáveis tomam valores em pixels) ou criar botões etc. que usam as coordenadas?

Provavelmente vale a pena mencionar que existem 2 maneiras diferentes de desenhar objetos.

  • Usando tempo / preço... como OBJ_TREND e OBJ_TEXT
    • Estes objetos se moverão ao longo da tela enquanto você percorre o gráfico para a esquerda/direita/cima/baixo.
  • Usando X/Y pixels... tais como OBJ_BUTTON e OBJ_LABEL
    • Estes objetos não se moverão na tela, mesmo que o gráfico se desloque.

Às vezes é necessário misturá-los, por exemplo, você quer desenhar um objeto em relação ao tempo no eixo X, e pixels no eixo Y.

Sob estas circunstâncias, você vai querer usar ChartXYToTimePrice() ou ChartTimePriceToXY() como Marco sugeriu.

 
Uau! Acho que este aqui deve ser muito útil. Muito obrigado. Vou combiná-lo com a seguinte função reversa:

bool  ChartTimePriceToXY(
   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
   );
 
Tentar calcular TP, SL etc. usando pixels provavelmente não seria confiável. Aumentar ou diminuir o zoom afetaria os cálculos. Que tal uma tela de alta definição com mais do que o DPI padrão?

Poderia haver uma barra muito grande na extrema esquerda da tela, quando essa barra se move para fora da área visível, então quaisquer valores calculados se alterariam novamente à medida que o gráfico se ajustasse à faixa total.

E quando você tiver as janelas do terminal e/ou do testador de estratégia abertas?

Não haveria nada de uniforme ao usar pixels
 
macpee:
Uau! Acho que este aqui deve ser muito útil. Muito obrigado. Vou combiná-lo com a seguinte função reversa:

bool  ChartTimePriceToXY(
   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
   );
De acordo com essa lógica, qual é o preço em coordenadas de pixel 0,0? E por que não é 0? E por que está mudando à medida que você percorre os dados no terminal? E por que ele muda quando você muda a escala do gráfico exibido ou muda o zoom do gráfico? E por que ele é alterado nos mesmos pixels quando uma nova barra é formada? E por que é diferente nas mesmas coordenadas de pixels em seu terminal em relação ao meu terminal? Use preços onde os preços estiverem disponíveis, a menos que você planeje trocar os pixels