Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Неплохой пример возможностей структур. В них можно объявлять массивы, а потом массивы структуры)
Просто надо понять, что такое тип переменных. Типы могут быть инт, дабл, стринг, массив, структура, класс. И структура, это описание типа данных. Так же как и инт, это описание целочисленных переменных.
Хороший пример. Но это в том случае откуда это взято, примерно как грядку морковки у себя на даче 6 соток, обрабатывать трактором…
А пример ещё проще, так это, как чесать правое ухо мизинцем левой ноги.
Но лучше пальцем правой руки…
Хороший пример. Но это в том случае откуда это взято, примерно как грядку морковки у себя на даче 6 соток, обрабатывать трактором…
А пример ещё проще, так это, как чесать правое ухо мизинцем левой ноги.
Но лучше пальцем правой руки…
Не, там тема была как однорядный буфер индикатора засунуть в многоразмерный массив. Хорошее решение по мне.
Не, там тема была как однорядный буфер индикатора засунуть в многоразмерный массив. Хорошее решение по мне.
Да я не против. Наглядный пример возможностей и более ничего. Трактор на 6ти сотках тоже нормально показывает свои возможности.
Да просто в начале хотя-бы для читаемости и объединения взаимосвязанных данных в один объект.
Видел на форуме очень древнюю тему/статью (10+ лет), где свойства ордеров в многомерный double массив собирали, попутно приводя типы данных при каждом обращении. Попробуйте сделать так, после чего объявите массив структур с переменными .ticket, .time, .stopLoss... С чем вам будет удобней работать?
В добавок в сборе ордеров в массив структур есть один огромный плюс - вы их, блин, таки начинаете собирать, а не делать вот так (чужой код, который прислали доработать):
Другой пример: MqlTick, MqlRates, MqlDatetime. Попробуйте использовать их в работе. После чего попробуйте от них отказаться: делайте то же самое, но для каждого элемента структуры объявляйте отдельный массив. Особенно убедительно получится, когда у вас рядом будут лежать time[] баров и time[] тиков на ряду с десятком других массивов. Даже проявив чудеса нейминга, все равно можно будет по невнимательности вписать в time[] тиков индекс бара, например.
Да просто в начале хотя-бы для читаемости и объединения взаимосвязанных данных в один объект.
Видел на форуме очень древнюю тему/статью (10+ лет), где свойства ордеров в многомерный double массив собирали, попутно приводя типы данных при каждом обращении. Попробуйте сделать так, после чего объявите массив структур с переменными .ticket, .time, .stopLoss... С чем вам будет удобней работать?
В добавок в сборе ордеров в массив структур есть один огромный плюс - вы их, блин, таки начинаете собирать, а не делать вот так (чужой код, который прислали доработать):
Другой пример: MqlTick, MqlRates, MqlDatetime. Попробуйте использовать их в работе. После чего попробуйте от них отказаться: делайте то же самое, но для каждого элемента структуры объявляйте отдельный массив. Особенно убедительно получится, когда у вас рядом будут лежать time[] баров и time[] тиков на ряду с десятком других массивов. Даже проявив чудеса нейминга, все равно можно будет по невнимательности вписать в time[] тиков индекс бара, например.
Еще одно: передача параметров в функции. Структуры сокращают количество передаваемых в функцию параметров кратно количеству членов структуры. Здесь есть ребята, которые считают огромным грехом передавать в функцию больше 4х параметров. Как этого добиться без структур?
Вариант "все переменные сделать глобальными" не предлагать :D
Еще одно: передача параметров в функции. Структуры сокращают количество передаваемых в функцию параметров кратно количеству членов структуры. Здесь есть ребята, которые считают огромным грехом передавать в функцию больше 4х параметров. Как этого добиться без структур?
Вариант "все переменные сделать глобальными" не предлагать :D
завернуть тогда в класс)
завернуть тогда в класс)
Ну это уже следующий уровень. Если есть трудности с пониманием назначения структур, то в ооп пока рановато)
завернуть тогда в класс)
Классы - эволюционированные структуры
Мне лучше всего доходят ассоциативные примеры. Попробую рассказать, что такое структуры, ассоциацией.
Valeriy Yastremskiy выше уже написал, что по сути структура это тип данных.
Представим, что данные это одежда. И есть разные типы одежды, трусы, носки, ̶п̶р̶о̶т̶и̶в̶о̶г̶а̶з̶ , куртка.
Мы можем создавать переменные с этими разными типами данных и инициализировать их
носки шертяные_41 = 2;
носки ХБ = 10;
носки в_полосочку = 1;
куртка абырвол = 8;
то есть тип данных "носки" а дальше название переменной и чему она равна(инициализация).
Так вот структура, это тип данных, который содержит в себе несколько других типов данных. Исходя из моего примера, структура это комплект одежды.
struct разная_одежда
{
носки шертяные_41 ;
носки ХБ ;
куртка абырвол ;
куртка abibas;
};
Вот получился новый тип данных " разная одежда" . Такой же тип данных как и int, double или как я писал носки, трусы.
Объявляется переменная структуры ток же как и другие :
разная_одежда м_рОдежда;
инициализация структуры будет выглядеть так:
м_рОдежда . шертяные_41 = 5;
м_рОдежда . ХБ = 15;
м_рОдежда . абырвол = 3;
м_рОдежда. abibas = 8;
P.S. Я когда учился мне подобное объяснение лучше всего зашло, поэтому делюсь, вдруг пригодится.
Мне лучше всего доходят ассоциативные примеры. Попробую рассказать, что такое структуры, ассоциацией.
Valeriy Yastremskiy выше уже написал, что по сути структура это тип данных.
Представим, что данные это одежда. И есть разные типы одежды, трусы, носки, ̶п̶р̶о̶т̶и̶в̶о̶г̶а̶з̶ , куртка.
Мы можем создавать переменные с этими разными типами данных и инициализировать их
носки шертяные_41 = 2;
носки ХБ = 10;
носки в_полосочку = 1;
куртка абырвол = 8;
то есть тип данных "носки" а дальше название переменной и чему она равна(инициализация).
Так вот структура, это тип данных, который содержит в себе несколько других типов данных. Исходя из моего примера, структура это комплект одежды.
struct разная_одежда
{
носки шертяные_41 ;
носки ХБ ;
куртка абырвол ;
куртка abibas;
};
Вот получился новый тип данных " разная одежда" . Такой же тип данных как и int, double или как я писал носки, трусы.
Объявляется переменная структуры ток же как и другие :
разная_одежда м_рОдежда;
инициализация структуры будет выглядеть так:
м_рОдежда . шертяные_41 = 5;
м_рОдежда . ХБ = 15;
м_рОдежда . абырвол = 3;
м_рОдежда. abibas = 8;
P.S. Я когда учился мне подобное объяснение лучше всего зашло, поэтому делюсь, вдруг пригодится.