Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 624
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот так будет модифицировать
там в коде ошибок много, в
нужно цены нормализовать то будет работать то будет ошибку сервера выдавать "неправильные цены", желательно выше нормализовать StopLoss_SELL
и скорее всего нужно еще стоплосс проверить не равен ли он нулю, да и не желательно вещественные числа сравнивать на равенство, нужно стараться вещественные числа сравнивать на > или <
Помогите исправить ошибку в индикаторе, не рисует максимум и минимум дня когда он на последней свече часа.
вот набросал индикатор, в Вашем коде не понравилось работа со строками, я бы проще написал, вот пример. Хотя если задача у Вас еще и смещение времени сервера учитывать, тогда по другому нужно
мой пример тоже не образец, писал быстро, думаю нужно было не от конца истории рассчитывать к началу при первом запуске, а от нулевого бара к истории, код был бы короче и можно было бы текущий день быстрее рассчитывать - цикл был бы меньше,
но в тестере проверил вроде без проблем работает, пусть так будет, поздно уже, спать охота... плохой пример сделал (((
там в коде ошибок много, в
нужно цены нормализовать то будет работать то будет ошибку сервера выдавать "неправильные цены", желательно выше нормализовать StopLoss_SELL
и скорее всего нужно еще стоплосс проверить не равен ли он нулю, да и не желательно вещественные числа сравнивать на равенство, нужно стараться вещественные числа сравнивать на > или <
Все верно. Я лишь показал место в коде, почему не модифицирует рыночные ордера: запрос стопа с рынка выдаст 0.
вот набросал индикатор, в Вашем коде не понравилось работа со строками, я бы проще написал, вот пример. Хотя если задача у Вас еще и смещение времени сервера учитывать, тогда по другому нужно
мой пример тоже не образец, писал быстро, думаю нужно было не от конца истории рассчитывать к началу при первом запуске, а от нулевого бара к истории, код был бы короче и можно было бы текущий день быстрее рассчитывать - цикл был бы меньше,
но в тестере проверил вроде без проблем работает, пусть так будет, поздно уже, спать охота... плохой пример сделал (((
Это не мой код в индикаторе был, это я в интернете нашла, я не умею индикаторы писать. :)
Почему плохой пример сделали, мне очень понравился Ваш индикатор, работает и в тестере, и на реальных графиках все правильно показывает.
Огромная благодарность Вам за быструю помощь!
Можно еще Вас попросить убрать линии которые канал рисуют? я на скрине их красными стрелками пометила.
И если совсем не затруднит, пожалуйста добавь функцию отключать/ включать формирование линий на текущем дне. На скрине я их синими стрелками пометила. https://prnt.sc/kuuj3e
Заранее спасибо!
Здравствуйте Уважаемые!
Подскажите как выполнить процедуру OnInit();
после изменения переменных эксперта !?
При помещении эксперта на график есть OnInit(); а при изменении переменных его нет!?
Как вычленить событие изменения переменных эксперта!?
Помогите советом точнее кодом как это сделать !?
Здравствуйте Уважаемые!
Подскажите как выполнить процедуру OnInit();
после изменения переменных эксперта !?
При помещении эксперта на график есть OnInit(); а при изменении переменных его нет!?
Как вычленить событие изменения переменных эксперта!?
Помогите советом точнее кодом как это сделать !?
поэкспериментируйте с таким кодом, в журнале эксперта читайте сообщение (переключайте ТФ, вводите переменную, перезагрузите терминал не закрывая эксперта...)
и второй вариант описать на глобальном уровне видимости переменную с модификатором static
поэкспериментируйте с таким кодом, в журнале эксперта читайте сообщение (переключайте ТФ, вводите переменную, перезагрузите терминал не закрывая эксперта...)
и второй вариант описать на глобальном уровне видимости переменную с модификатором static
На глобальном уровне с модификатором static????? Это извращение какое-то.
На глобальном уровне с модификатором static????? Это извращение какое-то.
да ладно, я в курсе, что на глобальном уровне и без static работать будет, но из опыта, когда раньше часто билды МТ4 обновлялись, лучше писать по классике С++, чем потом при общении с разработчиками слушать в ответ "пишите код правильно"
ЗЫ: вспомнил почему стал писать модификатор static на глобальном уровне, если нужно гарантированно не "потерять значение" переменной в ходе выполнения MQL-программы, раньше (лет 5 назад) не было директивы прекомпилятора #property strict и при включении файлов (#include или library - не помню уже) я один раз "потерял свою переменную" т.к. имена переменных совпадали с подключаемым файлом, как водится - я ругал MQL, потом случайно нашел это недоразумение, а вот если писать модификатор static , то и тогда компилятор выдавал ошибку при компиляции
Сейчас компилятор МТ4, довольно удобный и надежный, и с директивой #property strict, может и не нужно такие предосторожности, но пишу по привычке static когда не хочу "потерять значение" переменной
ЗЫЗЫ: на скорость выполнения MQL-программы этот модификатор не влияет, да и мне удобно потом свой код через не которое время открыть и увидев static я буду точно знать, что в этой переменной значение которое важно "не потерять" во время выполнения программы
да ладно, я в курсе, что на глобальном уровне и без static работать будет, но из опыта, когда раньше часто билды МТ4 обновлялись, лучше писать по классике С++, чем потом при общении с разработчиками слушать в ответ "пишите код правильно"
ЗЫ: вспомнил почему стал писать модификатор static на глобальном уровне, если нужно гарантированно не "потерять значение" переменной в ходе выполнения MQL-программы, раньше (лет 5 назад) не было директивы прекомпилятора #property strict и при включении файлов (#include или library - не помню уже) я один раз "потерял свою переменную" т.к. имена переменных совпадали с подключаемым файлом, как водится - я ругал MQL, потом случайно нашел это недоразумение, а вот если писать модификатор static , то и тогда компилятор выдавал ошибку при компиляции
Сейчас компилятор МТ4, довольно удобный и надежный, и с директивой #property strict, может и не нужно такие предосторожности, но пишу по привычке static когда не хочу "потерять значение" переменной
ЗЫЗЫ: на скорость выполнения MQL-программы этот модификатор не влияет, да и мне удобно потом свой код через не которое время открыть и увидев static я буду точно знать, что в этой переменной значение которое важно "не потерять" во время выполнения программы
Если имена переменных совпадают с именами в подключаемом файле, то компилятор выдаёт предупреждение. Для меня предупреждение равно ошибке и на них я реагирую одинаково. А переменные глобального уровня с модификатором static равно маслу масляному.
Но... если вам нравится писать так, то никто вам этого запретить не может.
Но... если вам нравится писать так, то никто вам этого запретить не может.
закрались сомнения в моей уникальности в этом вопросе... фух, я не один, поиском по папке MQL5, встречаются такие обьявления с модификатором static на глобальном уровне у нескольких исходников из поставки МТ5
даже в статье "RANDOM DECISION FOREST В ОБУЧЕНИИ С ПОДКРЕПЛЕНИЕМ" в исходнике нашел обьявление на глобальном уровне: static datetime last_time=0;
значит как писал так, что считаю нужным выделить так и буду, я же не 100% переменных на глобальном уровне описываю как static
береженого Бог бережет, сказала монашка... ))))