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

 
fxsaber:

Для записи данных Агентов в один файл нужно использовать Фрейм-режим.


Спасибо! Надо изучить.

А что есть "Фрейм-режим"?

 
Aleksey Vyazmikin:

А что есть "Фрейм-режим"?

https://www.mql5.com/ru/docs/optimization_frames

Документация по MQL5: Работа с результатами оптимизации
Документация по MQL5: Работа с результатами оптимизации
  • www.mql5.com
Работа с результатами оптимизации - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Спасибо - что за режим понял.

Однако не понял, можно ли пачкой передать 100 показателей в этом фрейме? Почему в одном фрейме - так-как каждый фрейм считается отдельным проходом, как я понял из описания, или я не так понял? 

И, где описание формата файла *.mqd можно найти?

 
Aleksey Vyazmikin:

Однако не понял, можно ли пачкой передать 100 показателей в этом фрейме?

Посмотрите пример выше. Там передаются произвольные данные в любом количестве.

 
fxsaber:

Посмотрите пример выше. Там передаются произвольные данные в любом количестве.


Много вопросов, позвольте мне Вам их позадавать?

Вот функция в коде

// Подготовка данных
void GetData( string &Str, MqlTick &Ticks[], double &Balance )
{
  Str = "Hello World!";
  
  CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 2); // Последние два тика (пример)
  
  Balance = AccountInfoDouble(ACCOUNT_BALANCE);
}

Смысл понятен - собираем данные, которые будем потом записывать.

Я не совсем понимаю, зачем в скобках объявляем переменные, и что значит знак "&" перед переменной?

 
Aleksey Vyazmikin:

Много вопросов, позвольте мне Вам их позадавать?

Вот функция в коде

Смысл понятен - собираем данные, которые будем потом записывать.

Я не совсем понимаю, зачем в скобках объявляем переменные, и что значит знак "&" перед переменной?

Это азы. Читайте в справке о формальных параметрах функции и передачу параметров по ссылке.
 
Aleksey Vyazmikin:

Много вопросов, позвольте мне Вам их позадавать?

Вот функция в коде

Смысл понятен - собираем данные, которые будем потом записывать.

Я не совсем понимаю, зачем в скобках объявляем переменные, и что значит знак "&" перед переменной?

Из документации


Существует возможность передавать по ссылке и параметры простых типов. В этом случае модификация таких параметров внутри вызываемой функции отразится на соответствующих переменных, переданных по ссылке. Для того чтобы указать, что параметр передается по ссылке, после типа данных необходимо поставить модификатор &.

Пример:

void func(int& x, double& y, double & z[])
  {
   double calculated_tp;
   ...
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(i==ArraySize(z))       break;
      if(OrderSelect(i)==false) break;
      z[i]=OrderOpenPrice();
     }
   x=i;
   y=calculated_tp;
Документация по MQL5: Основы языка / Переменные / Формальные параметры
Документация по MQL5: Основы языка / Переменные / Формальные параметры
  • www.mql5.com
Основы языка / Переменные / Формальные параметры - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:
Это азы. Читайте в справке о формальных параметрах функции и передачу параметров по ссылке.

Может и азы, не спорю, просто не могу въехать в код, где там начало, где конец... поэтому и вопросы. Хорошо это ссылка(?), но на что?

Где первоначально возникла переменная "Str" тут?

    while (FrameNext(Pass, Name, ID, Value, Container.Data))
    {
      string Str;
      MqlTick Ticks[];
      double Balance;
      
      // Получили данные от Агента
      Container[0].Get(Str);
      Container[1].Get(Ticks);
      Container[2].Get(Balance);
      
//      FileWrite(handle, Pass);     // Если хочется записать номер прохода
      SaveData(Str, Ticks, Balance); // Данные будут записаны в MQL5\Files-папку Терминала (не Агента)
    }
 
Alexey Viktorov:
Из документации



Такой код разве откомпилируется, на x=i; ругаться не будет?

И, в чём разница, между объявлением этих x y z в начале, при инициализации?

Вот я тупой... нихера не втыкаю.

 
Aleksey Vyazmikin:

Может и азы, не спорю, просто не могу въехать в код, где там начало, где конец... поэтому и вопросы. Хорошо это ссылка(?), но на что?

Где первоначально возникла переменная "Str" тут?

Сразу после первой фигурной открывающей скобки.