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

 
DC2008:

1. Si se omiten los controles, se puede hacer así:

2. Sí

3. La cuestión no está clara.

1. ¿Para qué sirven los cheques? ¿Si sin ellos se desperdiciaran menos recursos?

2. Por ejemplo, en mql4 hay nombres de variables:

int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip=-1,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   MA_1_t,                          // Значен. МА_1 текущее
   MA_2_t,                          // Значен. МА_2 текущее 
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool 
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell

¿En qué sección de mql5 listar estas variables que están arriba en el código que están en mql4 en int start?

Las variables globales se fijan antes del inicio de int. Todo el código de EA está tomado del tutorial aquíhttps://с.mql4.com/book

 
forexman77:

1. ¿Para qué sirven los cheques? ¿Si sin ellos se desperdiciaran menos recursos?

2. En mql4 hay nombres de variables, por ejemplo:

¿En qué sección de mql5 listar estas variables que están arriba en el código que están en mql4 en int start?

Las variables globales se fijan antes del inicio de int. Todo el código del Asesor Experto está tomado del tutorial aquíhttps://с.mql4.com/book.

1. Para un comercio real fiable del Asesor Experto.

Estas son variables locales y puedes copiarlas en la función OnTick, que sustituye a la start() del 4.

Sin embargo, me gustaría advertirle: ¡las funciones comerciales NO deben transponerse una a una!

 
DC2008:

1. Para un funcionamiento fiable de EA en real.

2. estas son variables locales y puedes copiarlas en la función OnTick, que sustituye a start() del cuatro.

Sin embargo, me gustaría advertirle que las funciones de negociación NO deben copiarse de una a otra.

¿Quiere decir que algunas variables se cuentan de forma diferente en cinco? Lo siento, aún no sé nada de mql5, así que no puedo entenderte del todo. ¿Podría darme un ejemplo de por qué no se pueden transferir funciones de mql4 a otro? ¿Existe una rama del foro para los tontos?)

Estoy tratando de insertar el código:

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

Veo errores en el void OnTick():

TFMigrate' - función no definida

conversión implícita de enum

He probado los mismos errores en int OnInit(). ¿Qué estoy haciendo mal?

En mql5 ponemos banderas, tickets, lotes de stop y profit, etc. en variables globales que deben ser almacenadas fuera del código principal, es decir, el principio es el mismo que en mql4.

 
forexman77:

¿Quiere decir que algunas variables se cuentan de forma diferente en 5? Lo siento, pero no sé nada de mql5 y no te entiendo bien. ¿Podría darme un ejemplo de por qué las funciones de mql4 no se pueden transferir entre sí? ¿Existe una rama en este foro para los completamente tontos)?

Deberías renunciar a mql4 y no traducir "estúpidamente" línea por línea, sino empezar a "bailar desde la estufa". Hay muchos ejemplos y Asesores Expertos listos en kodobase y en la entrega estándar de MQ para los cinco. Si esto es "matemáticas superiores" para usted, pida un EA en la sección "Trabajo".

Ahora las respuestas a sus preguntas:

  1. Copia la función TFMigrate del artículo, está al principio.
  2. En cuanto a las variables, el principio es el mismo.
 
DC2008:

¡No se puede empezar a "bailar desde la estufa" en lugar de traducir "tontamente" línea por línea! Hay muchos ejemplos y EAs listos para usar en kodobase y en el paquete MQ estándar para cinco. Si esto es "matemáticas superiores" para usted, pida un EA en la sección "Trabajo".

Ahora las respuestas a sus preguntas:

  1. Copia la función TFMigrate del artículo, está al principio.
  2. En cuanto a las variables, el principio es el mismo.
Estoy tratando de poner su función
int HourMQL4(){MqlDateTime tm;TimeCurrent(tm);return(tm.hour);};
en el void OnTick(), pide ponerlo en el global 'HourMQL4' - la función puede ser declarada sólo en el ámbito global. ¿Es realmente necesario ponerlo ahí? Si lo hago, no habrá ningún error. ¿Es necesario un punto y coma después de una llave?
 
¿Cómo determinar la hora actual en minutos desde el comienzo del día?

Lo he pensado así:

datetime  vrema=TimeCurrent(MqlDateTime{int hour;});
int tek_vrema= vrema*60;
No estoy seguro de la primera línea si el código es correcto.
 
forexman77:
Intento poner tu función en el void OnTick(), me pide que la ponga en el global 'HourMQL4' - la función sólo puede declararse en el ámbito global. ¿Es realmente necesario ponerlo ahí? Si lo hago, no habrá ningún error. ¿Es necesario un punto y coma después de una llave?

La función no puede incluirse en una función.

 
forexman77:
¿Cómo determinar la hora actual en minutos desde el comienzo del día?

Lo pensé de esta manera:

No estoy seguro de la primera línea si el código es correcto.

Esto es correcto:

   MqlDateTime tm;
   TimeCurrent(tm);
   int tek_vrema=tm.hour*60;
 
Buenas tardes, podrían decirme el indicador o Asesor Experto que notifica con un pitido tras la formación de un patrón de velas como el de la imagen. Es decir, el pitido fue después de 7 velas opuestas, o 6 velas, por lo que este número puede ser cambiado. Gracias.
 
DC2008:

Así es como se hace:

¡Muchas gracias! Funciona.

Explica la lógica de mql5. En mql4, se utiliza int Hour() para determinar el tiempo en horas. En mql5, no existe tal constante, según he entendido.

1.¿Cómo reconoce el programa que estamos pidiendo el tiempo en horas? ¿Supongo que desdeMqlDateTime?

2.Para sumar la hora actual en minutos a la hora actual en horas, es decir, para saber la hora actual en minutos, la construcción sería así

 MqlDateTime tm;
 TimeCurrent(tm);
 int tek_vrema=tm.hour*60+tm.min;

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
Razón de la queja: