Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 77

 
John Smith:


En el código, los valores se toman como sigue:

Valor[1] = actual/actual+6

Valor[2] = corriente+1/corriente+7

Valor[3] = corriente+2/corriente+8


La división es un trozo de fórmula de impulso con una ventana de 6 barras.

¿Hay algún error en esta entrada?

¿Dónde encontraste la ventana?

¿Y a qué crees que será igual tu expresión Valor[1] = corriente/corriente+6, si corriente=1, creo que a 7?

 

Hola a todos.

Necesito ayuda. Estoy escribiendo un EA. Utiliza un panel de operaciones basado en CAppDialog. El problema es que cuando empiezo a cambiar de marco temporal el panel no es siempre, pero a menudo se divide. Y las tripas del viejo panel permanecen y se dibuja uno nuevo pero no correctamente. Sólo me queda borrar el gráfico y empezar uno nuevo ya que es imposible seguir trabajando con este gráfico y el panel.

Adjunto el EA para su revisión y análisis.

Gracias por toda su ayuda.

Archivos adjuntos:
6f5djt.mq4  18 kb
 
Rustem71:

Hola a todos.

Necesito ayuda. Estoy escribiendo un EA. Utiliza un panel de operaciones basado en CAppDialog. El problema es que cuando empiezo a cambiar de marco temporal el panel no es siempre, pero a menudo se divide. Y las tripas del viejo panel permanecen y se dibuja uno nuevo pero no correctamente. Sólo me queda borrar el gráfico y empezar uno nuevo ya que es imposible seguir trabajando con este gráfico y el panel.

Adjunto el EA para su revisión y análisis.

Gracias por toda su ayuda.


Cuando se cambia el TF hay que reiniciar el panel...

y cavar en las clases, el panel no se borra completamente durante la desinicialización

 
Taras Slobodyanik:


Al cambiar de TF, el panel debe reiniciarse...

y profundizar en las clases, el panel no se borra completamente cuando se desinicializa

Todavía no me he dado cuenta. Tengo que buscar en un montón de clases. Pero la pregunta es por qué el primer interruptor va bien y el siguiente mata el panel. Ya he eliminado todas las cosas innecesarias de él. Dejé sólo el marco por así decirlo. Pero el problema persiste. Estoy trabajando en ello ahora. Si tienes alguna idea, me encantaría escucharla.

Gracias.


Ahora he descubierto que la primera vez el panel se borra y se vuelve a crear por el init, y la segunda vez el panel se queda colgado.

¿Tal vez el iniit no debería cargarse la segunda vez? O borrarlo de alguna otra manera.

Archivos adjuntos:
mrdv0d.mq4  7 kb
 

Acabo de empezar a entenderlo, necesito ayuda de los profesionales.

Quiero utilizar el indicador estocástico incorporado para recibir una notificación de una señal (cruce de estocástico lento y rápido fuera de los límites 80/20)

He entendido cómo obtener datos con iStochastic: escribo mi propio indicador, llamo a iStochastic por barras, lo analizo y envío la alerta.

No entiendo qué hacer en esta situación: si utilizo un marco temporal grande, por ejemplo 4 horas, entonces aparecerá una nueva barra al final del marco temporal,

y se llama al indicador para recalcular. Es decir, el tiempo de espera es de 4 horas.

Pero quiero analizar la información constantemente, es decir, tan pronto como el precio cambia (bid ask) recalcular los estocásticos y

si los criterios cumplen la condición que quiero que se me notifique. No quiero esperar al final del marco temporal y a la aparición de una nueva vela.

Por favor, aconséjeme dónde buscar y si es posible ponerlo en práctica.

Tal vez no entienda del todo la esencia de los procesos y esté escarbando en el lugar equivocado, soy un novato).

 
Rustem71:

Todavía no me he dado cuenta. Hay muchas clases en las que indagar. Pero la pregunta es por qué el primer interruptor va bien y el siguiente mata el panel. Ya he eliminado todas las cosas innecesarias de él. Dejé sólo el marco por así decirlo. Pero el problema persiste. Estoy trabajando en ello ahora. Si tienes alguna idea, me encantaría escucharla.

Gracias.


Ahora he descubierto que la primera vez el panel se borra y se vuelve a crear por el init, y la segunda vez el panel se queda colgado.

¿Tal vez el iniit no debería cargarse la segunda vez? O borrarlo de alguna otra manera.


¡Todo listo! GraciasTaras Slobodyanik me dio una idea.

Durante el init, prohibido crear un panel si hubo un cambio de TF. Y en deinit prohibido borrar el panel si se produce el cambio de TF.

 
VladPro77:

Acabo de empezar a entenderlo, necesito ayuda de los profesionales.

Quiero utilizar el indicador estocástico incorporado para recibir una notificación de una señal (cruce de estocástico lento y rápido fuera de los límites 80/20)

He entendido cómo obtener datos con iStochastic: escribo mi propio indicador, llamo a iStochastic por barras, lo analizo y envío la alerta.

No entiendo qué hacer en esta situación: si utilizo un marco temporal grande, por ejemplo 4 horas, entonces aparecerá una nueva barra al final del marco temporal,

y se llama al indicador para recalcular. Es decir, el tiempo de espera es de 4 horas.

Pero quiero analizar la información constantemente, es decir, tan pronto como el precio cambia (bid ask) recalcular los estocásticos y

si los criterios cumplen la condición que quiero que se me notifique. No quiero esperar al final del marco temporal y a la aparición de una nueva vela.

Por favor, aconséjeme dónde buscar y si es posible ponerlo en práctica.

Tal vez no entienda del todo la esencia de los procesos y esté escarbando en el lugar equivocado, soy un novato).


// Инициализируем переменную для проверки
datetime time_svecha;        //время предыдущей свечи 
...

// В начале исполнительного кода проверяем на приход новой свечи:
if(iTime(NULL,PERIOD_CURRENT,0) == time_svecha) return;

...

// В конце исполнительного кода присваиваем время новой свечи 
time_svecha = iTime(NULL,PERIOD_CURRENT,0);
 
Me pueden decir qué hay que hacer en el panel de operaciones para que funcione en el probador específicamente en el modo de visualización. ¿O es muy complicado?
 
Rustem71:
Me pueden decir qué hay que hacer en el panel de operaciones para que funcione en el probador específicamente en el modo de visualización. ¿O es muy complicado?


Si para un indicador, debería funcionar
Si es para Asesores Expertos, los eventos no ocurren en el Probador de Estrategias (para Asesores Expertos) y el temporizador no funciona...

Si funciona en el probador, entonces el panel se dibuja de manera diferente - pedir a los objetos (han cambiado / movido) y volver a dibujar como sea necesario, reaccionar a los clics ...
Además, emule el temporizador, si es necesario.

 
Rustem71:


Gracias, pero no es lo mismo)

Describo la siguiente situación.

1. El marco temporal terminó, se formó una vela. El indicador se recalcula, se dibuja.

2. Comienza un nuevo marco temporal. (No hay ningunavela nueva hasta su final). La oferta y la demanda cambian durante este periodo de tiempo.

Quiero reaccionar a estos cambios de precios (durante el marco de tiempo actual, la vela no se forma todavía).

Ni siquiera se trata de dibujar los gráficos, sino de fijar el momento por una condición. Quiero recibir una alerta tan pronto como los estocásticos hayan cruzado (nos quedan tres horas hasta el final del marco temporal y la condición se cumple ahora).

Y el gráfico se puede dibujar cuando el marco temporal termina.

Razón de la queja: