Errores, fallos, preguntas - página 1545

 
Alexey Volchanskiy:
Youtube acepta todos los archivos en avi siempre que no haya anuncios violentos, ni porno, y el tamaño sea < 15 mb si no estás en modo avanzado. Además, no debe haber anuncios, ni siquiera en tu firma.
Te envié un correo electrónico por MP. No me funciona.
 
Karputov Vladimir:

Este es un foro técnico y cada comentario debe ser confirmado:

  • información del terminal y del sistema operativo (las tres primeras líneas de la pestaña de registro después de reiniciar el terminal)
  • código
  • descripción detallada de lo que hiciste y lo que obtuviste.

Una descripción bastante detallada de lo que he observado. Los desarrolladores no me deben nada y yo no les debo nada. Si están interesados, hablaremos con ellos en el Service Desk.

El código para el indicador de vacío es obvio.

 
comp:

He grabado un vídeo de cómo se actualiza el indicador (en modo estándar - no de depuración), pero no se dibujan nuevas barras. En cuanto se retira el indicador del gráfico, aparecen inmediatamente nuevas barras.

Los hostings no aceptan el archivo de vídeo. Si es necesario, puedo enviarlo a servicedesk, tal cual.

Agrégalo en un archivo y envíalo. Se admiten los archivos Zip.
 
Por favor, díganme cómo activar/desactivar la "Escala de tiempo precisa" en MetaTrader 5 mediante programación. No lo encuentro.
A través de CHART_SHOW_DATE_SCALE - esto no es, según tengo entendido.

Active manualmente la hora de interés a través de la siguiente ruta:

Terminal -> Servicio -> Configuración -> Gráficos -> Línea de tiempo precisa


A continuación adjunto el código de prueba. Si la opción "Escala de tiempo precisa" está activada manualmente en el terminal de negociación, este indicador de prueba dibuja segmentos de líneas verticales con puntos de enlace entre dos barras. Si no está activado, no está entre las barras.

La siguiente captura de pantalla muestra un segmento de línea vertical creado por el código de prueba entre las barras cuando la "Escala de tiempo precisa" está activada



Te diré la segunda cosa que me interesa de inmediato:

Si ejecuto este código en el probador, las líneas no se dibujan con puntos de anclaje entre las barras. No se crean como en la captura de pantalla de arriba, se crean como en la captura de pantalla de abajo.

MetaTrader 5 Versión: 5.00 build 1295

No sé cómo hacer una pregunta más precisa aquí, ya que no tengo respuesta a la primera.



P./S.:

He hecho algunas aclaraciones:

  • se han añadido capturas de pantalla;
  • ha sustituido el código de prueba, eliminando la variable que no se utiliza aquí y mostrando una ventana independiente;
  • aclaraciones que hemos hecho al texto en letra azul oscura.
Archivos adjuntos:
 

¿Cómo puedo hacer que la terminal llame a OnCalculate en MT5? ChartRedraw no ayuda. La variante DLL no es adecuada.

En otras palabras, necesito crear un evento de cálculo: https://www.mql5.com/ru/docs/runtime/event_fire#calculate

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Программы MQL5 / События клиентского терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

A partir de los resultados de la búsqueda he llegado a la conclusión de que no parece haber ninguna función en la Ayuda de MQL5 que se pueda utilizar para activar/desactivar mediante programación la "Escala de tiempo precisa" en MetaTrader 5.

Por alguna razón, tenía la impresión de que había algunos cambios en este sentido en los últimos tiempos. Aunque, por supuesto, debo estar equivocado.

Si es así, reitero mi primera pregunta anterior:

¿Habrá una función para activar/desactivar mediante programación la "Escala de tiempo precisa"?


Y en cualquiera de los dos casos (se introducirá o no): ¿cómo se hace este interruptor de encendido/apagado en el probador?

 
comp:

¿Cómo puedo hacer que la terminal llame a OnCalculate en MT5? ChartRedraw no ayuda. La versión DLL no funciona.

Si lo encuentras, por favor, dímelo también).

Por el momento, por lo que sé, la respuesta es "de ninguna manera".

 
Комбинатор:

Si lo encuentras, házmelo saber también).

Por el momento, por lo que sé, la respuesta es "de ninguna manera".

Si soy asesor, es así

#define  PERIOD_NULL -1

void CallOnCalculates( void )
{
  const string Name = __FUNCTION__;

  if (GlobalVariableCheck(Name))
  {
    const int Value = (int)GlobalVariableGet(Name);

    if (Value == PERIOD_NULL)
    {
      GlobalVariableDel(Name);

      ExpertRemove();
    }
    else if (ChartSetSymbolPeriod(0, Symbol(), (ENUM_TIMEFRAMES)Value))
      GlobalVariableSet(Name, PERIOD_NULL);
  }
  else
  {
    const ENUM_TIMEFRAMES period = Period();

    if (ChartSetSymbolPeriod(0, Symbol(), (period == PERIOD_MN1) ? PERIOD_W1 : PERIOD_MN1))
    {
      GlobalVariableTemp(Name);

      GlobalVariableSet(Name, period);
    }
  }

  return;
}

void OnInit( void )
{
  CallOnCalculates();

  return;
}

Pero lo necesito para otra cosa y no me conviene.

 
comp:

Si por el Asesor Experto, entonces así

Si el script, entonces podemos (la implementación es completamente diferente - sin cambiar el TF)llamar OnCalculate para un indicador específico en el gráfico o para todos ellos a la vez.

Pero lo necesito para otra cosa y esta variante no es adecuada.

Pero esta variante (script) tampoco es adecuada, si el indicador debe hacer que el terminal llame a su propio OnCalculate (MT5).

 
Con un indicador, necesito un indicador.