Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1911

 
rriaz #:
Hay más puntos. ¡Papá incluso dice que no sabe la contraseña! ( Mañana estaré en su casa, puedo hacer capturas de pantalla o algo así. El software sólo se instala en el teléfono

Lo siento, es más probable que sean ladrones y que tengas que acudir a las fuerzas del orden.

 
Alexey Viktorov #:

¿Podría ser este el problema? Prueba a borrar el recurso periódicamente

pero entonces tendrías que crearlo dinámicamente.

Es decir, eliminar primero el recurso y luego volver a crearlo. El único problema es que no sé cómo funcionaría. O si funcionará en absoluto. Tendré que probar...

No funcionó. ResourceCreate sólo crea un nuevo archivo para las imágenes, por lo que no ve el indicador. Entiendo que sólo necesita borrar la memoria periódicamente. Intentaré algo con ZeroMemory

 

Hola a todos. El guión para establecer el patrón correcto en todos los gráficos resultó ser la siguiente historia.

He abierto 8 gráficos, todos diferentes en n1 con una plantilla de scalping abajo.

8 GRÁFICOS ABIERTOS CON PATRÓN DE SCALPING

He añadido un script al gráfico de la izquierda(AUD/USD) para traducir todos los gráficos a d1 y una plantilla de medio plazo, el código de abajo.

string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl";//ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0)
   {
    if(ChartPeriod(prevChart) != PERIOD_D1)// ЕСЛИ ПЕРИОД ГРАФИКА НЕ Д1
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_D1); // УСТАНАВЛИВАЕМ ПЕРИОД ГРАФИКА КАК Д1
      ChartApplyTemplate(prevChart, tplName); // И УСТАНАВЛИВАЕМ НА ГРАФИК ШАБЛОН СРЕДНЕСРОКА
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/


He cambiado la plantilla intermedia de todos los gráficos, excepto el de la izquierda, al que he añadido el script.

Luego pongo el script en el gráfico de la izquierda para traducir el gráfico en n1 y la plantilla de scalping. El código del script es el siguiente

+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string tplName = "FIBOmAGIC СКАЛЬПИНГ.tpl";
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0 && IsStopped())
   {
    if(ChartPeriod(prevChart) != PERIOD_H1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_H1);
      ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/

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

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


Parece que todo está bien. El patrón de scalping se aplica a todos los gráficos. Pero hay un problema, si adjunto el mismo script al gráfico de la izquierda dos veces, 5 de los 8 gráficos se convierten en una herramienta aud/usd.

DESPUÉS DE DOS USOS SUCESIVOS DE LA MISMA ESCRITURA, PARTE DE LOS GRÁFICOS SE CONVIERTEN EN LA MISMA HERRAMIENTA

¿Por qué ocurre y cómo evitarlo si no es con 2 pases sucesivos del mismo guión?

 
DanilaMactep #:

Hola a todos. El guión para establecer el patrón correcto en todos los gráficos resultó ser la siguiente historia.

He abierto 8 gráficos, todos diferentes en n1 con una plantilla de scalping abajo.

He añadido un script al gráfico de la izquierda(AUD/USD) para traducir todos los gráficos a d1 y una plantilla de medio plazo, el código de abajo.


He cambiado la plantilla intermedia de todos los gráficos, excepto el de la izquierda, al que he añadido el script.

Luego pongo el script en el gráfico de la izquierda para traducir el gráfico en n1 y la plantilla de scalping. El código del script es el siguiente


Parece que todo está bien. El patrón de scalping se aplica a todos los gráficos. Pero hay un problema, si adjunto el mismo script al gráfico de la izquierda dos veces, 5 de los 8 gráficos se convierten en una herramienta aud/usd.

¿Por qué ocurre y cómo evitarlo si no es con 2 pases sucesivos del mismo guión?

Pruébalo así

void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0 && IsStopped())
   {
    //if(ChartPeriod(prevChart) != PERIOD_H1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_H1);// или PERIOD_D1
      ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/
 
Alexey Viktorov #:

Prueba esto

esta opción no hace nada en absoluto - suelto el script en el gráfico y no pasa nada.
 
DanilaMactep #:
Esta opción no hace nada en absoluto - suelto el script en el gráfico y no pasa nada.

¿La declaración de la variable

string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl";//ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА

¿fue borrado por casualidad?

 
Alexey Viktorov #:

¿La declaración de la variable

¿fue borrado por casualidad?

Si lo hiciera, el compilador gritaría variable no identificada. Pero ahora lo intentaré de nuevo...
 
Alexey Viktorov #:

¿La declaración de la variable

¿fue borrado por casualidad?

Lo he comprobado dos veces. La variable no se ha borrado. Compilo y el script no hace nada.
 
DanilaMactep #:
Esta opción no hace nada en absoluto - suelto el script en el gráfico y no pasa nada.

¿no te funciona?

//+------------------------------------------------------------------+
//|                                           ChartApplyTemplate.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//----
sinput string Template           = "ADX";          // Имя шаблона(without '.tpl')
sinput ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Период
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   long currChart, prevChart = ChartFirst();
   int i = 0, limit = 100;
   bool errTemplate;
   while(i < limit)
     {
      currChart = ChartNext(prevChart);
      if(TimeFrame != PERIOD_CURRENT)
        {
         ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), TimeFrame);
        }
      errTemplate = ChartApplyTemplate(prevChart, Template + ".tpl");
      if(!errTemplate)
        {
         Print("Error ", ChartSymbol(prevChart), "-> ", GetLastError());
        }
      if(currChart < 0)
         break;
      Print(i, ChartSymbol(currChart), " ID =", currChart);
      prevChart = currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+
 
137 Matrix #:

¿no te funciona?

Si no me equivoco, aquí es donde empezó todo, no funcionó según recuerdo ;-) Y tampoco sé dónde poner el nombre de la plantilla en el código. En resumen, es una especie de lío...
Razón de la queja: