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

 
Vladimir Karputov :

Где вопрос? Какие именно ошибки? Извините, все телепаты в отпуске.

Вот в чем вопрос. Я также не понимаю, в чем ошибка. Как вы думаете, я бы вставил сюда, если бы знал, в чем была ошибка? Я даже не получаю ошибку. Просто это сообщение и ничего больше.

 
jaffer wilson:

Вот в чем вопрос. Я также не понимаю, в чем ошибка. Как вы думаете, я бы вставил сюда, если бы знал, в чем была ошибка? Я даже не получаю ошибку. Просто это сообщение и ничего больше.

  Click

 
Vladimir Karputov :

Где вопрос? Какие именно ошибки? Извините, все телепаты в отпуске.


хорошо, понял

тест по паре EURUSD, H1 (неттинг) Tradestatisticspanel (EURUSD, H1) Код возврата OnInit равен -1 не может инициализировать индикатор несвязно

 

Подскажите пожалуйста!

В справке написано, что экземпляром структуры выступает переменная. Например, есть структура

struct STRUCT_POSITION {
   double            volume;                 
   double            lot_coefficient;        
   bool              waiting_transaction;    
   ulong             waiting_order_ticket;   
   bool              transaction_confirmed;  
   }

Затем мы создаем экземпляр структуры, обьявляя переменную ее типа:

STRUCT_POSITION SPosition;

Но я встретил в коде вот такое

STRUCT_POSITION SPosition[];

И это меня поставило в тупик. Нигде не встречал, чтобы можно было обьявить массив типа структуры. Какие теперь свойства будут у этого массива? Можно ли его  назвать "экземпляром структуры"?  Может, подскажете, где об этом почитать подробнее?

 
odyn:

Подскажите пожалуйста!

В справке написано, что экземпляром структуры выступает переменная. Например, есть структура

Затем мы создаем экземпляр структуры, обьявляя переменную ее типа:

Но я встретил в коде вот такое

И это меня поставило в тупик. Нигде не встречал, чтобы можно было обьявить массив типа структуры. Какие теперь свойства будут у этого массива? Можно ли его  назвать "экземпляром структуры"?  Может, подскажете, где об этом почитать подробнее?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Alexey Viktorov, 2020.02.23 08:29

Объявление структуры struct STRUCT_POSITION { \...\}, это создание пользовательского типа данных. А STRUCT_POSITION SPosition[]; объявление переменной пользовательского типа. На то, что переменная является массивом указывают квадратные скобки [] Можно объявить несколько переменных пользовательского типа как и любого другого типа.

double a, b[];

STRUCT_POSITION Pos, SPosition[];// при условии, что структура уже создана.
В этой записи тип, переменная, массив

Ой... да я не сразу заметил что именно вам был этот ответ.

Более подробно: Массив это всего-лишь набор индексированных переменных. Примитивно можно объяснить так, имеем две переменные p1 и p2 или имеем массив p[2] в этом случае не важно хранить значение в переменной р1 или в ячейке массива p[0], равно как в переменной р2 или в массиве p[1]

Когда переменных надо 2-3, ну максимум 5 то можно обойтись и переменными, а если из 100 или вообще неизвестное количество необходимых переменных... Вот тут и познаётся вся прелесть массивов.

 
Alexey Viktorov:

Ой... да я не сразу заметил что именно вам был этот ответ.

Более подробно: Массив это всего-лишь набор индексированных переменных. Примитивно можно объяснить так, имеем две переменные p1 и p2 или имеем массив p[2] в этом случае не важно хранить значение в переменной р1 или в ячейке массива p[0], равно как в переменной р2 или в массиве p[1]

Когда переменных надо 2-3, ну максимум 5 то можно обойтись и переменными, а если из 100 или вообще неизвестное количество необходимых переменных... Вот тут и познаётся вся прелесть массивов.

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

П.С. : в коде было не STRUCT_POSITION Pos, SPosition[] 

а      STRUCT_POSITION SPosition[];

переменной нет.

 
odyn:

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

Один автобус (переменная с типом структуры bus) имеет три поля:
1. Водитель
2. Кондуктор
3. Пассажиры[]
Парк автобусов (массив структур bus) имеет 120 автобусов, каждый из которых имеет те же поля:
1. Водитель
2. Кондуктор
3. Пассажиры[]
Но у каждого автобуса эти поля отличаются от других автобусов.
Итог: парк автобусов - это массив струтур типа автобус.
 
Artyom Trishkin:
Один автобус (переменная с типом структуры bus) имеет три поля:
1. Водитель
2. Кондуктор
3. Пассажиры[]
Парк автобусов (массив структур bus) имеет 120 автобусов, каждый из которых имеет те же поля:
1. Водитель
2. Кондуктор
3. Пассажиры[]
Но у каждого автобуса эти поля отличаются от других автобусов.
Итог: парк автобусов - это массив струтур типа автобус.

Спасибо, очень доходчиво. :)  Получается МАСССИВ СТРУКТУР.  Понятно.

 
odyn:

Спасибо, очень доходчиво. :)  Получается МАСССИВ СТРУКТУР.  Понятно.

Здорово Артём объяснил пока я отсутствовал. Только добавлю к вашему пониманию: Получается массив структур содержащий массив пассажиров.

В каждой ячейке массива есть один водитель, один кондуктор и много пассажиров(массив).

 
Artyom Trishkin:

Здесь

вы создаёте объект базового класса. Соответственно - базовый класс у вас везде.

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

Задача - оставить имя класса в коде одним и тем же.

И еще подскажите, пожалуйста, какую директиву использовать для определения тестера.

#ifdef MQL_TESTER || MQL_VISUAL_MODE

Так можно?

Причина обращения: