![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Todo depende de la lógica del indicador personalizado. En principio, puede recalcular sus valores una vez al día, saltándose todos los demás ticks. Según la voluntad del autor, por así decirlo.
Básicamente, algunas personas tratan de utilizar este enfoque monstruoso: crear una copia del indicador a través de iCustom, copiar los datos necesarios, eliminar la copia del indicador. El procedimiento se repite según sea necesario.
También existe la función OnTimer(). No he trabajado con ella, pero quizás puedas adaptarla a tu tarea.
Gracias. Me lo imaginaba. El OnTimer no es adecuado.
Hay una situación en la que el indicador está en M5 pero se llama una vez por hora, por ejemplo. Resulta que el indicador se calculará en el Asesor Experto en vacío cada 5 minutos por el hecho de llamarlo una vez por hora. Por eso me pregunto si existe la posibilidad de pausar el recálculo del indicador.
Hay una situación en la que el indicador está en M5, pero se llama una vez por hora, por ejemplo. Resulta que el indicador se calculará en el Asesor Experto ociosamente cada 5 minutos por el hecho de llamarlo una vez por hora.
¿No es posible reescribir el indicador para que calcule por horas?
el comercio va en M5. No se sabe cuándo se convocará el indicador. Puede ser una vez cada dos horas, o puede ser tres veces en una hora. El indicador se utiliza para confirmar la decisión de operar.
Hola, podría decirme por favor,
1)¿Qué hacer con errores comoTRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZENy en qué caso se bloquea la solicitud o se congela la posición/orden?
2)También me pregunto qué hacer conTRADE_RETCODE_INVALID_FILLy en qué caso se produce.
Hola, ¿podría decirme por favor,
1)¿Qué hacer con errores comoTRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZENy en qué caso se bloquea la solicitud o se congela la posición/orden?
2)También me pregunto qué hacer con TRADE_RETCODE_INVALID_FILLy en qué caso se produce.
1) Comprueba la búsqueda en el foro. Se habló de ello hace un año.
2) Busque en la referencia ENUM_ORDER_TYPE_FILLING . Probablemente una falta de coincidencia en la solicitud de negociación para el "tipo de orden de ejecución" especificado con el modo de ejecución y dará lugar al código de retorno especificado.
Por ejemplo ORDER_FILLING_FOK y SYMBOL_TRADE_EXECUTION_MARKET.
Tengo la sospecha de que si el indicador se activa a través de iCustom, se calcula en cada tick. Y no depende de las llamadas a él a través del CopyBuffer. ¿Es correcto?
Si es correcto, ¿es posible desactivar el cálculo del indicador y activarlo sólo antes de llamar al CopyBuffer?
Si te he entendido bien, entonces puedes intentar limitar los cálculos en los siguientes ticks según el ejemplo de la ayuda de iFractals (ver las condiciones múltiples en OnCalculate).
Tal vez, también se puede marcar en OnCalculate la ejecución inicial de los cálculos del indicador para todas las barras necesarias y comprobar la hora del servidor del terminal, y después de que suceda, para restablecer la bandera a falso, permitiendo así el recálculo, y establecerlo a verdadero de nuevo... y así sucesivamente.
O incluso así: escribir una función externa con cálculos, llamarla en OnInit, donde se ejecutará una vez en el primer inicio del indicador (así como cuando se cambien los TFs y etc., que se produce a iniciativa del usuario), y luego llamar a la misma función en OnCalculate de la segunda manera (en el momento especificado en el servidor y marcando).
Pero el primer método es bueno, no sólo no carga el procesador con recálculos completos (a menudo conduciendo a ningún resultado nuevo) en cada tick, sino que ni siquiera hará recálculos completos en un intervalo de tiempo dado, y sólo calculará las barras más nuevas (si en cada tick, entonces una nueva, y si una vez t, entonces varias acumuladas durante este tiempo)... Aunque esta versión es mejor para comprobar personalmente, puedo estar equivocado... Además, todo depende de la finalidad específica del indicador. Si depende de una gran cantidad o incluso de todo el historial del mercado, entonces no puede librarse de los recálculos de todo el historial.
No entendí el humor del chiste (escribir un indicador, aunque no hace ninguna diferencia):
Compila sin errores ni advertencias.
Compilado con1 error(es), 0 advertencia(s): 'elementos' - valor de índice no válido.
¿Qué puede haber más allá del obvio sentido común aquí?
¿Qué puede haber más allá del obvio sentido común aquí?
el número de elementos de la matriz se especifica mediante una constante
Si el número de elementos no se conoce de antemano, utilice ArrayResize para establecer el tamaño utilizando variables.
Esto es lo básico de c++.
Así que, o bien