Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 927

 
Fast528:

подскажите в чем разница использования? какой бывает нюанс?

Вероятнее всего никакой разницы нет.

 
Alexey Viktorov:

Вероятнее всего никакой разницы нет.

я так понимаю, что первый случай, это если нужно будет использовать переменную time и структуру, а во втором только данные структуры?

 
Fast528:

я так понимаю, что первый случай, это если нужно будет использовать переменную time и структуру, а во втором только данные структуры?

Что-то я не обратил внимания на переменную time.

А зачем это??? Ведь ничего не стоит перевести структуру в time. Но в этом случае не будет зарезервирована память под переменную.

Либо если нужно только время без разделения на части, то зачем резервировать память под структуру?

 
Alexey Viktorov:

Что-то я не обратил внимания на переменную time.

А зачем это??? Ведь ничего не стоит перевести структуру в time. Но в этом случае не будет зарезервирована память под переменную.

Либо если нужно только время без разделения на части, то зачем резервировать память под структуру?

мне надо чтобы индикатор на графике отображал позиции входа/выхода и линию рисовал между ними,  на периоде Сегодня минус 1 день к примеру, как обычно делают в индикаторе или роботе?

 

Запускаю тестирование.

Программа открывает файл в OnInit():

CFileTxt file;
int file_handle=file.Open("file_name.lic",FILE_READ);
if(file_handle==INVALID_HANDLE)
     {      
      return INIT_FAILED;
     }

Он мало того, что не находит файл в папке, но ещё и удаляет после тестирования другой файл в папке MQL5\Files агента тестирования. Всего там два файла, которые удаляются при запуске.

Ошибка 5004 на FileOpen().

Проблема только в тестере.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

Запускаю тестирование.

Программа открывает файл в OnInit():

Он мало того, что не находит файл в папке, но ещё и удаляет после тестирования другой файл в папке MQL5\Files агента тестирования. Всего там два файла, которые удаляются при запуске.

Ошибка 5004 на FileOpen().

Проблема только в тестере.

Папки агентов вычищаются. Это правильно. Если нужно подсовывать файл сохранённый ранее используйте обращение к файлу сохранённому в общей папке.


Пример из моих кодов:

//--- STEP 6
   if(m_file_txt.Open(InpFileName,FILE_WRITE|FILE_COMMON)==INVALID_HANDLE)
 
Vladimir Karputov:

Папки агентов вычищаются. Это правильно. Если нужно подсовывать файл сохранённый ранее используйте обращение к файлу сохранённому в общей папке.


Пример из моих кодов:

Какая ещё общая папка? Не использую вообще. Я всегда запускаю в режиме portable. У меня всё в папке установки.

 
Juer:

Какая ещё общая папка? Не использую вообще. Я всегда запускаю в режиме portable. У меня всё в папке установки.

Общая папка: FILE_COMMON. Ищем, читаем. ДУмаем.

 
Juer:

Какая ещё общая папка? Не использую вообще. Я всегда запускаю в режиме portable. У меня всё в папке установки.

Статья LifeHack для трейдера: Сравнительный отчет нескольких тестирований.

*** Вот пример простого скрипта Check_TerminalPaths.mq5:

//+------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }
//+------------------------------------------------------------------+

Этот скрипт выводит три параметра:

  • TERMINAL_PATH — папка, из которой запущен терминал
  • TERMINAL_DATA_PATH — папка, в которой хранятся данные терминала
  • TERMINAL_COMMONDATA_PATH — общая папка всех клиентских терминалов, установленных на компьютере

Пример для трёх терминалов (один из них запущен с ключом /Portable):

// Терминал запускается в основном режиме
TERMINAL_PATH 			= C:\Program Files\MetaTrader 5
TERMINAL_DATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

// Терминал запускается в основном режиме
TERMINAL_PATH 			= D:\MetaTrader 5 3
TERMINAL_DATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\0C46DDCEB43080B0EC647E0C66170465
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

// Терминал запускается в режиме Portable
TERMINAL_PATH 			= D:\MetaTrader 5 5
TERMINAL_DATA_PATH 			= D:\MetaTrader 5 5
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

***

 
Vladimir Karputov:

Общая папка: FILE_COMMON. Ищем, читаем. ДУмаем.

А почему с тем же файлом я получаю ошибку 5004 в тестере, а при отладке на реальных данных всё нормально?