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

 
Roman Kutemov:

aconsejar cómo determinar el día en mt5 ? un análogo de DayOfYear de mt4

esta es la función a escribir

if (TimeDayOfYear(transaction_time)==DayOfYear())

https://www.mql5.com/ru/docs/constants/structures/mqldatetime

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году.
 

Lo he leído, sólo que no sé cómo ponerlo en el código

 
Roman Kutemov:

aconsejar cómo determinar el día en mt5 ? un análogo de DayOfYear de mt4

esta es la función a escribir

if (TimeDayOfYear(transaction_time)==DayOfYear())

Ejemplo de código:

   MqlDateTime STimeTransaction,STimeCurrent;
   ResetLastError();
   if(TimeToStruct(transaction_time,STimeTransaction))
     {
      if(TimeToStruct(TimeCurrent(),STimeCurrent))
        {
         if(STimeTransaction.day_of_year==STimeCurrent.day_of_year)
           {
            //--- your code

           }
        }
      else
         Alert("ERROR STimeCurrent: ",GetLastError());
     }
   else
      Alert("ERROR STimeTransaction: ",GetLastError());

Hay dos estructurasMqlDateTime-STimeTransaction y STimeCurrent. En la estructuraSTimeTransaction convertimos la hora de la transacción (transaction_time), y en la estructuraSTimeCurrent- la última hora conocida del servidor comercial.

Entonces simplemente comparamos el campoday_of_year de estas dos estructuras(STimeTransaction ySTimeCurrent)

 
Vladimir Karputov:

Ejemplo de código:

Dos estructurasMqlDateTime-STimeTransaction y STimeCurrent. En la estructuraSTimeTransaction convertimos la hora de la transacción (transaction_time), y en la estructuraSTimeCurrent convertimos la última hora conocida del servidor comercial.

Entonces, simplemente comparamos el campoday_of_year de estas dos estructuras(STimeTransaction ySTimeCurrent)

Genial, gracias.

 

Un consejo para un anciano...

Por alguna razón, la impresión no funciona cuando se depura el Asesor Experto.

Es decir, hay un programa:

if(IsNewBar)
       {
     Print("Buy_opened=",Buy_opened ,"  Sell_opened=",Sell_opened,"   Новый бар",New_Time[0]);
     int fileHandle=FileOpen("test.txt",FILE_WRITE|FILE_TXT|FILE_SHARE_READ|FILE_UNICODE,0,0); 
     FileWrite(fileHandle,"Buy_opened=",Buy_opened ,"  Sell_opened=",Sell_opened,"   Новый бар",New_Time[0]);
     Alert("Buy_opened=",Buy_opened ,"  Sell_opened=",Sell_opened,"   Новый бар",New_Time[0]);
       }


Y no imprime nada. Incluso he quitado if(IsNewBar) para imprimir en cada tick - pero nada.

Busqué en todas las pestañas como "Asesor Experto", "registros", "registros" - nada.

¿Cuál es el problema? No tuve problemas con MT4, pero no tengo idea de dónde ir con MT5... No sé dónde ir... No sé dónde buscar...


Sí, el Asesor Experto no está funcionando en modo de "optimización", sólo está funcionando con datos históricos

Отладка кода - Разработка программ - MetaTrader 5
Отладка кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
В MetaEditor встроен отладчик — инструмент, который позволяет проверить работу программы по шагам (по отдельным функциям). Вы расставляете в коде программы точки останова — места, в которых исполнение программы должно быть приостановлено. Затем запускаете программу на обычном графике или в тестере стратегий. Как только исполнение программы...
 
Oldman_Evgeny:

Un consejo para un anciano...

Por alguna razón, la impresión no funciona cuando se depura el Asesor Experto.

Es decir, hay un programa:


Y no imprime nada. Incluso he quitado if(IsNewBar) para imprimir en cada tick - pero nada.

Busqué en todas las pestañas como "Asesor Experto", "registros", "registros" - nada.

¿Cuál es el problema? No tuve problemas con MT4, pero no tengo idea de dónde ir con MT5... No sé dónde ir... No sé dónde buscar...


Sí, el Asesor Experto no está funcionando en modo de "optimización", sólo está funcionando con datos históricos

Vea los registros en la carpeta "Tester".

 
Alexey Viktorov:

Vea los registros en la carpeta "Tester".

Hay todo tipo de cosas en los registros de la carpeta "Tester", pero la impresión que busco, es decir, del programa, no está ahí...
 
Oldman_Evgeny:
Los registros de la carpeta "Tester" están llenos de todo tipo de cosas, pero la impresión que busco, es decir, del programa, no está ahí...

También hay una carpeta llamada "Agente-127.0.0.1-3000" que también tiene registros.

 
Alexey Viktorov:

También hay una carpeta "Agent-127.0.0.1-3000" con registros en ella.

¡Milagro! Eliminado TODOS los registros en el probador y la impresión apareció en la pestaña "Log". ¡Increíble!

¡No puedo imaginar cómo sucedió! )))) Pero el hecho es que se imprime.

Gracias por la ayuda.

 

¿Qué bandera debe establecerse para abrir un archivo para ejecutar el Asesor Experto, que escribe los datos en el archivo en el probador, para que después de una ejecución en el probador el archivo escrito se encuentre en la carpeta "MQL5\Files"?

Lo he intentado de esta manera: FILE_WRITE|FILE_TXT - no puedo encontrar donde el probador ha guardado el archivo.

Lo he intentado de esta manera: FILE_WRITE|FILE_TXT|FILE_COMMON - todo es como se describe en la Ayuda, encuentro el archivo en "Roaming\MetaQuotes\Terminal\Common\Files".


¡¡¡pero quiero el archivo en "MQL5\Files" !!!