Errores, fallos, preguntas - página 1548

 
comp:
Entonces no se puede interrumpir el cálculo por evento.

De acuerdo, entonces mira hacia el otro lado.

Se puede paralelizar artificialmente - poniendo un segundo indicador en el gráfico.

Y accediendo a GlobalVariableSetOnCondition desde ambos.

 
o_O:

De acuerdo, entonces mira hacia el otro lado.

Se puede paralelizar artificialmente - poniendo el segundo indicador en el gráfico.

Y accediendo al GlobalVariableSetOnCondition desde ambos.

No lo entiendo.
 
comp:
No lo entiendo.

El segundo indicador es un señalizador que envía eventos de ChartEvent al indicador principal como uno personalizado + cambia el estado de la variable global por ejemplo por el tiempo en ms.

En el indicador principal capturas este evento e inicias el cálculo, + miras la variable global para asegurarte de que tiene el mismo tiempo ms que con el que iniciaste el cálculo.

Si la hora que aparece en él ha cambiado, significa que ha llegado un nuevo evento, y se rompe el cálculo actual.

así.

---

O simplemente puedes cambiar el ms en el gp en cada evento del gráfico, y sólo controlarlo en el indicador principal

en general - el segundo indicador paralelizará

 

¡Hola! Un poco de ayuda para un novato. Parece que no consigo controlar el evento OnBookEvent.

Si llamas a este evento desde onTick() , todo funciona. Si onTick() está vacío, entonces no funciona nada. No entiendo nada, OnBookEvent se llama cuando hay un cambio en el vaso, es decir, es un manejador de eventos independiente, esencialmente lo mismo que se llama a onTick() cuando se produce un tick. ¿Por qué no funciona?

Así es como funciona. Pues bien, como funciona, imprime "Cualquier cosa" cuando se produce un tick, no cuando hay un cambio en el vaso. Por ejemplo, el volumen de órdenes ha cambiado, a un determinado precio, el manejador OnBookEvent para el cambio en la copa debería ser llamado , pero no sucede. Si onTick() se deja vacío, ni siquiera imprimirá nada.

int OnInit()

{

si ! MarketBookAdd("RTS-6.16" )

{

Print("Error ",GetLastError() );

}

si no

{

Print("Hecho");

}

void OnDeinit(const int reason)

{

MarketBookRelease("RTS-6.16");

}

void OnTick()

{

OnBookEvent(_Símbolo);

}

void OnBookEvent(const string &symbol)

{

MqlBookInfo libro[];

MarketBookGet("RTS-6.16", book);

if(ArraySize(book) == 0)

{

printf("Fallo al cargar el precio del libro de mercado. Razón: " + (cadena)GetLastError());

volver;

}

Print("Cualquier cosa");

}

 
¡¡¡¡Acabo de probarlo en otros instrumentos y todo funciona!!!! ¿Cómo puede ser esto? ¡¡¡Sólo no funciona en rts!!!
 
el problema está resuelto, ¡funciona solo!
 

Error en la ayuda de https://www.mql5.com/ru/docs/constants/structures/mqltraderequest

SL & TP Modification

Una orden de negociación para modificar los niveles de StopLoss y/o TakeProfit. Se requieren 4 campos:

-acción

-símbolo

-sl

-tp

-Posición

Se ha añadido laposición del campo pero el número de campos a rellenar sigue siendo 4.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Error en la ayuda https://www.mql5.com/ru/docs/constants/structures/mqltraderequest

Se ha añadido laposición del campo pero el número de campos a rellenar sigue siendo 4.
Alexey, no tiene sentido escribir aquí, tienes que enviar una solicitud al servicedesk. Al mismo tiempo habrá + a la calificación )
 
Alexey Volchanskiy:
Alexey, no tiene sentido escribir aquí, tienes que enviar una solicitud a Servisdek. Al mismo tiempo será + a la calificación )
Soy demasiado viejo para perseguir la calificación: )))) No lo van a arreglar y no lo necesitan.
 
o_O:

al segundo indicador le pones un señalizador que te envía al indicador principal como un evento personalizado de ChartEvent + cambiar el estado de la variable global por ejemplo por el tiempo en ms

En el indicador principal capturas este evento e inicias el cálculo, + miras la variable global para asegurarte de que tiene el mismo tiempo ms que con el que iniciaste el cálculo.

Si la hora que aparece en él ha cambiado, significa que ha llegado un nuevo evento, y se rompe el cálculo actual.

así.

---

O puede utilizar el señalizador para cambiar ms en gp en cada evento del gráfico, y sólo controlarlo en el indicador principal

en general - el segundo indicador paralelizará

Entendido, gracias. Lamentablemente, esta solución sólo funcionará en un Asesor Experto (en el que el cálculo debe ser interrumpido). No funcionará en el indicador, porque la llamada del indicador en el gráfico no crea una cola de gráficos paralela, va a la misma cola de eventos, ni siquiera para un gráfico específico, sino para TODOS los gráficos de este símbolo.

¿Cómo puedo poner el indicador como recurso MQ5 en lugar de recurso EX5?