Errores, fallos, preguntas - página 1549

 
comp:

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

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

No se puede. Además, no se puede intentar editar el código (texto del programa) desde otro programa.
 

¡Chicos! ¿Cuál podría ser el problema? Puse una orden

m_trade.SellLimit(1,Ask+40,_Symbol,0,0,ORDER_TIME_GTC,0,")

Se está preparando. Y... al mismo ritmo que se borra. Sólo hay una línea en el EA. ¡Esta! Es decir, no es mi EA el que borra la orden. ¿Cuál es el problema?

 
Karputov Vladimir:
No se puede. Especialmente no puedes intentar editar el código mismo (el texto del programa) desde otro programa.

Puede llevar EX5 como un array en el código. Cree un archivo EX5 en una caja de arena y conéctelo como recurso.

Por qué tanta molestia, cuando sería más lógico hacer lo mismo, si se pudiera conectar el recurso MQ5 a la vez.

 
comp:

Puede llevar EX5 como un array en el código. Cree un archivo EX5 en una caja de arena y conéctelo como recurso.

Por qué tanto lío, cuando sería más lógico hacer lo mismo, si se pudiera conectar el recurso MQ5 a la vez.

Da por sentadas las normas existentes, en lugar de exigir la aplicación de sus propios deseos.
 
Karputov Vladimir:
Da por sentadas las normas existentes, en lugar de exigir la aplicación de sus propios deseos.
¡¿Dónde ves las demandas?!
 

comp:

si fuera posible conectar el recurso MQ5 de una vez.

¿y cuál es el objetivo aparte del interés académico?
 
o_O:
¿Y cuál es el objetivo, aparte del interés académico?

De hecho, los desarrolladores han hecho una prohibición de este

comp:

Puedo llevar EX5 como un array en mi código. Cree un archivo EX5 en una caja de arena y conéctelo como recurso.

Pero esa no es la cuestión, por supuesto. Me gustaría hacer un IsChanged() universal y conectarlo a través de #include.

No quiero cargar con el archivo del indicador de paralelismo EX5. No sé qué tipo de cosas se pueden poner en él. Si MQ5 es un código abierto, tiene otra actitud.

 
Si durante la ejecución del indicador nunca aparece en el registro "el indicador es demasiado lento", ¿se puede decir que el indicador no se congeló?
 
comp:
Si "el indicador es demasiado lento" nunca apareció en el registro durante la ejecución del indicador, ¿podemos confirmar que el indicador no se cuelga?

Nadie puede dar una garantía del 100% en ningún sitio :) .Si el indicador en la cola de mensajes al menos coloca algo, tiene sentido probarlo en el mercado rápido.

Añadido. Si el indicador al menos coloca algo en la cola de mensajes, entonces, además de probar en el mercado rápido, tiene sentido ejecutar varios indicadores en la terminal.

 
Karputov Vladimir:

Nadie puede dar una garantía del 100% en ningún sitio :) .Si el indicador en la cola de mensajes al menos coloca algo, tiene sentido probarlo en el mercado rápido.

Añadido. Si el indicador al menos coloca algo en la cola de mensajes, entonces, además de probar en el mercado rápido, tiene sentido ejecutar varios indicadores en la terminal.

El mercado rápido puede emularse mediante una llamada a FullOnCalculate()

#define  TIMESERIES(X)                                                  \
   ::ArraySetAsSeries(X, TRUE);                                        \
   Size = ::MathMin(Copy##X(::Symbol(), ::Period(), 0, bars, X), Size);  

int FullOnCalculate( const int Prev_Calculated = 0 )
{
  int Spread[];
  long RealVolume[];
  
  int Size = INT_MAX;
  
  #ifdef __MQL4__
    const int bars = ::Bars;
  #endif

  #ifdef __MQL5__
    const int bars = ::Bars(::Symbol(), ::Period());
  #endif

   TIMESERIES(Spread)
  TIMESERIES(RealVolume)
  
  #ifdef __MQL4__
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, Volume, Spread));
  #endif
  
  #ifdef __MQL5__
    datetime Time[];
    double Open[];
    double High[];
    double Low[];
    double Close[];
    long TickVolume[];

    TIMESERIES(Time)
    TIMESERIES(Open)
    TIMESERIES(High)
    TIMESERIES(Low)
    TIMESERIES(Close)
    TIMESERIES(TickVolume)
  
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, TickVolume, Spread));
  #endif
}

el modelo de eventos - de manera similar. La pregunta era sobre otra cosa

comp:
Si durante la ejecución de un indicador no había ningún "indicador es demasiado lento" en su registro, ¿podemos concluir que el indicador no se congeló?

El tiempo pasado en la enseñanza del ruso.