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

 
Seric29:

Имеется в виду если условие истинно то сделать 2 одинаковых действия например

Переменные я объявил и ничего выполняет только либо это действие Price_UrNij = Bar_Cl[iHgCL]>Bar_Op[iHgOP] ? Bar_Cl[iHgCL]:Bar_Op[iHgOP]; либо это действие Price_UrVerh = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP]; как сделать так чтобы выполняло 2 одинаковых действия проводило и верхний и нижний уровни по условию. Может кто подскажет как это короче записать?

1. Такой код читается крайне сложно.

          int iHgCL=iHighest(_Symbol,PERIOD_D1,MODE_CLOSE,4,qt+1); int iHgOP=iHighest(_Symbol,PERIOD_D1,MODE_OPEN,4,qt+1);

Мало кому придёт в голову искать объявление переменных не в начале строки.

2. Просто надо внутри блока if дважды вызвать функцию построения уровней

vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrNij, iTime(_Symbol,PERIOD_D1,qt), Price_UrNij, clrGreen, DRAW_LINE, 2, false, false);
vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrVerh, iTime(_Symbol,PERIOD_D1,qt), Price_UrVerh, clrGreen, DRAW_LINE, 2, false, false);
 

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

MqlDateTime dt;
datetime time=TimeTradeServer(dt)

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
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. Ищем, читаем. ДУмаем.