Una pregunta real - página 10

 
m100:

goldtrader ,quizás te estoy haciendo una pregunta demasiado tonta, pero aun así, ¿de dónde saca la "Ventana de datos" todos los valores?


Esa es una pregunta para los desarrolladores del terminal MT4. Creo que proviene de los topes de los indicadores y series temporales pertinentes.
 
goldtrader:
Esta es una pregunta para los desarrolladores del terminal MT4. Creo que a partir de los topes de los indicadores y series temporales correspondientes.

¿Entonces no hay una función equivalente como GetWindowsData(3 buffer,0 bar)?

A GetWindowsData se le ocurrió a mí.

 
goldtrader:

Leer msdn, WinApi, WindowHandle. No soy un experto en estas tecnologías. Ten en cuenta que para tu tarea es una p***.

Hay algo aquí https://www.mql5.com/ru/forum/120356

Para obtener esos valores de la ventana de datos - es necesario tener el cursor del ratón siempre sobre la ventana deseada

en cuanto el cursor se desplaza a algún lugar o pierde el foco, la ventana deja de refrescarse

 
m100:

¿Entonces no hay una función equivalente como GetWindowsData(3 buffer,0 bar)?

Obviamente no, porque todo lo que necesitas está ahí y no necesitas redundancia. La ventana de datos es esencialmente innecesaria.
 
OK gracias a todos, voy a tomar el código de drknn aparte
 

Tal vez valga la pena explicar algo para aclarar las cosas.

La línea MyValue=MyValue/(PeriodSkolzjaschej+1); 1 se añade a la variable PeriodSkolzjaschej porque el bucle iniciará la búsqueda desde la vela con número = PeriodSkolzjaschej y terminará con la vela cero. Por lo tanto, el número total de velas que han participado en el bucle será igual a PeriodSkolzjaschej+1. Esto significa que si PeriodSkolzjaschej=35, la MA con period=36 estará realmente involucrada. Para obtener una media móvil de 35 periodos sin cambiar nada en el código, tenemos que establecer la variable PeriodSkolzjaschej en 34.

 
drknn:

Tal vez valga la pena aclarar algunas cosas para que quede claro.

La línea MyValue=MyValue/(PeriodSkolzjaschej+1); 1 se añade a la variable PeriodSkolzjaschej porque el bucle iniciará la búsqueda desde la vela con número = PeriodSkolzjaschej, y terminará con la lectura de la vela cero. Por lo tanto, el número total de velas que han participado en el bucle será igual a PeriodSkolzjaschej+1. Esto significa que si PeriodSkolzjaschej=35, la MA con period=36 estará realmente involucrada. Para obtener una media móvil de 35 periodos sin cambiar nada en el código, tenemos que establecer la variable PeriodSkolzjaschej en 34.

gracias

¿Es applied_price una variable extra?

 
m100:

gracias

¿Es applied_price una variable extra?


No - por defecto puse iMACD() a cero, lo que significa que el indicador debe ser construido en base a los precios de cierre. Si permito que el usuario elija, entonces la solicitud del valor del indicador debe hacerse así

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}