Teoría de la aceleración del EA cuando se utiliza un indicador personalizado (función - iCustom) - página 7
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
No. Hay una función mágica que barajará todos los intentos:
Este mecanismo está integrado en la propia lengua. Aunque la idea es interesante...
Tristemente... Seguiremos pensando.
¿Qué quieres decir con que se acabó? :-)
Significa que el indicador comenzó a devolver ceros en lugar de dígitos.
Dennis Kirichenko, Karputov Vladimir - ¡gracias por la información sobre las funciones!
Sólo que no entiendo, ¿cuál es la diferencia entre TERMINAL_MEMORY_TOTAL y TERMINAL_MEMORY_AVAILABLE?
TERMINAL_MEMORY_TOTAL es la memoria máxima disponible, y TERMINAL_MEMORY_AVAILABLE es la memoria restante, ¿verdad?
¿No entiendes la diferencia entre TERMINAL_MEMORY_TOTAL y TERMINAL_MEMORY_AVAILABLE?
TERMINAL_MEMORY_TOTAL es la memoria máxima disponible, y TERMINAL_MEMORY_AVAILABLE es la memoria restante, ¿verdad?
Lo he probado manualmente, cambiando la plantilla con muchos indicadores a casi vacía - el efecto está ahí (pero la caché permanece - creo que no es crítico). Pero cómo hacer la apertura y el cierre a través de una secuencia de comandos de la plantilla - no sé. He entendido que la duda es que mientras se ejecute el script, la memoria no se borrará... Andrei, por favor, ayuda con el experimento.
¿Qué es lo que no funciona? ¿Qué es lo que ayuda? ¿Dónde está el intento? ¿Dónde está el código?
ChartOpen para abrir el gráfico. Luego en él ChartApplyTemplate con el nombre de una plantilla prediseñada (será la misma todo el tiempo, no hay necesidad de escribirla). Entonces ChartClose.
Medir la memoria a través de la función propuesta. O puede descargar mi indicador gratuito iMemory, creado especialmente para este fin.
En cuatro añadiremos un borrado automático más agresivo de dichas copias de indicadores.
¡Hurra! ¡Qué bien cuando los que están en el poder te escuchan!
Y las "copias indicadoras", ¿son las causadas por las primeras cuando hay escasez de memoria para las segundas, o algo más?
¿Qué es lo que no funciona? ¿Qué es lo que ayuda? ¿Dónde está el intento? ¿Dónde está el código?
ChartOpen para abrir el gráfico. Luego en él ChartApplyTemplate con el nombre de una plantilla prediseñada (será la misma todo el tiempo, no hay necesidad de escribirla). Entonces ChartClose.
Medir la memoria a través de la función propuesta. O puede descargar mi indicador gratuito iMemory, creado especialmente para este fin.
¿Qué clase de programador soy? Aquí empecé a escribir el script - el primer comando para abrir el gráfico no da ningún resultado. ¿Qué pasa?
//+------------------------------------------------------------------+
//| Scripts.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Input1=0;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
long ChartOpen(string GBPUSD, ENUM_TIMEFRAMES PERIOD_H1);
void OnStart()
{
}
//+------------------------------------------------------------------+
¿Qué clase de programador soy? .... comenzó a escribir el script - el primer comando para abrir el gráfico no da resultados. ¿Qué pasa?
¿Así que querías decir "hazlo por mí", no "ayúdame"? Eso es lo que tú dices.
No es así - casi todo: la función ChartOpen debe ser llamada desde el cuerpo de la función OnStart. El primer parámetro - cadena, debe estar entre comillas. No es necesario especificar el tipo de datos (cadena y ENUM_TIMEFRAMES) al llamar).
Empieza por buscar ejemplos de uso de funciones o documentación (también hay ejemplos allí).
¿Así que querías decir "hazlo por mí", no "ayúdame"? Eso es lo que tú dices.
No es así - casi todo: la función ChartOpen debe ser llamada desde el cuerpo de la función OnStart. El primer parámetro - cadena, debe estar entre comillas. No es necesario especificar el tipo de datos (cadena y ENUM_TIMEFRAMES) al llamar).
Empieza por buscar ejemplos de uso de la función o documentación (también hay ejemplos).
Esa es la cuestión, no hay ningún ejemplo adecuado en la ayuda.
De acuerdo con vuestros comentarios, lo he rehecho:
//+------------------------------------------------------------------+
//| Scripts.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Input1=0;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
long ChartOpen("GBPUSD", PERIOD_H1);
}
//+------------------------------------------------------------------+
Me da error al clmear, ¿qué pasa?
'Scripts.mq4' Scripts.mq4 1 1
'ChartOpen' - la función sólo puede declararse en el ámbito global Scripts.mq4 21 10
'GBPUSD' - declaración sin tipo Scripts.mq4 21 20
'GBPUSD' - se espera una coma Scripts.mq4 21 20
'PERIOD_H1' - declaración sin tipo Scripts.mq4 21 32
4 error(es), 0 advertencia(s) 5 1
Esa es la cuestión, no hay ningún ejemplo adecuado en la ayuda.
Lo he rehecho según tus comentarios:
//+------------------------------------------------------------------+
//| Scripts.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Input1=0;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
long ChartOpen("GBPUSD", PERIOD_H1);
}
//+------------------------------------------------------------------+
Me da error al clmear, ¿qué pasa?
'Scripts.mq4' Scripts.mq4 1 1
'ChartOpen' - la función sólo puede declararse en el ámbito global Scripts.mq4 21 10
'GBPUSD' - declaración sin tipo Scripts.mq4 21 20
'GBPUSD' - se espera una coma Scripts.mq4 21 20
'PERIOD_H1' - declaración sin tipo Scripts.mq4 21 32
4 error(es), 0 advertencia(s) 5 1
Se necesita demasiado tiempo para explicar lo que está mal :)
Esa es la cuestión: no hay ningún ejemplo adecuado en el servicio de asistencia.
Además de la línea de ayuda, hay una codobase y un foro. Busca trabajos.
ps: ugh, la inserción del enlace en el post está rota =(
https://www.mql5.com/ru/search#!keyword=ChartOpen&page=2