Teoría de la aceleración del EA cuando se utiliza un indicador personalizado (función - iCustom) - página 7

 
Dennis Kirichenko:

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.

Dennis Kirichenko:

¿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?

 
-Aleks-:

¿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?

Esta es la mejor manera de comprobarlo usted mismo: abra el terminal; abra el Administrador de tareas; ejecute un script que imprima los valores de TERMINAL_MEMORY_TOTAL, TERMINAL_MEMORY_AVAILABLE y compárelos con las lecturas del Administrador de tareas.
 
En cuatro, añadiremos una eliminación automática más agresiva de dichas copias de indicadores.
 
-Aleks-:
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.

 
Renat Fatkhullin:
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?

 
Andrey Khatimlianskii:

¿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()

  {

  }

//+------------------------------------------------------------------+

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
-Aleks-:

¿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í).

 
Andrey Khatimlianskii:

¿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

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
-Aleks-:

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 :)

void OnStart()

  {

   ChartOpen("GBPUSD",   PERIOD_H1);

  }
 
-Aleks-:

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

Razón de la queja: