Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 572

 
Boris.45:
Hola, estoy escribiendo un EA para MT5. He escrito un EA en MT5 que he querido utilizar para buscar automáticamente los patrones necesarios y abrir posiciones manualmente. Es decir, no hay funciones de negociación en el EA. Mi problema es que no puedo instalar este EA en un gráfico. No hay llamadas de indicadores en el EA. Todos los indicadores están escritos en el programa. Lo compilé y lo ejecuté en el probador de estrategias. No hubo problemas. Acabo de poner el EA en el gráfico y le he permitido operar en la pantalla, en la configuración y en la ventana del EA que aparece. En lugar de la cara sonriente en el gráfico, el icono del Asesor Experto aparece en el gráfico de precios y un círculo verde con un triángulo blanco en su interior. He probado este procedimiento varias veces y sigo obteniendo los mismos resultados. Cambié los períodos en el gráfico de precios, el mensaje de OnDeinit() aparece en el monitor, es decir, una vela se procesa en el programa y el trabajo se detiene.

Eché un vistazo al cuaderno de bitácora:

- Uno de los intentos de instalar un EA dio como resultado un mensaje de cambio de perfil;

- En todos los demás intentos el EA se carga sin problemas.

Solía trabajar con Perfiles: aumentaba el número de Perfiles, establecía diferentes gráficos en cada Perfil. Si había algo mal ahí, por desgracia, no lo sé. No sé qué debe estar roto para que el programa dé un mensaje de cambio de perfil. Aunque es posible que el fallo se deba a alguna otra razón. No me queda claro.

Para probar, he creado un nuevo EA (plantilla) hoy y no escribí nada en las funciones OnInit(), OnDeinit(const int reason), OnTick() y traté de poner este EA en el gráfico y permitir el comercio.

Tengo la misma situación que antes.

Por favor, ayúdenme a afrontar la situación. Gracias !!!!!!

Veamos uno por uno. Aquí está la plantilla:

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//---
   
  }
//+------------------------------------------------------------------+

Adjúntela al gráfico y una captura de pantalla del gráfico en el estudio, así como las entradas de las pestañas "Diario" y "Asesores" (si aparecen allí).

Archivos adjuntos:
Test.mq5  2 kb
 
Supongo que aquí tampoco hay profesionales. pity......
 
Mihail Marchukajtes:
Supongo que aquí tampoco hay profesionales. pity......
Así que reimprime los valores de Momentum de la carta de otra persona en el probador
 
Artyom Trishkin:
Así que reimprime los valores de Momentum de la carta de otra persona en el probador
La impresión muestra lo que el buffer dibuja. No hay información. ¿Puede alguien dar una respuesta sensata???? Especulación no ininteligible....
 
Mihail Marchukajtes:
La impresión muestra lo que el buffer dibuja. No hay información. ¿Puede alguien dar una respuesta sensata???? No es una especulación oscura....
Así que das cero información. ¿Dónde está tu código? ¿O es que todo el mundo aquí es vidente o algo así? Entonces deberías ir al foro de magos del décimo grado...
 

Colegas, ¿podéis decirme cómo comparar los parámetros de las velas dentro de un rango determinado?

Cómo calcular el valor máximo o mínimo, entiendo.

Aquí está el código:

void OnTick()

{

doble H = 0;

for ( shift = Search_Period; shift >0; shift--)

{

if (High[shift] > H)

{ H = High[shift]; }

Alerta (H);

}

}

Pero el problema es que sobrescribe el valor de la variable.

Mi objetivo es encontrar, por ejemplo, dos o más velas con el mismo valor de precio Alto. Es decir, en idea, después de cada iteración se debe crear una variable que almacene el valor, luego otra, y así sucesivamente, hasta comprobar todo el intervalo. Y entonces se podrán comparar más.

Pero no tengo ni idea de cómo hacerlo ((.

 
Andrey Koldorkin:

Colegas, ¿podéis decirme cómo comparar los parámetros de las velas dentro de un rango determinado?

Cómo calcular el valor máximo o mínimo, entiendo.

Aquí está el código:

...............


Pero el problema es que sobrescribe el valor de la variable.

Y mi propósito, es encontrar, por ejemplo, dos o más velas con el mismo valor de precio de Alta. Es decir, en idea, después de cada iteración, se debe crear una variable que almacenará el valor, luego otra, y así sucesivamente, hasta comprobar todo el intervalo. Y entonces se podrán comparar más.

Pero no tengo ni idea de cómo hacerlo ((

Se ve así:

//+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period=100;  // Количество копируемых High
int searchPeriod=(Search_Period<1)?1:Search_Period;
double mass_high[][2];        // массив значений High и их времени
MqlRates array[];             // Массив для копирования Open, High, Low, Close, Time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period()));
   if(CopyRates(Symbol(),PERIOD_CURRENT,1,copy_bars,array)>0) {
      double H=0;
      int size_h=0;
      for(int i=0; i<copy_bars; i++) {
         if(array[i].high>H) {
            H=array[i].high;
            size_h++;
            ArrayResize(mass_high,size_h);
            mass_high[size_h-1][0]=H;
            mass_high[size_h-1][1]=(int)array[i].time;
            }
         }
      }
   for(int i=0; i<ArrayRange(mass_high,0); i++) {
      printf("Время: %s, High: %.5f",TimeToString((int)mass_high[i][1],TIME_DATE|TIME_MINUTES),mass_high[i][0]);
      }
  }
//+------------------------------------------------------------------+
 
¿cómo escribir dos asesores diferentes en uno?
 
Сергей Зырянов:
¿cómo se ponen dos EAs diferentes en uno?
¿Qué le interesa? Copias el código de un EA a otro, pero necesitas copiarlo correctamente, si no entiendes cómo hacerlo, pídelo a un freelance.
 
Artyom Trishkin:

Es algo así:

Intentaré averiguarlo. Gracias.