Вопросы по Мастеру MQL5 и стандартной библиотеке торговых классов - страница 6

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Мастер и классы для него переведены пока в "режим сопровождения". Для создания простейших мультивалютников классы уже приспособлены (сейчас не готов, а позже положу сюда примерчик).
Сварганил мультивалютник из классов на базе сгенерированного мастером. Но при этом пришлось подкорректировать класс EXPERT.
В нем в самом начале в методе INIT() идёт проверка на рабочий символ ну и соотвественно мультики не идут. Проверку убрал и всё пошло. Посмотрите будет время - идея хотя бы та ???
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
Здравствуйте, модератор!
У меня такой вопрос:
Мастер MQL5 имеет в свое составе 20 модулей сигналов, которые производят анализ на предмет обнаружения дивергенций, перекупленности, перепроданности и др. Не подскажите, можно ли заимствовать из этой библиотеке любой такой модуль сигналов от Мастера MQL5 для проведения анализа того же самого, но от индикатора пользовательского, собственной разработки, и что для этого нужно сделать? Большая для этого потребуется доделка (переделка) или достаточно чего-то изменить в модуле (его копии) из стандартной поставки?
Заранее спасибо!
ForexMoneyMaker:
Не подскажите, можно ли заимствовать из этой библиотеке любой такой модуль сигналов от Мастера MQL5 для проведения анализа того же самого, но от индикатора пользовательского, собственной разработки, и что для этого нужно сделать? Большая для этого потребуется доделка (переделка) или достаточно чего-то изменить в модуле (его копии) из стандартной поставки?
Хороший вопрос! И вот почему - действительно, можно минимальными переделками стандартных модулей создать новый модуль, просто вместо одного индикатора вставив другой. Я не знаю, когда мы сможем сами написать статью на эту тему, поэтому предлагаю:
Кто имеет знания и желание статью "Как на основе стандартного модуля сигналов создать свой" - напишите мне в личку.
Сварганил мультивалютник из классов на базе сгенерированного мастером. Но при этом пришлось подкорректировать класс EXPERT.
В нем в самом начале в методе INIT() идёт проверка на рабочий символ ну и соотвественно мультики не идут. Проверку убрал и всё пошло. Посмотрите будет время - идея хотя бы та ???
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
Идея та, но:
1. Изменять класс CExpert нехорошо. Хорошо от него наследоваться, переопределив метод Init(...).
2. Изменять класс CExpert не нужно. Нужно написать:
Пока так...
Здравствуйте, модератор!
У меня такой вопрос:
Мастер MQL5 имеет в свое составе 20 модулей сигналов, которые производят анализ на предмет обнаружения дивергенций, перекупленности, перепроданности и др. Не подскажите, можно ли заимствовать из этой библиотеке любой такой модуль сигналов от Мастера MQL5 для проведения анализа того же самого, но от индикатора пользовательского, собственной разработки, и что для этого нужно сделать? Большая для этого потребуется доделка (переделка) или достаточно чего-то изменить в модуле (его копии) из стандартной поставки?
Заранее спасибо!
Идея та, но:
1. Изменять класс CExpert нехорошо. Хорошо от него наследоваться, переопределив метод Init(...).
2. Изменять класс CExpert не нужно. Нужно написать:
Пока так...
Надо переопределять метод Init(), исключив из него проверку на рабочий символ. А п.2 не подходит, так как в методе Init() кроме всего прочего идет проверка на количество цифр Digits и если рабочий символ будет с 5 цифрами, а тестируемый с 3 цифрами, то будет ошибка со стопами/профитами. Я наследовался и переопределял. Теперь всё работает.
Я, конечно, не большой специалист по ООП, но получается, что для того, чтобы гибко настраиывать программу на разное количество тестируемых символов, необходимо в программе тупо забить, например, 21 кусок кода (на все символы), а далее методом выбора из входных параметров проходить по тому или иному участку кода. Без ООП я делал то же самое, но все хэндлы и значения индикаторов в ините забивал в динамические массивы, а далее а ОнТике уже использовал эти массивы. То есть я пока не увидел преимуществ ООП?
P S. Я не совсем точно написал. Надо столько забить кусков кода, сколько символов одновременно я собираюсь тестировать. Может есть возможность как то динамически подключать данные (хандлы и значения индикаторов) в ходе настройки на количество работающих одновременно символов. Проблема в том, что это всё надо подключать в Init, а использовать в OnTic/OnTimer.
Надо переопределять метод Init(), исключив из него проверку на рабочий символ. А п.2 не подходит, так как в методе Init() кроме всего прочего идет проверка на количество цифр Digits и если рабочий символ будет с 5 цифрами, а тестируемый с 3 цифрами, то будет ошибка со стопами/профитами. Я наследовался и переопределял. Теперь всё работает.
Я, конечно, не большой специалист по ООП, но получается, что для того, чтобы гибко настраиывать программу на разное количество тестируемых символов, необходимо в программе тупо забить, например, 21 кусок кода (на все символы), а далее методом выбора из входных параметров проходить по тому или иному участку кода. Без ООП я делал то же самое, но все хэндлы и значения индикаторов в ините забивал в динамические массивы, а далее а ОнТике уже использовал эти массивы. То есть я пока не увидел преимуществ ООП?
P S. Я не совсем точно написал. Надо столько забить кусков кода, сколько символов одновременно я собираюсь тестировать. Может есть возможность как то динамически подключать данные (хандлы и значения индикаторов) в ходе настройки на количество работающих одновременно символов. Проблема в том, что это всё надо подключать в Init, а использовать в OnTic/OnTimer.
Всё так. Кстати, спасибо за подсказку по п.2. Добавлю контроль и изменение кол-ва знаков.
Во чёрт! Только всё наладил и как обновился до 485 билда опять вылезла ошибка:
2011.08.08 17:13:04 Core 1 tester stopped because OnInit critical error
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 OnInit: error initializing indicators
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpert::InitIndicators: error initialization indicators of money object
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::InitIndicators: parameters of setting are not checked
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetOtherSeries: changing of timeseries is forbidden
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 CExpertBase::SetPriceSeries: changing of timeseries is forbidden
2011.08.08 17:13:04 Core 1 EURUSD,H4: history begins from 2009.01.02 04:00
2011.08.08 17:13:04 Core 1 EURUSD,H4: history cache reserved for estimated 4692 bars
Во чёрт! Только всё наладил и как обновился до 485 билда опять вылезла ошибка:
Агенты обновились? Советник перекомпилирован в новой версии?
В том-то и дело, что перекомпилировал!