Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 189
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Чем отличается метатрейдер 5 от предыдущего 4 с ним труднее работать или нет. Каждый брокер предлагает эти программы, а почему не бывает одной программы на всех брокеров, чтобы не устанавливать их по много.
Пытаюсь зделать функцию которая будет возвращать результат закрытой последней позиции (плюс или минус). Функция преднозначена для мультивалютного эксперта и должна выбрать последньую закрытую позицию из всех валютных пар и здесь как раз что-то мне не получается. Можете поправить функцию?
OBJ_ALL_PERIODS=2097151
Что значит: неиспользуемые методы в своих классах? В ООП такое не практикуется. Нормальный программист в ООП, в отличие от алгоритмического программирования, создаёт классы со всеми необходимыми полями и методами, что называется на все случаи жизни, поскольку этот же класс может впоследствии пригодиться и в других приложениях или войти в библиотеку классов. Я уже не говорю про то, что даже в рамках одного проекта лучше сразу создавать полноценные классы, а не урезанные, чтобы потом не пришлось лазить по исходникам и добавлять необходимые поля и методы.
В ООП всякая экономия, к которой многие привыкают в алгоритмическом программировании, только боком вылазит впоследствии. Все, что не используется, должен исключать из кода компилятор, а не программист.
Конечно же в ООП исходники получаются большего объёма по сравнению с алгоритмическим программированием. Но это не недостаток, а преимущество, т.к. значительная часть "лишнего" кода в данном проекте, может быть многократно применена в других проектах.
Не надо пытаться лепить горбатого, т.е. засовывать всё в один класс. Нужно создавать библиотеки классов, т.е. разбивать функционал по отдельным классам и не забывать вставлять комментарии к этому хозяйству и тогда всё упорядочивается. Я тоже первоначально, когда начал изучать Java после Pascal пытался по старой привычке всё делать одним куском, т.е. практически вместо того, чтобы использовать ООП, создавал один класс, в который запихивал всё необходимое для конкретной задачи, т.е. как в алгоритмическом программировании. Получалась неуниверсальная каша, которую в дальнейшем уже невозможно никуда применить, не говоря уже про то, что ногу сломишь разбираться в таком коде.Я это все прекрасно понимаю. Но хотя бы показать неиспользуемые private переменные как это сделано в VisualStudio можно?
Дело еще в том, что классы проектируется в процессе разработки. Учесть все еще до создания просто невозможно. Поэтому создаются каркасные классы с минимально возможным функционалом. В процессе взаимодействия этих каркасных классов начинает вырисовывается общая архитектура. Часть методов просто удаляется, часть переходит в секцию private, часть - мигрирует из одного класса в другой. В процессе этого неизбежно появляются забытые переменные, методы и даже целые классы. Это нормально т.к. это нечто иное как принцип Окамы в действии - сначала пишем плохой, избыточный код. Затем более ясно формализуем задачу и часть сущностей просто исчезает. Избыточность сходит на нет. И вот именно в этом процессе помощь компилятора была бы весьма кстати - видеть неиспользуемые переменные и хотя бы private методы было бы весьма кстати.
Здраствуйте.
Я так понимаю что функция OnCalculate () которая применяется в индикаторах генерирует сама по себе,т.е. без наступления события изменения цены,
какую функцию в индикаторе можно применить в индикаторе, которая генерировала только с наступлением изменения цены. Спасибо
Здраствуйте.
Я так понимаю что функция OnCalculate () которая применяется в индикаторах генерирует сама по себе,т.е. без наступления события изменения цены,
какую функцию в индикаторе можно применить в индикаторе, которая генерировала только с наступлением изменения цены. Спасибо
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных. Обрабатывается функцией OnCalculate. Так же при изменении истории (при подкачке истории) будет генерироваться OnCalculate.
OnCalculate для индикатора есть самая важная функция, в которой производятся все расчеты индикатора при изменении ценовых данных.
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных. Обрабатывается функцией OnCalculate. Так же при изменении истории (при подкачке истории) будет генерироваться OnCalculate.
OnCalculate для индикатора есть самая важная функция, в которой производятся все расчеты индикатора при изменении ценовых данных.
Вот здесь происходит какая то зацикленность, т.е. он постоянно генерирует и при изменении периода изменяются показания. В чем ошибка?
#property copyright "Copyright 2014, MetaQuotes Software Corp."ArraySetAsSeries(high_nachalo,true);
shift_nachalo=ArrayMaximum(high_nachalo,barUP-1,barDown-(barUP-1));Вот здесь происходит какая то зацикленность, т.е. он постоянно генерирует и при изменении периода изменяются показания. В чем ошибка?
Как правильно на форуме вставить код.
Обратите внимание на ошибку:
Используйте: