Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 631

 
Artyom Trishkin:
Me cuesta mirar el código en la tableta, pero la respuesta es: escribir el valor de X en el buffer.

Grabado. Funciona. ¿Cómo obtener cinco lugares decimales en el indicador en los cálculos, como en el terminal del corredor de cinco dígitos de cotización precios de compra y venta de cinco dígitos a ser y en la visualización de su indicador? Se adjunta una captura de pantalla.

He conseguido cinco caracteres en los comentarios de la izquierda con caracteres blancos en la pantalla mediante el código: (pero en el indicador cuando relleno los buffers, sigue mostrando cuatro dígitos NormalizeDouble (ExtMapBuffer2[0],Digits) - no ayuda.

  Comment(
              "tickCounter = ", tickCounter, "\n",
              "secondCounter, time_s  = ",    NormalizeDouble(time_s,2) , "\n",
            
              "ExtMapBuffer1[0] = ", DoubleToStr(ExtMapBuffer1[0],Digits) , "\n",
              "ExtMapBuffer2[0] = ", DoubleToStr(ExtMapBuffer2[0],Digits) , "\n",
              "ExtMapBuffer1[1] = ", DoubleToStr(ExtMapBuffer1[1],Digits) , "\n",
              "ExtMapBuffer2[1] = ", DoubleToStr(ExtMapBuffer2[1],Digits) , "\n",
              "ExtMapBuffer1[2] = ", DoubleToStr(ExtMapBuffer1[2],Digits) , "\n",
              "ExtMapBuffer2[2] = ", DoubleToStr(ExtMapBuffer2[2],Digits) , "\n",


 
Roman Shiredchenko:

Grabado. Funciona. ¿Cómo obtener cinco lugares decimales en el indicador en los cálculos, como en el terminal del corredor de cinco dígitos de cotización precios de compra y venta de cinco dígitos a ser y en la visualización de su indicador? Se adjunta una captura de pantalla.

He intentado mostrar las comillas de cinco dígitos en el comentario de la izquierda con símbolos blancos en la pantalla. (En el indicador cuando lleno los buffers, sigue mostrando cuatro dígitos NormalizeDouble (ExtMapBuffer2[0],Digits) - no ayuda.


IndicatorSetInteger(INDICATOR_DIGITS,_Digits);

o

IndicadorDígitos(_Dígitos);

 

Y aquí, para la velocidad media indicada específicamente llenando la matriz del indicador ExtMapBuffer_Ave_Speed[0]= NormalizeDouble(X,1);

Pero sigue dibujando ceros con 4 decimales... ¿Cómo puedo hacer que muestre cinco decimales?

 
Alexey Viktorov:

IndicatorSetInteger(INDICATOR_DIGITS, _Digits);

o

IndicadorDígitos(_Dígitos);

Senc. ¡Todo está funcionando!
 
Roman Shiredchenko:
Cenk. ¡Todo está funcionando!
Lo siento, me olvidé de ponerlo en OnInit()
 
Alexey Viktorov:
Lo siento, me olvidé de ponerlo en OnInit()

Resulta que aquí tenemos una cola de "respuesta" ;)

No tenía tiempo...

 
Alexey Viktorov. Artyom Trishkin
Lo siento, olvidé escribirlo en OnInit()

Eso es comprensible. Senc. Tal vez puedas darme una pista...

El MA se ha aplicado al indicador de tick desde el navegador del terminal. ¿Cómo puedo obtener sus valores en el EA?

Si puedes meter la nariz donde leer sobre ello.

Creo recordar... ¿a través de iMAOnArray?


 
Roman Shiredchenko:

Eso es comprensible. Senc. Puede que haya otros consejos...

La MA se aplica desde el navegador del terminal al indicador de ticks. ¿Cómo obtener sus valores en el Asesor Experto?

Es posible que se asome la nariz para leer sobre el tema.

Creo recordar... ¿a través de iMAOnArray?


iMAOnArray debe introducirse en el indicador de ticks y salir en él en el buffer adicional.

O bien, en un nuevo indicador, primero debe leer el contenido de los búferes del indicador de ticks en el búfer de cálculo, y luego poner iMAOnArray en él.

 
Artyom Trishkin:

1. iMAOnArray debe ser escrito en el indicador de ticks y la salida en él en un buffer adicional.

O bien, en un nuevo indicador, primero debe leer el contenido de las memorias intermedias del indicador de ticks en la memoria intermedia de cálculo, y luego aplicar iMAOnArray a la misma.

Gracias. Artyom. Así que 1.
 

No puedo lograr la igualdad de los valores de MA (color Oro) del período 1 (en el gráfico) de Bid (verde - no es visible debido a la línea de MA) y sus mismos valores de MA (1) calculados a través de iMAonArray() del buffer del indicador de precio Bid.

      double MA_0=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,0); 
      double MA_1=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,1); 
      double MA_2=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,2); 
   
       


     if (time_s!=0) 
       Comment(
              "tickCounter = ", tickCounter, "\n",
              "secondCounter, time_s  = ",    NormalizeDouble(time_s,2) ,   "\n",
            
           ...
              "ExtMapBuffer_MA[0] = ", DoubleToStr(MA_0,Digits),"\n",
              "ExtMapBuffer_MA[1] = ", DoubleToStr(MA_1,Digits),"\n",
              "ExtMapBuffer_MA[2] = ", DoubleToStr(MA_2,Digits),"\n",

flechas verdes - valores iguales - como debe ser. Flechas rojas: valores diferentes. Debería ser el mismo que el de los verdes.


las tres flechas superiores deberían tener números iguales, pero son diferentes... ¿Puede decirme la razón de la discrepancia...


Razón de la queja: